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 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/optimizations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * AgentDB Optimizations
3
- *
4
- * Performance optimization utilities
5
- */
6
- export { QueryOptimizer } from './QueryOptimizer';
7
- export { BatchOperations } from './BatchOperations';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/optimizations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,109 +0,0 @@
1
- /**
2
- * Input Validation and Sanitization for AgentDB Security
3
- *
4
- * Provides comprehensive validation to prevent SQL injection and other attacks:
5
- * - Whitelist-based validation for identifiers (tables, columns, PRAGMA commands)
6
- * - Input sanitization for user data
7
- * - Type validation and constraints
8
- * - Error handling that doesn't leak sensitive information
9
- */
10
- /**
11
- * Validation error with safe error messages
12
- */
13
- export declare class ValidationError extends Error {
14
- readonly code: string;
15
- readonly field?: string;
16
- constructor(message: string, code?: string, field?: string);
17
- /**
18
- * Get safe error message (doesn't leak sensitive info)
19
- */
20
- getSafeMessage(): string;
21
- }
22
- /**
23
- * Validate task string (NEW - for MCP tool optimization)
24
- */
25
- export declare function validateTaskString(task: unknown, fieldName?: string): string;
26
- /**
27
- * Validate numeric range (NEW - for MCP tool optimization)
28
- */
29
- export declare function validateNumericRange(value: unknown, fieldName: string, min: number, max: number): number;
30
- /**
31
- * Validate array length (NEW - for MCP tool optimization)
32
- */
33
- export declare function validateArrayLength<T>(arr: unknown, fieldName: string, minLength: number, maxLength: number): T[];
34
- /**
35
- * Validate object (NEW - for MCP tool optimization)
36
- */
37
- export declare function validateObject(obj: unknown, fieldName: string, required?: boolean): Record<string, any>;
38
- /**
39
- * Validate boolean (NEW - for MCP tool optimization)
40
- */
41
- export declare function validateBoolean(value: unknown, fieldName: string, defaultValue?: boolean): boolean;
42
- /**
43
- * Validate enum value (NEW - for MCP tool optimization)
44
- */
45
- export declare function validateEnum<T extends string>(value: unknown, fieldName: string, allowedValues: readonly T[]): T;
46
- /**
47
- * Validate table name against whitelist
48
- */
49
- export declare function validateTableName(tableName: string): string;
50
- /**
51
- * Validate column name against whitelist
52
- */
53
- export declare function validateColumnName(tableName: string, columnName: string): string;
54
- /**
55
- * Validate PRAGMA command against whitelist
56
- */
57
- export declare function validatePragmaCommand(pragma: string): string;
58
- /**
59
- * Validate and sanitize session ID
60
- */
61
- export declare function validateSessionId(sessionId: string): string;
62
- /**
63
- * Validate numeric ID
64
- */
65
- export declare function validateId(id: any, fieldName?: string): number;
66
- /**
67
- * Validate timestamp
68
- */
69
- export declare function validateTimestamp(timestamp: any, fieldName?: string): number;
70
- /**
71
- * Validate reward value (0-1)
72
- */
73
- export declare function validateReward(reward: any): number;
74
- /**
75
- * Validate success flag
76
- */
77
- export declare function validateSuccess(success: any): boolean;
78
- /**
79
- * Sanitize text input (prevent extremely long strings, null bytes, etc.)
80
- */
81
- export declare function sanitizeText(text: string, maxLength?: number, fieldName?: string): string;
82
- /**
83
- * Build safe WHERE clause with parameterized values
84
- * Returns both the SQL clause and the parameter values
85
- */
86
- export declare function buildSafeWhereClause(tableName: string, conditions: Record<string, any>): {
87
- clause: string;
88
- values: any[];
89
- };
90
- /**
91
- * Build safe SET clause for UPDATE statements
92
- */
93
- export declare function buildSafeSetClause(tableName: string, updates: Record<string, any>): {
94
- clause: string;
95
- values: any[];
96
- };
97
- /**
98
- * Validate JSON data
99
- */
100
- export declare function validateJSON(data: any, fieldName?: string): string;
101
- /**
102
- * Validate array of tags
103
- */
104
- export declare function validateTags(tags: any): string[];
105
- /**
106
- * Safe error handler that doesn't leak sensitive information
107
- */
108
- export declare function handleSecurityError(error: any): string;
109
- //# sourceMappingURL=input-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-validation.d.ts","sourceRoot":"","sources":["../../src/security/input-validation.ts"],"names":[],"mappings":"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"}
@@ -1,398 +0,0 @@
1
- /**
2
- * Input Validation and Sanitization for AgentDB Security
3
- *
4
- * Provides comprehensive validation to prevent SQL injection and other attacks:
5
- * - Whitelist-based validation for identifiers (tables, columns, PRAGMA commands)
6
- * - Input sanitization for user data
7
- * - Type validation and constraints
8
- * - Error handling that doesn't leak sensitive information
9
- */
10
- /**
11
- * Allowed table names in AgentDB (whitelist)
12
- */
13
- const ALLOWED_TABLES = new Set([
14
- 'episodes',
15
- 'episode_embeddings',
16
- 'skills',
17
- 'skill_embeddings',
18
- 'causal_edges',
19
- 'causal_experiments',
20
- 'causal_observations',
21
- 'provenance_certificates',
22
- 'reasoning_patterns',
23
- 'pattern_embeddings',
24
- 'rl_sessions',
25
- 'rl_experiences',
26
- 'rl_policies',
27
- 'rl_q_values',
28
- ]);
29
- /**
30
- * Allowed column names by table (whitelist)
31
- */
32
- const ALLOWED_COLUMNS = {
33
- episodes: new Set([
34
- 'id', 'ts', 'session_id', 'task', 'input', 'output', 'critique',
35
- 'reward', 'success', 'latency_ms', 'tokens_used', 'tags', 'metadata'
36
- ]),
37
- skills: new Set([
38
- 'id', 'ts', 'name', 'description', 'signature', 'code',
39
- 'success_rate', 'uses', 'avg_reward', 'avg_latency_ms', 'tags', 'metadata'
40
- ]),
41
- causal_edges: new Set([
42
- 'id', 'ts', 'from_memory_id', 'from_memory_type', 'to_memory_id',
43
- 'to_memory_type', 'similarity', 'uplift', 'confidence', 'sample_size', 'evidence_ids'
44
- ]),
45
- // Add more as needed
46
- };
47
- /**
48
- * Allowed PRAGMA commands (whitelist)
49
- */
50
- const ALLOWED_PRAGMAS = new Set([
51
- 'journal_mode',
52
- 'synchronous',
53
- 'cache_size',
54
- 'page_size',
55
- 'page_count',
56
- 'user_version',
57
- 'foreign_keys',
58
- 'temp_store',
59
- 'mmap_size',
60
- 'wal_autocheckpoint',
61
- ]);
62
- /**
63
- * Validation error with safe error messages
64
- */
65
- export class ValidationError extends Error {
66
- code;
67
- field;
68
- constructor(message, code = 'VALIDATION_ERROR', field) {
69
- super(message);
70
- this.name = 'ValidationError';
71
- this.code = code;
72
- this.field = field;
73
- }
74
- /**
75
- * Get safe error message (doesn't leak sensitive info)
76
- */
77
- getSafeMessage() {
78
- return `Invalid input: ${this.field || 'unknown field'}`;
79
- }
80
- }
81
- /**
82
- * Validate task string (NEW - for MCP tool optimization)
83
- */
84
- export function validateTaskString(task, fieldName = 'task') {
85
- if (task === null || task === undefined) {
86
- throw new ValidationError(`${fieldName} is required`, 'MISSING_REQUIRED_FIELD', fieldName);
87
- }
88
- if (typeof task !== 'string') {
89
- throw new ValidationError(`${fieldName} must be a string`, 'INVALID_TYPE', fieldName);
90
- }
91
- const trimmed = task.trim();
92
- if (trimmed.length === 0) {
93
- throw new ValidationError(`${fieldName} cannot be empty`, 'EMPTY_STRING', fieldName);
94
- }
95
- if (trimmed.length > 10000) {
96
- throw new ValidationError(`${fieldName} exceeds maximum length of 10000 characters`, 'STRING_TOO_LONG', fieldName);
97
- }
98
- // Check for potentially malicious patterns
99
- const suspiciousPatterns = [
100
- /<script/i,
101
- /javascript:/i,
102
- /on\w+\s*=/i, // onclick=, onload=, etc.
103
- /\x00/, // Null bytes
104
- ];
105
- for (const pattern of suspiciousPatterns) {
106
- if (pattern.test(trimmed)) {
107
- throw new ValidationError(`${fieldName} contains potentially malicious content`, 'SUSPICIOUS_CONTENT', fieldName);
108
- }
109
- }
110
- return trimmed;
111
- }
112
- /**
113
- * Validate numeric range (NEW - for MCP tool optimization)
114
- */
115
- export function validateNumericRange(value, fieldName, min, max) {
116
- if (value === null || value === undefined) {
117
- throw new ValidationError(`${fieldName} is required`, 'MISSING_REQUIRED_FIELD', fieldName);
118
- }
119
- if (typeof value !== 'number' || isNaN(value) || !isFinite(value)) {
120
- throw new ValidationError(`${fieldName} must be a valid number`, 'INVALID_NUMBER', fieldName);
121
- }
122
- if (value < min || value > max) {
123
- throw new ValidationError(`${fieldName} must be between ${min} and ${max} (got ${value})`, 'OUT_OF_RANGE', fieldName);
124
- }
125
- return value;
126
- }
127
- /**
128
- * Validate array length (NEW - for MCP tool optimization)
129
- */
130
- export function validateArrayLength(arr, fieldName, minLength, maxLength) {
131
- if (arr === null || arr === undefined) {
132
- throw new ValidationError(`${fieldName} is required`, 'MISSING_REQUIRED_FIELD', fieldName);
133
- }
134
- if (!Array.isArray(arr)) {
135
- throw new ValidationError(`${fieldName} must be an array`, 'INVALID_ARRAY', fieldName);
136
- }
137
- if (arr.length < minLength || arr.length > maxLength) {
138
- throw new ValidationError(`${fieldName} must contain between ${minLength} and ${maxLength} items (got ${arr.length})`, 'ARRAY_LENGTH_INVALID', fieldName);
139
- }
140
- return arr;
141
- }
142
- /**
143
- * Validate object (NEW - for MCP tool optimization)
144
- */
145
- export function validateObject(obj, fieldName, required = true) {
146
- if (obj === null || obj === undefined) {
147
- if (required) {
148
- throw new ValidationError(`${fieldName} is required`, 'MISSING_REQUIRED_FIELD', fieldName);
149
- }
150
- return {};
151
- }
152
- if (typeof obj !== 'object' || Array.isArray(obj)) {
153
- throw new ValidationError(`${fieldName} must be an object`, 'INVALID_OBJECT', fieldName);
154
- }
155
- return obj;
156
- }
157
- /**
158
- * Validate boolean (NEW - for MCP tool optimization)
159
- */
160
- export function validateBoolean(value, fieldName, defaultValue) {
161
- if (value === null || value === undefined) {
162
- if (defaultValue !== undefined) {
163
- return defaultValue;
164
- }
165
- throw new ValidationError(`${fieldName} is required`, 'MISSING_REQUIRED_FIELD', fieldName);
166
- }
167
- if (typeof value !== 'boolean') {
168
- throw new ValidationError(`${fieldName} must be a boolean`, 'INVALID_BOOLEAN', fieldName);
169
- }
170
- return value;
171
- }
172
- /**
173
- * Validate enum value (NEW - for MCP tool optimization)
174
- */
175
- export function validateEnum(value, fieldName, allowedValues) {
176
- if (value === null || value === undefined) {
177
- throw new ValidationError(`${fieldName} is required`, 'MISSING_REQUIRED_FIELD', fieldName);
178
- }
179
- if (typeof value !== 'string') {
180
- throw new ValidationError(`${fieldName} must be a string`, 'INVALID_TYPE', fieldName);
181
- }
182
- if (!allowedValues.includes(value)) {
183
- throw new ValidationError(`${fieldName} must be one of: ${allowedValues.join(', ')} (got "${value}")`, 'INVALID_ENUM_VALUE', fieldName);
184
- }
185
- return value;
186
- }
187
- /**
188
- * Validate table name against whitelist
189
- */
190
- export function validateTableName(tableName) {
191
- if (!tableName || typeof tableName !== 'string') {
192
- throw new ValidationError('Table name must be a non-empty string', 'INVALID_TABLE', 'tableName');
193
- }
194
- const sanitized = tableName.trim().toLowerCase();
195
- if (!ALLOWED_TABLES.has(sanitized)) {
196
- throw new ValidationError(`Invalid table name: ${sanitized}. Allowed tables: ${Array.from(ALLOWED_TABLES).join(', ')}`, 'INVALID_TABLE', 'tableName');
197
- }
198
- return sanitized;
199
- }
200
- /**
201
- * Validate column name against whitelist
202
- */
203
- export function validateColumnName(tableName, columnName) {
204
- if (!columnName || typeof columnName !== 'string') {
205
- throw new ValidationError('Column name must be a non-empty string', 'INVALID_COLUMN', 'columnName');
206
- }
207
- const sanitized = columnName.trim().toLowerCase();
208
- const validatedTable = validateTableName(tableName);
209
- const allowedColumns = ALLOWED_COLUMNS[validatedTable];
210
- if (allowedColumns && !allowedColumns.has(sanitized)) {
211
- throw new ValidationError(`Invalid column name for table ${validatedTable}: ${sanitized}`, 'INVALID_COLUMN', 'columnName');
212
- }
213
- return sanitized;
214
- }
215
- /**
216
- * Validate PRAGMA command against whitelist
217
- */
218
- export function validatePragmaCommand(pragma) {
219
- if (!pragma || typeof pragma !== 'string') {
220
- throw new ValidationError('PRAGMA command must be a non-empty string', 'INVALID_PRAGMA', 'pragma');
221
- }
222
- // Extract the pragma name (before any = or space)
223
- const pragmaName = pragma.trim().toLowerCase().split(/[=\s]/)[0];
224
- if (!ALLOWED_PRAGMAS.has(pragmaName)) {
225
- throw new ValidationError(`Invalid PRAGMA command: ${pragmaName}. Allowed: ${Array.from(ALLOWED_PRAGMAS).join(', ')}`, 'INVALID_PRAGMA', 'pragma');
226
- }
227
- // Return the full pragma for execution (e.g., "journal_mode = WAL")
228
- return pragma.trim();
229
- }
230
- /**
231
- * Validate and sanitize session ID
232
- */
233
- export function validateSessionId(sessionId) {
234
- if (!sessionId || typeof sessionId !== 'string') {
235
- throw new ValidationError('Session ID must be a non-empty string', 'INVALID_SESSION_ID', 'sessionId');
236
- }
237
- // Allow alphanumeric, hyphens, underscores (max 255 chars)
238
- const sanitized = sessionId.trim();
239
- if (sanitized.length > 255) {
240
- throw new ValidationError('Session ID exceeds maximum length (255)', 'INVALID_SESSION_ID', 'sessionId');
241
- }
242
- if (!/^[a-zA-Z0-9_-]+$/.test(sanitized)) {
243
- throw new ValidationError('Session ID must contain only alphanumeric characters, hyphens, and underscores', 'INVALID_SESSION_ID', 'sessionId');
244
- }
245
- return sanitized;
246
- }
247
- /**
248
- * Validate numeric ID
249
- */
250
- export function validateId(id, fieldName = 'id') {
251
- const numId = Number(id);
252
- if (!Number.isFinite(numId) || numId < 0 || !Number.isInteger(numId)) {
253
- throw new ValidationError(`${fieldName} must be a non-negative integer`, 'INVALID_ID', fieldName);
254
- }
255
- return numId;
256
- }
257
- /**
258
- * Validate timestamp
259
- */
260
- export function validateTimestamp(timestamp, fieldName = 'timestamp') {
261
- const numTs = Number(timestamp);
262
- if (!Number.isFinite(numTs) || numTs < 0) {
263
- throw new ValidationError(`${fieldName} must be a non-negative number`, 'INVALID_TIMESTAMP', fieldName);
264
- }
265
- // Reasonable timestamp bounds (2000-01-01 to 2100-01-01)
266
- const MIN_TIMESTAMP = 946684800; // 2000-01-01
267
- const MAX_TIMESTAMP = 4102444800; // 2100-01-01
268
- if (numTs < MIN_TIMESTAMP || numTs > MAX_TIMESTAMP) {
269
- throw new ValidationError(`${fieldName} is out of valid range (2000-2100)`, 'INVALID_TIMESTAMP', fieldName);
270
- }
271
- return numTs;
272
- }
273
- /**
274
- * Validate reward value (0-1)
275
- */
276
- export function validateReward(reward) {
277
- const numReward = Number(reward);
278
- if (!Number.isFinite(numReward)) {
279
- throw new ValidationError('Reward must be a number', 'INVALID_REWARD', 'reward');
280
- }
281
- if (numReward < 0 || numReward > 1) {
282
- throw new ValidationError('Reward must be between 0 and 1', 'INVALID_REWARD', 'reward');
283
- }
284
- return numReward;
285
- }
286
- /**
287
- * Validate success flag
288
- */
289
- export function validateSuccess(success) {
290
- if (typeof success === 'boolean') {
291
- return success;
292
- }
293
- if (typeof success === 'number') {
294
- return success !== 0;
295
- }
296
- if (typeof success === 'string') {
297
- const lower = success.toLowerCase();
298
- if (lower === 'true' || lower === '1' || lower === 'yes')
299
- return true;
300
- if (lower === 'false' || lower === '0' || lower === 'no')
301
- return false;
302
- }
303
- throw new ValidationError('Success must be a boolean value', 'INVALID_BOOLEAN', 'success');
304
- }
305
- /**
306
- * Sanitize text input (prevent extremely long strings, null bytes, etc.)
307
- */
308
- export function sanitizeText(text, maxLength = 100000, fieldName = 'text') {
309
- if (typeof text !== 'string') {
310
- throw new ValidationError(`${fieldName} must be a string`, 'INVALID_TEXT', fieldName);
311
- }
312
- // Remove null bytes
313
- const sanitized = text.replace(/\0/g, '');
314
- if (sanitized.length > maxLength) {
315
- throw new ValidationError(`${fieldName} exceeds maximum length (${maxLength})`, 'TEXT_TOO_LONG', fieldName);
316
- }
317
- return sanitized;
318
- }
319
- /**
320
- * Build safe WHERE clause with parameterized values
321
- * Returns both the SQL clause and the parameter values
322
- */
323
- export function buildSafeWhereClause(tableName, conditions) {
324
- const validatedTable = validateTableName(tableName);
325
- if (!conditions || typeof conditions !== 'object' || Object.keys(conditions).length === 0) {
326
- throw new ValidationError('Conditions must be a non-empty object', 'INVALID_CONDITIONS', 'conditions');
327
- }
328
- const clauses = [];
329
- const values = [];
330
- for (const [column, value] of Object.entries(conditions)) {
331
- const validatedColumn = validateColumnName(validatedTable, column);
332
- clauses.push(`${validatedColumn} = ?`);
333
- values.push(value);
334
- }
335
- return {
336
- clause: clauses.join(' AND '),
337
- values,
338
- };
339
- }
340
- /**
341
- * Build safe SET clause for UPDATE statements
342
- */
343
- export function buildSafeSetClause(tableName, updates) {
344
- const validatedTable = validateTableName(tableName);
345
- if (!updates || typeof updates !== 'object' || Object.keys(updates).length === 0) {
346
- throw new ValidationError('Updates must be a non-empty object', 'INVALID_UPDATES', 'updates');
347
- }
348
- const clauses = [];
349
- const values = [];
350
- for (const [column, value] of Object.entries(updates)) {
351
- const validatedColumn = validateColumnName(validatedTable, column);
352
- clauses.push(`${validatedColumn} = ?`);
353
- values.push(value);
354
- }
355
- return {
356
- clause: clauses.join(', '),
357
- values,
358
- };
359
- }
360
- /**
361
- * Validate JSON data
362
- */
363
- export function validateJSON(data, fieldName = 'json') {
364
- try {
365
- return JSON.stringify(data);
366
- }
367
- catch (error) {
368
- throw new ValidationError(`${fieldName} is not valid JSON`, 'INVALID_JSON', fieldName);
369
- }
370
- }
371
- /**
372
- * Validate array of tags
373
- */
374
- export function validateTags(tags) {
375
- if (!Array.isArray(tags)) {
376
- throw new ValidationError('Tags must be an array', 'INVALID_TAGS', 'tags');
377
- }
378
- const sanitized = tags.map((tag, i) => {
379
- if (typeof tag !== 'string') {
380
- throw new ValidationError(`Tag at index ${i} must be a string`, 'INVALID_TAG', `tags[${i}]`);
381
- }
382
- return sanitizeText(tag, 100, `tags[${i}]`);
383
- });
384
- return sanitized;
385
- }
386
- /**
387
- * Safe error handler that doesn't leak sensitive information
388
- */
389
- export function handleSecurityError(error) {
390
- if (error instanceof ValidationError) {
391
- // Safe to return validation errors
392
- return error.message;
393
- }
394
- // For other errors, return generic message and log details internally
395
- console.error('Security error:', error);
396
- return 'An error occurred while processing your request. Please check your input and try again.';
397
- }
398
- //# sourceMappingURL=input-validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-validation.js","sourceRoot":"","sources":["../../src/security/input-validation.ts"],"names":[],"mappings":"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"}