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