agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.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 (317) 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/dist/src/cli/commands/init.js +3 -3
  7. package/dist/src/cli/commands/init.js.map +1 -1
  8. package/package.json +3 -3
  9. package/src/cli/agentdb-cli.ts +78 -0
  10. package/src/cli/commands/init.ts +3 -3
  11. package/dist/agentdb-advanced.js +0 -2110
  12. package/dist/agentdb-advanced.min.js +0 -1
  13. package/dist/backends/GraphBackend.d.ts +0 -196
  14. package/dist/backends/GraphBackend.d.ts.map +0 -1
  15. package/dist/backends/GraphBackend.js +0 -33
  16. package/dist/backends/GraphBackend.js.map +0 -1
  17. package/dist/backends/LearningBackend.d.ts +0 -148
  18. package/dist/backends/LearningBackend.d.ts.map +0 -1
  19. package/dist/backends/LearningBackend.js +0 -27
  20. package/dist/backends/LearningBackend.js.map +0 -1
  21. package/dist/backends/VectorBackend.d.ts +0 -119
  22. package/dist/backends/VectorBackend.d.ts.map +0 -1
  23. package/dist/backends/VectorBackend.js +0 -14
  24. package/dist/backends/VectorBackend.js.map +0 -1
  25. package/dist/backends/detector.d.ts +0 -81
  26. package/dist/backends/detector.d.ts.map +0 -1
  27. package/dist/backends/detector.js +0 -192
  28. package/dist/backends/detector.js.map +0 -1
  29. package/dist/backends/factory.d.ts +0 -50
  30. package/dist/backends/factory.d.ts.map +0 -1
  31. package/dist/backends/factory.js +0 -161
  32. package/dist/backends/factory.js.map +0 -1
  33. package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
  34. package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
  35. package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
  36. package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
  37. package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
  38. package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
  39. package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
  40. package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
  41. package/dist/backends/hnswlib/index.d.ts +0 -7
  42. package/dist/backends/hnswlib/index.d.ts.map +0 -1
  43. package/dist/backends/hnswlib/index.js +0 -7
  44. package/dist/backends/hnswlib/index.js.map +0 -1
  45. package/dist/backends/index.d.ts +0 -14
  46. package/dist/backends/index.d.ts.map +0 -1
  47. package/dist/backends/index.js +0 -13
  48. package/dist/backends/index.js.map +0 -1
  49. package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
  50. package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
  51. package/dist/backends/ruvector/RuVectorBackend.js +0 -198
  52. package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
  53. package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
  54. package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
  55. package/dist/backends/ruvector/RuVectorLearning.js +0 -177
  56. package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
  57. package/dist/backends/ruvector/index.d.ts +0 -9
  58. package/dist/backends/ruvector/index.d.ts.map +0 -1
  59. package/dist/backends/ruvector/index.js +0 -8
  60. package/dist/backends/ruvector/index.js.map +0 -1
  61. package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
  62. package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
  63. package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
  64. package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
  65. package/dist/browser/AdvancedFeatures.d.ts +0 -144
  66. package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
  67. package/dist/browser/AdvancedFeatures.js +0 -430
  68. package/dist/browser/AdvancedFeatures.js.map +0 -1
  69. package/dist/browser/HNSWIndex.d.ts +0 -117
  70. package/dist/browser/HNSWIndex.d.ts.map +0 -1
  71. package/dist/browser/HNSWIndex.js +0 -402
  72. package/dist/browser/HNSWIndex.js.map +0 -1
  73. package/dist/browser/ProductQuantization.d.ts +0 -107
  74. package/dist/browser/ProductQuantization.d.ts.map +0 -1
  75. package/dist/browser/ProductQuantization.js +0 -337
  76. package/dist/browser/ProductQuantization.js.map +0 -1
  77. package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
  78. package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
  79. package/dist/browser/browser/AdvancedFeatures.js +0 -427
  80. package/dist/browser/browser/HNSWIndex.d.ts +0 -117
  81. package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
  82. package/dist/browser/browser/HNSWIndex.js +0 -402
  83. package/dist/browser/browser/ProductQuantization.d.ts +0 -107
  84. package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
  85. package/dist/browser/browser/ProductQuantization.js +0 -348
  86. package/dist/browser/browser/index.d.ts +0 -223
  87. package/dist/browser/browser/index.d.ts.map +0 -1
  88. package/dist/browser/browser/index.js +0 -233
  89. package/dist/browser/index.d.ts +0 -223
  90. package/dist/browser/index.d.ts.map +0 -1
  91. package/dist/browser/index.js +0 -225
  92. package/dist/browser/index.js.map +0 -1
  93. package/dist/cli/agentdb-cli.d.ts +0 -154
  94. package/dist/cli/agentdb-cli.d.ts.map +0 -1
  95. package/dist/cli/agentdb-cli.js +0 -2273
  96. package/dist/cli/agentdb-cli.js.map +0 -1
  97. package/dist/cli/agentdb.db +0 -0
  98. package/dist/cli/commands/init.d.ts +0 -12
  99. package/dist/cli/commands/init.d.ts.map +0 -1
  100. package/dist/cli/commands/init.js +0 -115
  101. package/dist/cli/commands/init.js.map +0 -1
  102. package/dist/cli/commands/install-embeddings.d.ts +0 -10
  103. package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
  104. package/dist/cli/commands/install-embeddings.js +0 -68
  105. package/dist/cli/commands/install-embeddings.js.map +0 -1
  106. package/dist/cli/commands/migrate.d.ts +0 -15
  107. package/dist/cli/commands/migrate.d.ts.map +0 -1
  108. package/dist/cli/commands/migrate.js +0 -425
  109. package/dist/cli/commands/migrate.js.map +0 -1
  110. package/dist/cli/commands/status.d.ts +0 -10
  111. package/dist/cli/commands/status.d.ts.map +0 -1
  112. package/dist/cli/commands/status.js +0 -129
  113. package/dist/cli/commands/status.js.map +0 -1
  114. package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
  115. package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
  116. package/dist/controllers/CausalMemoryGraph.js +0 -323
  117. package/dist/controllers/CausalMemoryGraph.js.map +0 -1
  118. package/dist/controllers/CausalRecall.d.ts +0 -139
  119. package/dist/controllers/CausalRecall.d.ts.map +0 -1
  120. package/dist/controllers/CausalRecall.js +0 -356
  121. package/dist/controllers/CausalRecall.js.map +0 -1
  122. package/dist/controllers/ContextSynthesizer.d.ts +0 -65
  123. package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
  124. package/dist/controllers/ContextSynthesizer.js +0 -208
  125. package/dist/controllers/ContextSynthesizer.js.map +0 -1
  126. package/dist/controllers/EmbeddingService.d.ts +0 -37
  127. package/dist/controllers/EmbeddingService.d.ts.map +0 -1
  128. package/dist/controllers/EmbeddingService.js +0 -136
  129. package/dist/controllers/EmbeddingService.js.map +0 -1
  130. package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
  131. package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
  132. package/dist/controllers/EnhancedEmbeddingService.js +0 -119
  133. package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
  134. package/dist/controllers/ExplainableRecall.d.ts +0 -163
  135. package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
  136. package/dist/controllers/ExplainableRecall.js +0 -485
  137. package/dist/controllers/ExplainableRecall.js.map +0 -1
  138. package/dist/controllers/HNSWIndex.d.ts +0 -128
  139. package/dist/controllers/HNSWIndex.d.ts.map +0 -1
  140. package/dist/controllers/HNSWIndex.js +0 -361
  141. package/dist/controllers/HNSWIndex.js.map +0 -1
  142. package/dist/controllers/LearningSystem.d.ts +0 -195
  143. package/dist/controllers/LearningSystem.d.ts.map +0 -1
  144. package/dist/controllers/LearningSystem.js +0 -929
  145. package/dist/controllers/LearningSystem.js.map +0 -1
  146. package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
  147. package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
  148. package/dist/controllers/MMRDiversityRanker.js +0 -130
  149. package/dist/controllers/MMRDiversityRanker.js.map +0 -1
  150. package/dist/controllers/MetadataFilter.d.ts +0 -70
  151. package/dist/controllers/MetadataFilter.d.ts.map +0 -1
  152. package/dist/controllers/MetadataFilter.js +0 -243
  153. package/dist/controllers/MetadataFilter.js.map +0 -1
  154. package/dist/controllers/NightlyLearner.d.ts +0 -114
  155. package/dist/controllers/NightlyLearner.d.ts.map +0 -1
  156. package/dist/controllers/NightlyLearner.js +0 -394
  157. package/dist/controllers/NightlyLearner.js.map +0 -1
  158. package/dist/controllers/QUICClient.d.ts +0 -109
  159. package/dist/controllers/QUICClient.d.ts.map +0 -1
  160. package/dist/controllers/QUICClient.js +0 -299
  161. package/dist/controllers/QUICClient.js.map +0 -1
  162. package/dist/controllers/QUICServer.d.ts +0 -121
  163. package/dist/controllers/QUICServer.d.ts.map +0 -1
  164. package/dist/controllers/QUICServer.js +0 -383
  165. package/dist/controllers/QUICServer.js.map +0 -1
  166. package/dist/controllers/ReasoningBank.d.ts +0 -196
  167. package/dist/controllers/ReasoningBank.d.ts.map +0 -1
  168. package/dist/controllers/ReasoningBank.js +0 -494
  169. package/dist/controllers/ReasoningBank.js.map +0 -1
  170. package/dist/controllers/ReflexionMemory.d.ts +0 -125
  171. package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
  172. package/dist/controllers/ReflexionMemory.js +0 -521
  173. package/dist/controllers/ReflexionMemory.js.map +0 -1
  174. package/dist/controllers/SkillLibrary.d.ts +0 -149
  175. package/dist/controllers/SkillLibrary.d.ts.map +0 -1
  176. package/dist/controllers/SkillLibrary.js +0 -547
  177. package/dist/controllers/SkillLibrary.js.map +0 -1
  178. package/dist/controllers/SyncCoordinator.d.ts +0 -120
  179. package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
  180. package/dist/controllers/SyncCoordinator.js +0 -441
  181. package/dist/controllers/SyncCoordinator.js.map +0 -1
  182. package/dist/controllers/WASMVectorSearch.d.ts +0 -89
  183. package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
  184. package/dist/controllers/WASMVectorSearch.js +0 -234
  185. package/dist/controllers/WASMVectorSearch.js.map +0 -1
  186. package/dist/controllers/frontier-index.d.ts +0 -14
  187. package/dist/controllers/frontier-index.d.ts.map +0 -1
  188. package/dist/controllers/frontier-index.js +0 -10
  189. package/dist/controllers/frontier-index.js.map +0 -1
  190. package/dist/controllers/index.d.ts +0 -30
  191. package/dist/controllers/index.d.ts.map +0 -1
  192. package/dist/controllers/index.js +0 -18
  193. package/dist/controllers/index.js.map +0 -1
  194. package/dist/db-fallback.d.ts +0 -26
  195. package/dist/db-fallback.d.ts.map +0 -1
  196. package/dist/db-fallback.js +0 -264
  197. package/dist/db-fallback.js.map +0 -1
  198. package/dist/db-test.d.ts +0 -13
  199. package/dist/db-test.d.ts.map +0 -1
  200. package/dist/db-test.js +0 -55
  201. package/dist/db-test.js.map +0 -1
  202. package/dist/db-unified.d.ts +0 -76
  203. package/dist/db-unified.d.ts.map +0 -1
  204. package/dist/db-unified.js +0 -278
  205. package/dist/db-unified.js.map +0 -1
  206. package/dist/examples/quic-sync-example.d.ts +0 -9
  207. package/dist/examples/quic-sync-example.d.ts.map +0 -1
  208. package/dist/examples/quic-sync-example.js +0 -169
  209. package/dist/examples/quic-sync-example.js.map +0 -1
  210. package/dist/examples/wasm-vector-usage.d.ts +0 -12
  211. package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
  212. package/dist/examples/wasm-vector-usage.js +0 -190
  213. package/dist/examples/wasm-vector-usage.js.map +0 -1
  214. package/dist/index.d.ts +0 -28
  215. package/dist/index.d.ts.map +0 -1
  216. package/dist/index.js +0 -35
  217. package/dist/index.js.map +0 -1
  218. package/dist/malp/core/ccc.d.ts +0 -99
  219. package/dist/malp/core/ccc.d.ts.map +0 -1
  220. package/dist/malp/core/ccc.js +0 -181
  221. package/dist/malp/core/ccc.js.map +0 -1
  222. package/dist/malp/core/index.d.ts +0 -9
  223. package/dist/malp/core/index.d.ts.map +0 -1
  224. package/dist/malp/core/index.js +0 -9
  225. package/dist/malp/core/index.js.map +0 -1
  226. package/dist/malp/core/linalg.d.ts +0 -101
  227. package/dist/malp/core/linalg.d.ts.map +0 -1
  228. package/dist/malp/core/linalg.js +0 -278
  229. package/dist/malp/core/linalg.js.map +0 -1
  230. package/dist/malp/core/optimizer.d.ts +0 -68
  231. package/dist/malp/core/optimizer.d.ts.map +0 -1
  232. package/dist/malp/core/optimizer.js +0 -160
  233. package/dist/malp/core/optimizer.js.map +0 -1
  234. package/dist/malp/index.d.ts +0 -33
  235. package/dist/malp/index.d.ts.map +0 -1
  236. package/dist/malp/index.js +0 -37
  237. package/dist/malp/index.js.map +0 -1
  238. package/dist/malp/metrics/agreement.d.ts +0 -106
  239. package/dist/malp/metrics/agreement.d.ts.map +0 -1
  240. package/dist/malp/metrics/agreement.js +0 -199
  241. package/dist/malp/metrics/agreement.js.map +0 -1
  242. package/dist/malp/metrics/comparison.d.ts +0 -93
  243. package/dist/malp/metrics/comparison.d.ts.map +0 -1
  244. package/dist/malp/metrics/comparison.js +0 -256
  245. package/dist/malp/metrics/comparison.js.map +0 -1
  246. package/dist/malp/metrics/index.d.ts +0 -8
  247. package/dist/malp/metrics/index.d.ts.map +0 -1
  248. package/dist/malp/metrics/index.js +0 -8
  249. package/dist/malp/metrics/index.js.map +0 -1
  250. package/dist/malp/metrics/performance.d.ts +0 -61
  251. package/dist/malp/metrics/performance.d.ts.map +0 -1
  252. package/dist/malp/metrics/performance.js +0 -190
  253. package/dist/malp/metrics/performance.js.map +0 -1
  254. package/dist/malp/models/index.d.ts +0 -7
  255. package/dist/malp/models/index.d.ts.map +0 -1
  256. package/dist/malp/models/index.js +0 -7
  257. package/dist/malp/models/index.js.map +0 -1
  258. package/dist/malp/models/malp.d.ts +0 -116
  259. package/dist/malp/models/malp.d.ts.map +0 -1
  260. package/dist/malp/models/malp.js +0 -206
  261. package/dist/malp/models/malp.js.map +0 -1
  262. package/dist/malp/models/regressor.d.ts +0 -80
  263. package/dist/malp/models/regressor.d.ts.map +0 -1
  264. package/dist/malp/models/regressor.js +0 -229
  265. package/dist/malp/models/regressor.js.map +0 -1
  266. package/dist/malp/reasoningbank_validator.d.ts +0 -187
  267. package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
  268. package/dist/malp/reasoningbank_validator.js +0 -246
  269. package/dist/malp/reasoningbank_validator.js.map +0 -1
  270. package/dist/malp/wasm_bindings.d.ts +0 -344
  271. package/dist/malp/wasm_bindings.d.ts.map +0 -1
  272. package/dist/malp/wasm_bindings.js +0 -9
  273. package/dist/malp/wasm_bindings.js.map +0 -1
  274. package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
  275. package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
  276. package/dist/mcp/agentdb-mcp-server.js +0 -2116
  277. package/dist/mcp/agentdb-mcp-server.js.map +0 -1
  278. package/dist/mcp/learning-tools-handlers.d.ts +0 -16
  279. package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
  280. package/dist/mcp/learning-tools-handlers.js +0 -105
  281. package/dist/mcp/learning-tools-handlers.js.map +0 -1
  282. package/dist/optimizations/BatchOperations.d.ts +0 -109
  283. package/dist/optimizations/BatchOperations.d.ts.map +0 -1
  284. package/dist/optimizations/BatchOperations.js +0 -407
  285. package/dist/optimizations/BatchOperations.js.map +0 -1
  286. package/dist/optimizations/QueryOptimizer.d.ts +0 -83
  287. package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
  288. package/dist/optimizations/QueryOptimizer.js +0 -228
  289. package/dist/optimizations/QueryOptimizer.js.map +0 -1
  290. package/dist/optimizations/ToolCache.d.ts +0 -137
  291. package/dist/optimizations/ToolCache.d.ts.map +0 -1
  292. package/dist/optimizations/ToolCache.js +0 -281
  293. package/dist/optimizations/ToolCache.js.map +0 -1
  294. package/dist/optimizations/index.d.ts +0 -10
  295. package/dist/optimizations/index.d.ts.map +0 -1
  296. package/dist/optimizations/index.js +0 -8
  297. package/dist/optimizations/index.js.map +0 -1
  298. package/dist/security/input-validation.d.ts +0 -109
  299. package/dist/security/input-validation.d.ts.map +0 -1
  300. package/dist/security/input-validation.js +0 -398
  301. package/dist/security/input-validation.js.map +0 -1
  302. package/dist/security/limits.d.ts +0 -150
  303. package/dist/security/limits.d.ts.map +0 -1
  304. package/dist/security/limits.js +0 -288
  305. package/dist/security/limits.js.map +0 -1
  306. package/dist/security/path-security.d.ts +0 -100
  307. package/dist/security/path-security.d.ts.map +0 -1
  308. package/dist/security/path-security.js +0 -337
  309. package/dist/security/path-security.js.map +0 -1
  310. package/dist/security/validation.d.ts +0 -95
  311. package/dist/security/validation.d.ts.map +0 -1
  312. package/dist/security/validation.js +0 -315
  313. package/dist/security/validation.js.map +0 -1
  314. package/dist/types/quic.d.ts +0 -518
  315. package/dist/types/quic.d.ts.map +0 -1
  316. package/dist/types/quic.js +0 -272
  317. package/dist/types/quic.js.map +0 -1
@@ -1,356 +0,0 @@
1
- /**
2
- * CausalRecall - Utility-Based Reranking + Certificate Issuer
3
- *
4
- * Combines:
5
- * 1. Vector similarity search
6
- * 2. Causal uplift from CausalMemoryGraph
7
- * 3. Utility-based reranking: U = α*similarity + β*uplift − γ*latencyCost
8
- * 4. Automatic certificate issuance via ExplainableRecall
9
- *
10
- * This is the main entry point for production retrieval with:
11
- * - Causal-aware ranking
12
- * - Explainable provenance
13
- * - Policy compliance
14
- */
15
- import { CausalMemoryGraph } from './CausalMemoryGraph.js';
16
- import { ExplainableRecall } from './ExplainableRecall.js';
17
- export class CausalRecall {
18
- config;
19
- db;
20
- causalGraph;
21
- explainableRecall;
22
- embedder;
23
- vectorBackend;
24
- constructor(db, embedder, vectorBackend, config = {
25
- alpha: 0.7,
26
- beta: 0.2,
27
- gamma: 0.1,
28
- minConfidence: 0.6
29
- }) {
30
- this.config = config;
31
- this.db = db;
32
- this.embedder = embedder;
33
- this.vectorBackend = vectorBackend;
34
- this.causalGraph = new CausalMemoryGraph(db);
35
- this.explainableRecall = new ExplainableRecall(db);
36
- }
37
- /**
38
- * Main recall function with utility-based reranking and certificate issuance
39
- *
40
- * @param queryId Unique query identifier
41
- * @param queryText Natural language query
42
- * @param k Number of results to return (default: 12)
43
- * @param requirements Optional list of requirements for completeness checking
44
- * @param accessLevel Security access level for certificate
45
- * @returns Reranked results with certificate
46
- */
47
- async recall(queryId, queryText, k = 12, requirements, accessLevel = 'internal') {
48
- const startTime = Date.now();
49
- const metrics = {
50
- vectorSearchMs: 0,
51
- causalLookupMs: 0,
52
- rerankMs: 0,
53
- certificateMs: 0
54
- };
55
- // Step 1: Vector similarity search
56
- const vectorStart = Date.now();
57
- const queryEmbedding = await this.embedder.embed(queryText);
58
- const candidates = await this.vectorSearch(queryEmbedding, k * 2); // Fetch 2k for reranking
59
- metrics.vectorSearchMs = Date.now() - vectorStart;
60
- // Step 2: Load causal edges for candidates
61
- const causalStart = Date.now();
62
- const causalEdges = await this.loadCausalEdges(candidates.map(c => c.id));
63
- metrics.causalLookupMs = Date.now() - causalStart;
64
- // Step 3: Rerank by utility
65
- const rerankStart = Date.now();
66
- const reranked = this.rerankByUtility(candidates, causalEdges);
67
- const topK = reranked.slice(0, k);
68
- metrics.rerankMs = Date.now() - rerankStart;
69
- // Step 4: Issue certificate
70
- const certStart = Date.now();
71
- const certificate = this.issueCertificate({
72
- queryId,
73
- queryText,
74
- candidates: topK,
75
- requirements: requirements || this.extractRequirements(queryText),
76
- accessLevel
77
- });
78
- metrics.certificateMs = Date.now() - certStart;
79
- const totalLatencyMs = Date.now() - startTime;
80
- return {
81
- candidates: topK,
82
- certificate,
83
- queryId,
84
- totalLatencyMs,
85
- metrics
86
- };
87
- }
88
- /**
89
- * Vector similarity search using cosine similarity
90
- */
91
- async vectorSearch(queryEmbedding, k) {
92
- // Use optimized vector backend if available (100x faster)
93
- if (this.vectorBackend) {
94
- const searchResults = this.vectorBackend.search(queryEmbedding, k, {
95
- threshold: 0.0
96
- });
97
- // Fetch episode content from DB
98
- if (searchResults.length === 0) {
99
- return [];
100
- }
101
- const episodeIds = searchResults.map(r => r.id);
102
- const placeholders = episodeIds.map(() => '?').join(',');
103
- const episodes = this.db.prepare(`
104
- SELECT
105
- id,
106
- task || ' ' || COALESCE(output, '') as content,
107
- latency_ms
108
- FROM episodes
109
- WHERE id IN (${placeholders})
110
- `).all(...episodeIds);
111
- const episodeMap = new Map(episodes.map((e) => [e.id, e]));
112
- return searchResults.map(result => {
113
- const ep = episodeMap.get(result.id);
114
- return {
115
- id: result.id.toString(),
116
- type: 'episode',
117
- content: ep?.content || '',
118
- similarity: result.similarity,
119
- latencyMs: ep?.latency_ms || 0
120
- };
121
- });
122
- }
123
- // Fallback to SQL-based similarity search
124
- const results = [];
125
- const episodes = this.db.prepare(`
126
- SELECT
127
- e.id,
128
- 'episode' as type,
129
- e.task || ' ' || COALESCE(e.output, '') as content,
130
- ee.embedding,
131
- e.latency_ms
132
- FROM episodes e
133
- JOIN episode_embeddings ee ON e.id = ee.episode_id
134
- ORDER BY e.ts DESC
135
- LIMIT ?
136
- `).all(k * 2);
137
- for (const ep of episodes) {
138
- const episodeRow = ep;
139
- const embedding = this.deserializeEmbedding(episodeRow.embedding);
140
- const similarity = this.cosineSimilarity(queryEmbedding, embedding);
141
- results.push({
142
- id: episodeRow.id.toString(),
143
- type: episodeRow.type,
144
- content: episodeRow.content,
145
- similarity,
146
- latencyMs: episodeRow.latency_ms || 0
147
- });
148
- }
149
- return results
150
- .sort((a, b) => b.similarity - a.similarity)
151
- .slice(0, k);
152
- }
153
- /**
154
- * Load causal edges for candidates
155
- */
156
- async loadCausalEdges(candidateIds) {
157
- const edgeMap = new Map();
158
- if (candidateIds.length === 0) {
159
- return edgeMap;
160
- }
161
- const placeholders = candidateIds.map(() => '?').join(',');
162
- const edges = this.db.prepare(`
163
- SELECT * FROM causal_edges
164
- WHERE from_memory_id IN (${placeholders})
165
- AND confidence >= ?
166
- `).all(...candidateIds.map(id => parseInt(id)), this.config.minConfidence || 0.6);
167
- for (const edge of edges) {
168
- const fromId = edge.from_memory_id.toString();
169
- if (!edgeMap.has(fromId)) {
170
- edgeMap.set(fromId, []);
171
- }
172
- edgeMap.get(fromId).push({
173
- id: edge.id,
174
- fromMemoryId: edge.from_memory_id,
175
- fromMemoryType: edge.from_memory_type,
176
- toMemoryId: edge.to_memory_id,
177
- toMemoryType: edge.to_memory_type,
178
- similarity: edge.similarity,
179
- uplift: edge.uplift,
180
- confidence: edge.confidence,
181
- sampleSize: edge.sample_size,
182
- evidenceIds: edge.evidence_ids ? JSON.parse(edge.evidence_ids) : undefined,
183
- mechanism: edge.mechanism
184
- });
185
- }
186
- return edgeMap;
187
- }
188
- /**
189
- * Rerank by utility: U = α*similarity + β*uplift − γ*latencyCost
190
- */
191
- rerankByUtility(candidates, causalEdges) {
192
- const { alpha, beta, gamma } = this.config;
193
- const reranked = candidates.map(candidate => {
194
- // Get causal uplift (average if multiple edges)
195
- const edges = causalEdges.get(candidate.id) || [];
196
- const avgUplift = edges.length > 0
197
- ? edges.reduce((sum, e) => sum + (e.uplift || 0), 0) / edges.length
198
- : 0;
199
- const avgConfidence = edges.length > 0
200
- ? edges.reduce((sum, e) => sum + e.confidence, 0) / edges.length
201
- : 0;
202
- // Normalize latency (assume max 1000ms)
203
- const latencyCost = Math.min(candidate.latencyMs / 1000, 1.0);
204
- // Calculate utility
205
- const utilityScore = alpha * candidate.similarity + beta * avgUplift - gamma * latencyCost;
206
- return {
207
- id: candidate.id,
208
- type: candidate.type,
209
- content: candidate.content,
210
- similarity: candidate.similarity,
211
- uplift: avgUplift,
212
- causalConfidence: avgConfidence,
213
- latencyMs: candidate.latencyMs,
214
- utilityScore,
215
- rank: 0 // Will be set after sorting
216
- };
217
- });
218
- // Sort by utility score descending
219
- reranked.sort((a, b) => b.utilityScore - a.utilityScore);
220
- // Assign ranks
221
- reranked.forEach((candidate, idx) => {
222
- candidate.rank = idx + 1;
223
- });
224
- return reranked;
225
- }
226
- /**
227
- * Issue certificate for the retrieval
228
- */
229
- issueCertificate(params) {
230
- const { queryId, queryText, candidates, requirements, accessLevel } = params;
231
- const chunks = candidates.map(c => ({
232
- id: c.id,
233
- type: c.type,
234
- content: c.content,
235
- relevance: c.similarity
236
- }));
237
- return this.explainableRecall.createCertificate({
238
- queryId,
239
- queryText,
240
- chunks,
241
- requirements,
242
- accessLevel
243
- });
244
- }
245
- /**
246
- * Extract requirements from query text (simple keyword extraction)
247
- */
248
- extractRequirements(queryText) {
249
- // Simple extraction: split on common words and filter
250
- const stopWords = new Set(['a', 'an', 'the', 'is', 'are', 'was', 'were', 'to', 'from', 'for', 'with', 'how', 'what', 'where', 'when', 'why', 'who']);
251
- const words = queryText
252
- .toLowerCase()
253
- .replace(/[^a-z0-9\s]/g, '')
254
- .split(/\s+/)
255
- .filter(w => w.length > 3 && !stopWords.has(w));
256
- // Return unique words
257
- return [...new Set(words)];
258
- }
259
- /**
260
- * Deserialize embedding from Buffer
261
- */
262
- deserializeEmbedding(buffer) {
263
- return new Float32Array(buffer.buffer, buffer.byteOffset, buffer.length / 4);
264
- }
265
- /**
266
- * Cosine similarity between two vectors
267
- */
268
- cosineSimilarity(a, b) {
269
- if (a.length !== b.length) {
270
- throw new Error('Vector dimensions must match');
271
- }
272
- let dotProduct = 0;
273
- let magnitudeA = 0;
274
- let magnitudeB = 0;
275
- for (let i = 0; i < a.length; i++) {
276
- dotProduct += a[i] * b[i];
277
- magnitudeA += a[i] * a[i];
278
- magnitudeB += b[i] * b[i];
279
- }
280
- const magnitude = Math.sqrt(magnitudeA) * Math.sqrt(magnitudeB);
281
- return magnitude === 0 ? 0 : dotProduct / magnitude;
282
- }
283
- /**
284
- * Batch recall for multiple queries
285
- */
286
- async batchRecall(queries, requirements, accessLevel = 'internal') {
287
- const results = [];
288
- for (const query of queries) {
289
- const result = await this.recall(query.queryId, query.queryText, query.k || 12, requirements, accessLevel);
290
- results.push(result);
291
- }
292
- return results;
293
- }
294
- /**
295
- * Get recall statistics
296
- */
297
- getStats() {
298
- const causalEdges = this.db.prepare('SELECT COUNT(*) as count FROM causal_edges').get();
299
- const certificates = this.db.prepare('SELECT COUNT(*) as count FROM recall_certificates').get();
300
- const avgStats = this.db.prepare(`
301
- SELECT
302
- AVG(redundancy_ratio) as avg_redundancy,
303
- AVG(completeness_score) as avg_completeness
304
- FROM recall_certificates
305
- `).get();
306
- return {
307
- totalCausalEdges: causalEdges.count,
308
- totalCertificates: certificates.count,
309
- avgRedundancyRatio: avgStats?.avg_redundancy || 0,
310
- avgCompletenessScore: avgStats?.avg_completeness || 0
311
- };
312
- }
313
- /**
314
- * Update rerank configuration
315
- */
316
- updateConfig(config) {
317
- this.config = { ...this.config, ...config };
318
- }
319
- /**
320
- * Search for memories with semantic similarity and causal utility ranking
321
- *
322
- * @param params Search parameters
323
- * @returns Array of ranked search results with similarity and causal uplift scores
324
- */
325
- async search(params) {
326
- const { query, k = 12, includeEvidence = false, alpha = this.config.alpha, beta = this.config.beta, gamma = this.config.gamma } = params;
327
- // Temporarily override config for this search
328
- const originalConfig = { ...this.config };
329
- this.config = { ...this.config, alpha, beta, gamma };
330
- try {
331
- // Step 1: Generate query embedding
332
- const queryEmbedding = await this.embedder.embed(query);
333
- // Step 2: Vector similarity search
334
- const candidates = await this.vectorSearch(queryEmbedding, k * 2);
335
- // Step 3: Load causal edges for uplift scoring
336
- const causalEdges = await this.loadCausalEdges(candidates.map(c => c.id));
337
- // Step 4: Rerank by utility
338
- const reranked = this.rerankByUtility(candidates, causalEdges);
339
- // Step 5: Format results for search interface
340
- const results = reranked.slice(0, k).map(candidate => ({
341
- id: parseInt(candidate.id),
342
- type: candidate.type,
343
- content: candidate.content,
344
- similarity: candidate.similarity,
345
- causalUplift: candidate.uplift || 0,
346
- utilityScore: candidate.utilityScore
347
- }));
348
- return results;
349
- }
350
- finally {
351
- // Restore original config
352
- this.config = originalConfig;
353
- }
354
- }
355
- }
356
- //# sourceMappingURL=CausalRecall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CausalRecall.js","sourceRoot":"","sources":["../../src/controllers/CausalRecall.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- /**
2
- * Context Synthesis - Generate coherent narratives from multiple memories
3
- *
4
- * Takes a collection of retrieved episodes/patterns and synthesizes
5
- * a coherent context summary with extracted patterns, success rates,
6
- * and actionable insights.
7
- */
8
- export interface MemoryPattern {
9
- task: string;
10
- reward: number;
11
- success: boolean;
12
- critique?: string;
13
- input?: string;
14
- output?: string;
15
- similarity?: number;
16
- [key: string]: any;
17
- }
18
- export interface SynthesizedContext {
19
- summary: string;
20
- patterns: string[];
21
- successRate: number;
22
- averageReward: number;
23
- recommendations: string[];
24
- keyInsights: string[];
25
- totalMemories: number;
26
- }
27
- export declare class ContextSynthesizer {
28
- /**
29
- * Synthesize context from multiple memories
30
- *
31
- * @param memories - Retrieved episodes/patterns
32
- * @param options - Synthesis options
33
- * @returns Synthesized context with insights
34
- */
35
- static synthesize(memories: MemoryPattern[], options?: {
36
- minPatternFrequency?: number;
37
- includeRecommendations?: boolean;
38
- maxSummaryLength?: number;
39
- }): SynthesizedContext;
40
- /**
41
- * Extract common patterns from memory critiques
42
- */
43
- private static extractPatterns;
44
- /**
45
- * Extract meaningful phrases from text
46
- */
47
- private static extractPhrases;
48
- /**
49
- * Generate key insights from memories
50
- */
51
- private static generateKeyInsights;
52
- /**
53
- * Generate actionable recommendations
54
- */
55
- private static generateRecommendations;
56
- /**
57
- * Generate narrative summary
58
- */
59
- private static generateSummary;
60
- /**
61
- * Extract actionable steps from successful memories
62
- */
63
- static extractActionableSteps(memories: MemoryPattern[]): string[];
64
- }
65
- //# sourceMappingURL=ContextSynthesizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextSynthesizer.d.ts","sourceRoot":"","sources":["../../src/controllers/ContextSynthesizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,kBAAkB;IAC7B;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,GAAE;QACP,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KACtB,GACL,kBAAkB;IA8CrB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAwB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAuClC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAoCtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAwC9B;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE;CAiBnE"}
@@ -1,208 +0,0 @@
1
- /**
2
- * Context Synthesis - Generate coherent narratives from multiple memories
3
- *
4
- * Takes a collection of retrieved episodes/patterns and synthesizes
5
- * a coherent context summary with extracted patterns, success rates,
6
- * and actionable insights.
7
- */
8
- export class ContextSynthesizer {
9
- /**
10
- * Synthesize context from multiple memories
11
- *
12
- * @param memories - Retrieved episodes/patterns
13
- * @param options - Synthesis options
14
- * @returns Synthesized context with insights
15
- */
16
- static synthesize(memories, options = {}) {
17
- const minPatternFrequency = options.minPatternFrequency ?? 2;
18
- const includeRecommendations = options.includeRecommendations ?? true;
19
- if (memories.length === 0) {
20
- return {
21
- summary: 'No relevant memories found.',
22
- patterns: [],
23
- successRate: 0,
24
- averageReward: 0,
25
- recommendations: [],
26
- keyInsights: [],
27
- totalMemories: 0,
28
- };
29
- }
30
- // Calculate statistics
31
- const successCount = memories.filter(m => m.success).length;
32
- const successRate = successCount / memories.length;
33
- const averageReward = memories.reduce((sum, m) => sum + (m.reward || 0), 0) / memories.length;
34
- // Extract common patterns from critiques
35
- const patterns = this.extractPatterns(memories, minPatternFrequency);
36
- // Generate key insights
37
- const keyInsights = this.generateKeyInsights(memories, successRate, averageReward);
38
- // Generate recommendations
39
- const recommendations = includeRecommendations
40
- ? this.generateRecommendations(memories, patterns, successRate)
41
- : [];
42
- // Generate summary narrative
43
- const summary = this.generateSummary(memories, patterns, successRate, averageReward);
44
- return {
45
- summary,
46
- patterns,
47
- successRate,
48
- averageReward,
49
- recommendations,
50
- keyInsights,
51
- totalMemories: memories.length,
52
- };
53
- }
54
- /**
55
- * Extract common patterns from memory critiques
56
- */
57
- static extractPatterns(memories, minFrequency) {
58
- const phraseCount = new Map();
59
- // Extract meaningful phrases from critiques
60
- for (const memory of memories) {
61
- if (memory.critique) {
62
- const phrases = this.extractPhrases(memory.critique);
63
- for (const phrase of phrases) {
64
- phraseCount.set(phrase, (phraseCount.get(phrase) || 0) + 1);
65
- }
66
- }
67
- }
68
- // Filter by minimum frequency
69
- const patterns = [];
70
- for (const [phrase, count] of phraseCount.entries()) {
71
- if (count >= minFrequency) {
72
- patterns.push(`${phrase} (${count}/${memories.length} times)`);
73
- }
74
- }
75
- return patterns.slice(0, 10); // Top 10 patterns
76
- }
77
- /**
78
- * Extract meaningful phrases from text
79
- */
80
- static extractPhrases(text) {
81
- // Simple phrase extraction (can be enhanced with NLP)
82
- const sentences = text.split(/[.!?]/).filter(s => s.trim().length > 0);
83
- const phrases = [];
84
- for (const sentence of sentences) {
85
- const trimmed = sentence.trim();
86
- // Extract phrases with key action words
87
- if (trimmed.match(/\b(use|implement|fix|improve|add|create|design|test)\b/i) &&
88
- trimmed.length > 10 &&
89
- trimmed.length < 100) {
90
- phrases.push(trimmed.toLowerCase());
91
- }
92
- }
93
- return phrases;
94
- }
95
- /**
96
- * Generate key insights from memories
97
- */
98
- static generateKeyInsights(memories, successRate, averageReward) {
99
- const insights = [];
100
- // Success rate insight
101
- if (successRate >= 0.8) {
102
- insights.push(`High success rate (${(successRate * 100).toFixed(0)}%) indicates strong pattern match`);
103
- }
104
- else if (successRate < 0.5) {
105
- insights.push(`Low success rate (${(successRate * 100).toFixed(0)}%) suggests exploring alternative approaches`);
106
- }
107
- // Reward insight
108
- if (averageReward >= 0.8) {
109
- insights.push(`High average reward (${averageReward.toFixed(2)}) shows effective past solutions`);
110
- }
111
- else if (averageReward < 0.6) {
112
- insights.push(`Moderate reward (${averageReward.toFixed(2)}) indicates room for improvement`);
113
- }
114
- // Identify high-performing memories
115
- const topMemories = memories
116
- .filter(m => m.success && (m.reward || 0) >= 0.9)
117
- .slice(0, 3);
118
- if (topMemories.length > 0) {
119
- insights.push(`${topMemories.length} exemplary solution(s) found with reward ≥0.9`);
120
- }
121
- // Task diversity
122
- const uniqueTasks = new Set(memories.map(m => m.task)).size;
123
- if (uniqueTasks > 1) {
124
- insights.push(`${uniqueTasks} different task types provide diverse perspectives`);
125
- }
126
- return insights;
127
- }
128
- /**
129
- * Generate actionable recommendations
130
- */
131
- static generateRecommendations(memories, patterns, successRate) {
132
- const recommendations = [];
133
- // Extract successful strategies
134
- const successfulMemories = memories.filter(m => m.success && (m.reward || 0) >= 0.8);
135
- if (successfulMemories.length > 0) {
136
- recommendations.push('Apply strategies from high-reward solutions');
137
- }
138
- // Pattern-based recommendations
139
- if (patterns.length > 0) {
140
- recommendations.push(`Follow common patterns: ${patterns[0].split(' (')[0]}`);
141
- }
142
- // Success rate recommendations
143
- if (successRate >= 0.7) {
144
- recommendations.push('Previous approaches were effective - follow similar methodology');
145
- }
146
- else {
147
- recommendations.push('Consider alternative approaches given mixed past results');
148
- }
149
- // Add general recommendations
150
- if (memories.length >= 5) {
151
- recommendations.push('Sufficient historical data available for confident decision-making');
152
- }
153
- else {
154
- recommendations.push('Limited data - proceed with caution and validate assumptions');
155
- }
156
- return recommendations.slice(0, 5);
157
- }
158
- /**
159
- * Generate narrative summary
160
- */
161
- static generateSummary(memories, patterns, successRate, averageReward) {
162
- const parts = [];
163
- // Opening
164
- parts.push(`Based on ${memories.length} similar past ${memories.length === 1 ? 'experience' : 'experiences'}`);
165
- // Success rate
166
- const successPercent = (successRate * 100).toFixed(0);
167
- if (successRate >= 0.7) {
168
- parts.push(`with a high success rate of ${successPercent}%`);
169
- }
170
- else {
171
- parts.push(`with a ${successPercent}% success rate`);
172
- }
173
- // Average reward
174
- parts.push(`and average reward of ${averageReward.toFixed(2)}`);
175
- // Key patterns
176
- if (patterns.length > 0) {
177
- parts.push('. Common effective approaches include:');
178
- const topPatterns = patterns.slice(0, 3).map(p => p.split(' (')[0]);
179
- parts.push(topPatterns.map((p, i) => `${i + 1}) ${p}`).join(', '));
180
- }
181
- // High performers
182
- const topMemories = memories.filter(m => m.success && (m.reward || 0) >= 0.9);
183
- if (topMemories.length > 0) {
184
- parts.push(`. ${topMemories.length} exemplary solution(s) achieved reward ≥0.9`);
185
- }
186
- parts.push('.');
187
- return parts.join(' ');
188
- }
189
- /**
190
- * Extract actionable steps from successful memories
191
- */
192
- static extractActionableSteps(memories) {
193
- const steps = [];
194
- const successfulMemories = memories.filter(m => m.success && (m.reward || 0) >= 0.8);
195
- for (const memory of successfulMemories) {
196
- if (memory.critique) {
197
- // Extract step-like phrases
198
- const matches = memory.critique.match(/\b\d+\.\s+([^.!?]+)/g);
199
- if (matches) {
200
- steps.push(...matches.map(m => m.trim()));
201
- }
202
- }
203
- }
204
- // Remove duplicates and return top 5
205
- return Array.from(new Set(steps)).slice(0, 5);
206
- }
207
- }
208
- //# sourceMappingURL=ContextSynthesizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextSynthesizer.js","sourceRoot":"","sources":["../../src/controllers/ContextSynthesizer.ts"],"names":[],"mappings":"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"}