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,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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"}