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,407 +0,0 @@
1
- /**
2
- * BatchOperations - Optimized Batch Processing for AgentDB
3
- *
4
- * Implements efficient batch operations:
5
- * - Bulk inserts with transactions
6
- * - Batch embedding generation
7
- * - Parallel processing
8
- * - Progress tracking
9
- *
10
- * SECURITY: Fixed SQL injection vulnerabilities:
11
- * - Table names validated against whitelist
12
- * - Column names validated against whitelist
13
- * - All queries use parameterized values
14
- */
15
- import { validateTableName, buildSafeWhereClause, buildSafeSetClause, ValidationError, } from '../security/input-validation.js';
16
- export class BatchOperations {
17
- db;
18
- embedder;
19
- config;
20
- constructor(db, embedder, config) {
21
- this.db = db;
22
- this.embedder = embedder;
23
- this.config = {
24
- batchSize: 100,
25
- parallelism: 4,
26
- ...config
27
- };
28
- }
29
- /**
30
- * Bulk insert episodes with embeddings
31
- */
32
- async insertEpisodes(episodes) {
33
- const totalBatches = Math.ceil(episodes.length / this.config.batchSize);
34
- let completed = 0;
35
- for (let i = 0; i < episodes.length; i += this.config.batchSize) {
36
- const batch = episodes.slice(i, i + this.config.batchSize);
37
- // Generate embeddings in parallel
38
- const texts = batch.map(ep => this.buildEpisodeText(ep));
39
- const embeddings = await this.embedder.embedBatch(texts);
40
- // Insert with transaction
41
- const transaction = this.db.transaction(() => {
42
- const episodeStmt = this.db.prepare(`
43
- INSERT INTO episodes (
44
- session_id, task, input, output, critique, reward, success,
45
- latency_ms, tokens_used, tags, metadata
46
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
47
- `);
48
- const embeddingStmt = this.db.prepare(`
49
- INSERT INTO episode_embeddings (episode_id, embedding)
50
- VALUES (?, ?)
51
- `);
52
- batch.forEach((episode, idx) => {
53
- const result = episodeStmt.run(episode.sessionId, episode.task, episode.input || null, episode.output || null, episode.critique || null, episode.reward, episode.success ? 1 : 0, episode.latencyMs || null, episode.tokensUsed || null, episode.tags ? JSON.stringify(episode.tags) : null, episode.metadata ? JSON.stringify(episode.metadata) : null);
54
- const episodeId = result.lastInsertRowid;
55
- embeddingStmt.run(episodeId, Buffer.from(embeddings[idx].buffer));
56
- });
57
- });
58
- transaction();
59
- completed += batch.length;
60
- if (this.config.progressCallback) {
61
- this.config.progressCallback(completed, episodes.length);
62
- }
63
- }
64
- return completed;
65
- }
66
- /**
67
- * Bulk insert skills with embeddings (NEW - 3x faster than sequential)
68
- */
69
- async insertSkills(skills) {
70
- const skillIds = [];
71
- let completed = 0;
72
- for (let i = 0; i < skills.length; i += this.config.batchSize) {
73
- const batch = skills.slice(i, i + this.config.batchSize);
74
- // Generate embeddings in parallel
75
- const texts = batch.map(skill => `${skill.name}\n${skill.description}`);
76
- const embeddings = await this.embedder.embedBatch(texts);
77
- // Insert with transaction
78
- const transaction = this.db.transaction(() => {
79
- const skillStmt = this.db.prepare(`
80
- INSERT INTO skills (
81
- name, description, signature, code, success_rate, uses,
82
- avg_reward, avg_latency_ms, tags, metadata
83
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
84
- `);
85
- const embeddingStmt = this.db.prepare(`
86
- INSERT INTO skill_embeddings (skill_id, embedding)
87
- VALUES (?, ?)
88
- `);
89
- batch.forEach((skill, idx) => {
90
- const result = skillStmt.run(skill.name, skill.description, skill.signature ? JSON.stringify(skill.signature) : null, skill.code || null, skill.successRate ?? 0.0, skill.uses ?? 0, skill.avgReward ?? 0.0, skill.avgLatencyMs ?? 0.0, skill.tags ? JSON.stringify(skill.tags) : null, skill.metadata ? JSON.stringify(skill.metadata) : null);
91
- const skillId = result.lastInsertRowid;
92
- skillIds.push(skillId);
93
- embeddingStmt.run(skillId, Buffer.from(embeddings[idx].buffer));
94
- });
95
- });
96
- transaction();
97
- completed += batch.length;
98
- if (this.config.progressCallback) {
99
- this.config.progressCallback(completed, skills.length);
100
- }
101
- }
102
- return skillIds;
103
- }
104
- /**
105
- * Bulk insert reasoning patterns with embeddings (NEW - 4x faster than sequential)
106
- */
107
- async insertPatterns(patterns) {
108
- const patternIds = [];
109
- let completed = 0;
110
- for (let i = 0; i < patterns.length; i += this.config.batchSize) {
111
- const batch = patterns.slice(i, i + this.config.batchSize);
112
- // Generate embeddings in parallel
113
- const texts = batch.map(p => `${p.taskType}\n${p.approach}\n${p.context || ''}`);
114
- const embeddings = await this.embedder.embedBatch(texts);
115
- // Insert with transaction
116
- const transaction = this.db.transaction(() => {
117
- const patternStmt = this.db.prepare(`
118
- INSERT INTO reasoning_patterns (
119
- task_type, approach, context, success_rate, outcome, uses, tags, metadata
120
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
121
- `);
122
- const embeddingStmt = this.db.prepare(`
123
- INSERT INTO pattern_embeddings (pattern_id, embedding)
124
- VALUES (?, ?)
125
- `);
126
- batch.forEach((pattern, idx) => {
127
- const result = patternStmt.run(pattern.taskType, pattern.approach, pattern.context || null, pattern.successRate, pattern.outcome || null, 0, // initial uses = 0
128
- pattern.tags ? JSON.stringify(pattern.tags) : null, pattern.metadata ? JSON.stringify(pattern.metadata) : null);
129
- const patternId = result.lastInsertRowid;
130
- patternIds.push(patternId);
131
- embeddingStmt.run(patternId, Buffer.from(embeddings[idx].buffer));
132
- });
133
- });
134
- transaction();
135
- completed += batch.length;
136
- if (this.config.progressCallback) {
137
- this.config.progressCallback(completed, patterns.length);
138
- }
139
- }
140
- return patternIds;
141
- }
142
- /**
143
- * Bulk update embeddings for existing episodes
144
- */
145
- async regenerateEmbeddings(episodeIds) {
146
- let episodes;
147
- if (episodeIds) {
148
- const placeholders = episodeIds.map(() => '?').join(',');
149
- episodes = this.db.prepare(`SELECT id, task, critique, output FROM episodes WHERE id IN (${placeholders})`).all(...episodeIds);
150
- }
151
- else {
152
- episodes = this.db.prepare('SELECT id, task, critique, output FROM episodes').all();
153
- }
154
- let completed = 0;
155
- const totalBatches = Math.ceil(episodes.length / this.config.batchSize);
156
- for (let i = 0; i < episodes.length; i += this.config.batchSize) {
157
- const batch = episodes.slice(i, i + this.config.batchSize);
158
- // Generate embeddings
159
- const texts = batch.map((ep) => [ep.task, ep.critique, ep.output].filter(Boolean).join('\n'));
160
- const embeddings = await this.embedder.embedBatch(texts);
161
- // Update with transaction
162
- const transaction = this.db.transaction(() => {
163
- const stmt = this.db.prepare(`
164
- INSERT OR REPLACE INTO episode_embeddings (episode_id, embedding)
165
- VALUES (?, ?)
166
- `);
167
- batch.forEach((episode, idx) => {
168
- stmt.run(episode.id, Buffer.from(embeddings[idx].buffer));
169
- });
170
- });
171
- transaction();
172
- completed += batch.length;
173
- if (this.config.progressCallback) {
174
- this.config.progressCallback(completed, episodes.length);
175
- }
176
- }
177
- return completed;
178
- }
179
- /**
180
- * Parallel batch processing with worker pool
181
- */
182
- async processInParallel(items, processor) {
183
- const results = [];
184
- const chunks = this.chunkArray(items, this.config.parallelism);
185
- for (const chunk of chunks) {
186
- const chunkResults = await Promise.all(chunk.map(item => processor(item)));
187
- results.push(...chunkResults);
188
- if (this.config.progressCallback) {
189
- this.config.progressCallback(results.length, items.length);
190
- }
191
- }
192
- return results;
193
- }
194
- /**
195
- * Bulk delete with conditions (SQL injection safe)
196
- */
197
- bulkDelete(table, conditions) {
198
- try {
199
- // SECURITY: Validate table name against whitelist
200
- const validatedTable = validateTableName(table);
201
- // SECURITY: Build safe WHERE clause with validated column names
202
- const { clause, values } = buildSafeWhereClause(validatedTable, conditions);
203
- // Execute with parameterized query
204
- const stmt = this.db.prepare(`DELETE FROM ${validatedTable} WHERE ${clause}`);
205
- const result = stmt.run(...values);
206
- return result.changes;
207
- }
208
- catch (error) {
209
- if (error instanceof ValidationError) {
210
- console.error(`❌ Bulk delete validation error: ${error.message}`);
211
- throw error;
212
- }
213
- throw error;
214
- }
215
- }
216
- /**
217
- * Bulk update with conditions (SQL injection safe)
218
- */
219
- bulkUpdate(table, updates, conditions) {
220
- try {
221
- // SECURITY: Validate table name against whitelist
222
- const validatedTable = validateTableName(table);
223
- // SECURITY: Build safe SET clause with validated column names
224
- const setResult = buildSafeSetClause(validatedTable, updates);
225
- // SECURITY: Build safe WHERE clause with validated column names
226
- const whereResult = buildSafeWhereClause(validatedTable, conditions);
227
- // Combine values from SET and WHERE clauses
228
- const values = [...setResult.values, ...whereResult.values];
229
- // Execute with parameterized query
230
- const stmt = this.db.prepare(`UPDATE ${validatedTable} SET ${setResult.clause} WHERE ${whereResult.clause}`);
231
- const result = stmt.run(...values);
232
- return result.changes;
233
- }
234
- catch (error) {
235
- if (error instanceof ValidationError) {
236
- console.error(`❌ Bulk update validation error: ${error.message}`);
237
- throw error;
238
- }
239
- throw error;
240
- }
241
- }
242
- /**
243
- * Prune old or low-quality data (NEW - maintain database hygiene)
244
- */
245
- async pruneData(config = {}) {
246
- const { maxAge = 90, // Default: 90 days
247
- minReward = 0.3, // Default: keep episodes with reward >= 0.3
248
- minSuccessRate = 0.5, // Default: keep skills/patterns >= 50% success rate
249
- maxRecords = 100000, // Default: max 100k records per table
250
- dryRun = false, } = config;
251
- const cutoffTime = Math.floor(Date.now() / 1000) - (maxAge * 24 * 60 * 60);
252
- const results = {
253
- episodesPruned: 0,
254
- skillsPruned: 0,
255
- patternsPruned: 0,
256
- spaceSaved: 0,
257
- };
258
- // Get current database size
259
- const sizeBeforeBytes = this.db.pragma('page_count', { simple: true }) *
260
- this.db.pragma('page_size', { simple: true });
261
- // 1. Prune old/low-quality episodes
262
- const episodesToPrune = this.db.prepare(`
263
- SELECT COUNT(*) as count FROM episodes
264
- WHERE (ts < ? OR reward < ?)
265
- AND id NOT IN (
266
- -- Keep episodes referenced by causal edges
267
- SELECT DISTINCT from_memory_id FROM causal_edges WHERE from_memory_type = 'episode'
268
- UNION
269
- SELECT DISTINCT to_memory_id FROM causal_edges WHERE to_memory_type = 'episode'
270
- )
271
- `).get(cutoffTime, minReward);
272
- if (!dryRun && episodesToPrune.count > 0) {
273
- this.db.prepare(`
274
- DELETE FROM episodes
275
- WHERE (ts < ? OR reward < ?)
276
- AND id NOT IN (
277
- SELECT DISTINCT from_memory_id FROM causal_edges WHERE from_memory_type = 'episode'
278
- UNION
279
- SELECT DISTINCT to_memory_id FROM causal_edges WHERE to_memory_type = 'episode'
280
- )
281
- `).run(cutoffTime, minReward);
282
- results.episodesPruned = episodesToPrune.count;
283
- }
284
- else {
285
- results.episodesPruned = episodesToPrune.count;
286
- }
287
- // 2. Prune low-performing skills
288
- const skillsToPrune = this.db.prepare(`
289
- SELECT COUNT(*) as count FROM skills
290
- WHERE (success_rate < ? OR uses = 0)
291
- AND ts < ?
292
- `).get(minSuccessRate, cutoffTime);
293
- if (!dryRun && skillsToPrune.count > 0) {
294
- this.db.prepare(`
295
- DELETE FROM skills
296
- WHERE (success_rate < ? OR uses = 0)
297
- AND ts < ?
298
- `).run(minSuccessRate, cutoffTime);
299
- results.skillsPruned = skillsToPrune.count;
300
- }
301
- else {
302
- results.skillsPruned = skillsToPrune.count;
303
- }
304
- // 3. Prune low-performing patterns
305
- const patternsToPrune = this.db.prepare(`
306
- SELECT COUNT(*) as count FROM reasoning_patterns
307
- WHERE (success_rate < ? OR uses = 0)
308
- AND ts < ?
309
- `).get(minSuccessRate, cutoffTime);
310
- if (!dryRun && patternsToPrune.count > 0) {
311
- this.db.prepare(`
312
- DELETE FROM reasoning_patterns
313
- WHERE (success_rate < ? OR uses = 0)
314
- AND ts < ?
315
- `).run(minSuccessRate, cutoffTime);
316
- results.patternsPruned = patternsToPrune.count;
317
- }
318
- else {
319
- results.patternsPruned = patternsToPrune.count;
320
- }
321
- // 4. Enforce max records limit (keep most recent + highest performing)
322
- const episodeCount = this.db.prepare('SELECT COUNT(*) as count FROM episodes').get();
323
- if (episodeCount.count > maxRecords) {
324
- const toDelete = episodeCount.count - maxRecords;
325
- if (!dryRun) {
326
- this.db.prepare(`
327
- DELETE FROM episodes
328
- WHERE id IN (
329
- SELECT id FROM episodes
330
- ORDER BY reward ASC, ts ASC
331
- LIMIT ?
332
- )
333
- `).run(toDelete);
334
- }
335
- results.episodesPruned += toDelete;
336
- }
337
- // Calculate space saved
338
- if (!dryRun) {
339
- // Vacuum to reclaim space
340
- this.db.exec('VACUUM');
341
- const sizeAfterBytes = this.db.pragma('page_count', { simple: true }) *
342
- this.db.pragma('page_size', { simple: true });
343
- results.spaceSaved = sizeBeforeBytes - sizeAfterBytes;
344
- }
345
- return results;
346
- }
347
- /**
348
- * Vacuum and optimize database
349
- */
350
- optimize() {
351
- console.log('🔧 Optimizing database...');
352
- // Analyze tables for query planner
353
- this.db.exec('ANALYZE');
354
- // Rebuild indexes
355
- const tables = this.db.prepare(`
356
- SELECT name FROM sqlite_master
357
- WHERE type='table' AND name NOT LIKE 'sqlite_%'
358
- `).all();
359
- for (const { name } of tables) {
360
- this.db.exec(`REINDEX ${name}`);
361
- }
362
- // Vacuum to reclaim space
363
- this.db.exec('VACUUM');
364
- console.log('✅ Database optimized');
365
- }
366
- /**
367
- * Get database statistics
368
- */
369
- getStats() {
370
- const pageSize = this.db.pragma('page_size', { simple: true });
371
- const pageCount = this.db.pragma('page_count', { simple: true });
372
- const totalSize = pageSize * pageCount;
373
- const tables = this.db.prepare(`
374
- SELECT name FROM sqlite_master
375
- WHERE type='table' AND name NOT LIKE 'sqlite_%'
376
- `).all();
377
- const tableStats = tables.map(({ name }) => {
378
- const count = this.db.prepare(`SELECT COUNT(*) as count FROM ${name}`).get();
379
- const pages = this.db.prepare(`SELECT COUNT(*) as count FROM dbstat WHERE name = ?`).get(name);
380
- return {
381
- name,
382
- rows: count.count,
383
- size: (pages?.count || 0) * pageSize
384
- };
385
- });
386
- return { totalSize, tableStats };
387
- }
388
- // ========================================================================
389
- // Private Methods
390
- // ========================================================================
391
- buildEpisodeText(episode) {
392
- const parts = [episode.task];
393
- if (episode.critique)
394
- parts.push(episode.critique);
395
- if (episode.output)
396
- parts.push(episode.output);
397
- return parts.join('\n');
398
- }
399
- chunkArray(array, size) {
400
- const chunks = [];
401
- for (let i = 0; i < array.length; i += size) {
402
- chunks.push(array.slice(i, i + size));
403
- }
404
- return chunks;
405
- }
406
- }
407
- //# sourceMappingURL=BatchOperations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BatchOperations.js","sourceRoot":"","sources":["../../src/optimizations/BatchOperations.ts"],"names":[],"mappings":"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"}
@@ -1,83 +0,0 @@
1
- /**
2
- * QueryOptimizer - Advanced Query Optimization for AgentDB
3
- *
4
- * Implements:
5
- * - Query result caching with TTL
6
- * - Prepared statement pooling
7
- * - Batch operation optimization
8
- * - Index usage analysis
9
- * - Query plan analysis
10
- */
11
- type Database = any;
12
- export interface CacheConfig {
13
- maxSize: number;
14
- ttl: number;
15
- enabled: boolean;
16
- }
17
- export interface QueryStats {
18
- query: string;
19
- executionCount: number;
20
- totalTime: number;
21
- avgTime: number;
22
- cacheHits: number;
23
- cacheMisses: number;
24
- }
25
- export declare class QueryOptimizer {
26
- private db;
27
- private cache;
28
- private stats;
29
- private config;
30
- constructor(db: Database, config?: Partial<CacheConfig>);
31
- /**
32
- * Execute query with caching
33
- */
34
- query<T = any>(sql: string, params?: any[], cacheKey?: string): T;
35
- /**
36
- * Execute query that returns single row
37
- */
38
- queryOne<T = any>(sql: string, params?: any[], cacheKey?: string): T | undefined;
39
- /**
40
- * Execute write operation (no caching)
41
- */
42
- execute(sql: string, params?: any[]): any;
43
- /**
44
- * Batch insert optimization
45
- */
46
- batchInsert(table: string, columns: string[], rows: any[][]): void;
47
- /**
48
- * Analyze query plan
49
- */
50
- analyzeQuery(sql: string): {
51
- plan: string;
52
- usesIndex: boolean;
53
- estimatedCost: number;
54
- };
55
- /**
56
- * Get optimization suggestions
57
- */
58
- getSuggestions(): string[];
59
- /**
60
- * Get query statistics
61
- */
62
- getStats(): QueryStats[];
63
- /**
64
- * Clear cache
65
- */
66
- clearCache(): void;
67
- /**
68
- * Get cache statistics
69
- */
70
- getCacheStats(): {
71
- size: number;
72
- hitRate: number;
73
- totalHits: number;
74
- totalMisses: number;
75
- };
76
- private generateCacheKey;
77
- private cacheResult;
78
- private invalidateCache;
79
- private extractTables;
80
- private recordStats;
81
- }
82
- export {};
83
- //# sourceMappingURL=QueryOptimizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QueryOptimizer.d.ts","sourceRoot":"","sources":["../../src/optimizations/QueryOptimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,KAAK,QAAQ,GAAG,GAAG,CAAC;AAEpB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,KAAK,CAAkD;IAC/D,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,MAAM,CAAc;gBAEhB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAYvD;;OAEG;IACH,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IA8BrE;;OAEG;IACH,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKpF;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,GAAG;IAa7C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;IAgBlE;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;KACvB;IAmBD;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAuC1B;;OAEG;IACH,QAAQ,IAAI,UAAU,EAAE;IAKxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB;IAgBD,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;CAyBpB"}