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,150 +0,0 @@
1
- /**
2
- * AgentDB v2 Resource Limit Enforcement
3
- *
4
- * Prevents denial of service attacks by enforcing:
5
- * - Memory usage limits
6
- * - Query timeouts
7
- * - Rate limiting
8
- * - Resource caps
9
- */
10
- /**
11
- * Resource usage tracker
12
- */
13
- export declare class ResourceTracker {
14
- private memoryUsageMB;
15
- private queryCount;
16
- private lastQueryTime;
17
- private queryTimes;
18
- private readonly startTime;
19
- /**
20
- * Update memory usage estimate
21
- */
22
- updateMemoryUsage(additionalMB: number): void;
23
- /**
24
- * Estimate memory for vectors
25
- */
26
- estimateVectorMemory(numVectors: number, dimension: number): number;
27
- /**
28
- * Record query execution
29
- */
30
- recordQuery(durationMs: number): void;
31
- /**
32
- * Get resource usage statistics
33
- */
34
- getStats(): ResourceStats;
35
- /**
36
- * Reset tracker
37
- */
38
- reset(): void;
39
- }
40
- /**
41
- * Resource statistics interface
42
- */
43
- export interface ResourceStats {
44
- memoryUsageMB: number;
45
- memoryLimitMB: number;
46
- memoryUtilization: number;
47
- queryCount: number;
48
- avgQueryTimeMs: number;
49
- uptimeSeconds: number;
50
- queriesPerSecond: number;
51
- }
52
- /**
53
- * Query timeout wrapper
54
- */
55
- export declare function withTimeout<T>(promise: Promise<T>, timeoutMs?: number, operation?: string): Promise<T>;
56
- /**
57
- * Rate limiter using token bucket algorithm
58
- */
59
- export declare class RateLimiter {
60
- private maxTokens;
61
- private refillRate;
62
- private tokens;
63
- private lastRefill;
64
- constructor(maxTokens: number, refillRate: number);
65
- /**
66
- * Attempt to consume tokens
67
- * @returns true if allowed, false if rate limited
68
- */
69
- tryConsume(tokens?: number): boolean;
70
- /**
71
- * Consume tokens or throw error
72
- */
73
- consume(tokens?: number, operation?: string): void;
74
- /**
75
- * Refill tokens based on time elapsed
76
- */
77
- private refill;
78
- /**
79
- * Get current token count
80
- */
81
- getTokens(): number;
82
- /**
83
- * Reset limiter
84
- */
85
- reset(): void;
86
- }
87
- /**
88
- * Security error class
89
- */
90
- export declare class SecurityError extends Error {
91
- readonly code: string;
92
- constructor(message: string, code: string);
93
- /**
94
- * Get safe error message for external consumption
95
- */
96
- getSafeMessage(): string;
97
- }
98
- /**
99
- * Enforce resource limits on batch operations
100
- */
101
- export declare function enforceBatchLimits(batchSize: number, dimension: number, tracker: ResourceTracker): void;
102
- /**
103
- * Circuit breaker for fault tolerance
104
- */
105
- export declare class CircuitBreaker {
106
- private maxFailures;
107
- private resetTimeoutMs;
108
- private failures;
109
- private lastFailureTime;
110
- private state;
111
- constructor(maxFailures?: number, resetTimeoutMs?: number);
112
- /**
113
- * Execute operation with circuit breaker protection
114
- */
115
- execute<T>(operation: () => Promise<T>, operationName?: string): Promise<T>;
116
- /**
117
- * Record a failure
118
- */
119
- private recordFailure;
120
- /**
121
- * Get circuit breaker status
122
- */
123
- getStatus(): {
124
- state: string;
125
- failures: number;
126
- lastFailure?: number;
127
- };
128
- /**
129
- * Manually reset circuit breaker
130
- */
131
- reset(): void;
132
- }
133
- /**
134
- * Global resource tracker instance
135
- */
136
- export declare const globalResourceTracker: ResourceTracker;
137
- /**
138
- * Default rate limiters
139
- */
140
- export declare const rateLimiters: {
141
- insert: RateLimiter;
142
- search: RateLimiter;
143
- delete: RateLimiter;
144
- batch: RateLimiter;
145
- };
146
- /**
147
- * Monitor and log resource usage
148
- */
149
- export declare function logResourceUsage(): void;
150
- //# sourceMappingURL=limits.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../src/security/limits.ts"],"names":[],"mappings":"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"}
@@ -1,288 +0,0 @@
1
- /**
2
- * AgentDB v2 Resource Limit Enforcement
3
- *
4
- * Prevents denial of service attacks by enforcing:
5
- * - Memory usage limits
6
- * - Query timeouts
7
- * - Rate limiting
8
- * - Resource caps
9
- */
10
- import { SECURITY_LIMITS } from './validation.js';
11
- /**
12
- * Resource usage tracker
13
- */
14
- export class ResourceTracker {
15
- memoryUsageMB = 0;
16
- queryCount = 0;
17
- lastQueryTime = Date.now();
18
- queryTimes = [];
19
- startTime = Date.now();
20
- /**
21
- * Update memory usage estimate
22
- */
23
- updateMemoryUsage(additionalMB) {
24
- this.memoryUsageMB += additionalMB;
25
- if (this.memoryUsageMB > SECURITY_LIMITS.MAX_MEMORY_MB) {
26
- throw new SecurityError(`Memory limit exceeded: ${this.memoryUsageMB.toFixed(2)}MB > ${SECURITY_LIMITS.MAX_MEMORY_MB}MB`, 'MEMORY_LIMIT_EXCEEDED');
27
- }
28
- }
29
- /**
30
- * Estimate memory for vectors
31
- */
32
- estimateVectorMemory(numVectors, dimension) {
33
- // Float32Array: 4 bytes per value
34
- // Plus overhead for object structure and metadata (~25%)
35
- const bytesPerVector = dimension * 4 * 1.25;
36
- const totalBytes = numVectors * bytesPerVector;
37
- return totalBytes / (1024 * 1024); // Convert to MB
38
- }
39
- /**
40
- * Record query execution
41
- */
42
- recordQuery(durationMs) {
43
- this.queryCount++;
44
- this.lastQueryTime = Date.now();
45
- this.queryTimes.push(durationMs);
46
- // Keep only last 100 query times for stats
47
- if (this.queryTimes.length > 100) {
48
- this.queryTimes.shift();
49
- }
50
- }
51
- /**
52
- * Get resource usage statistics
53
- */
54
- getStats() {
55
- const avgQueryTime = this.queryTimes.length > 0
56
- ? this.queryTimes.reduce((a, b) => a + b, 0) / this.queryTimes.length
57
- : 0;
58
- const uptimeSeconds = (Date.now() - this.startTime) / 1000;
59
- return {
60
- memoryUsageMB: this.memoryUsageMB,
61
- memoryLimitMB: SECURITY_LIMITS.MAX_MEMORY_MB,
62
- memoryUtilization: (this.memoryUsageMB / SECURITY_LIMITS.MAX_MEMORY_MB) * 100,
63
- queryCount: this.queryCount,
64
- avgQueryTimeMs: avgQueryTime,
65
- uptimeSeconds,
66
- queriesPerSecond: this.queryCount / uptimeSeconds,
67
- };
68
- }
69
- /**
70
- * Reset tracker
71
- */
72
- reset() {
73
- this.memoryUsageMB = 0;
74
- this.queryCount = 0;
75
- this.queryTimes = [];
76
- }
77
- }
78
- /**
79
- * Query timeout wrapper
80
- */
81
- export async function withTimeout(promise, timeoutMs = SECURITY_LIMITS.QUERY_TIMEOUT_MS, operation = 'operation') {
82
- const timeout = new Promise((_, reject) => {
83
- setTimeout(() => {
84
- reject(new SecurityError(`${operation} timeout after ${timeoutMs}ms`, 'QUERY_TIMEOUT'));
85
- }, timeoutMs);
86
- });
87
- return Promise.race([promise, timeout]);
88
- }
89
- /**
90
- * Rate limiter using token bucket algorithm
91
- */
92
- export class RateLimiter {
93
- maxTokens;
94
- refillRate;
95
- tokens;
96
- lastRefill;
97
- constructor(maxTokens, refillRate) {
98
- this.maxTokens = maxTokens;
99
- this.refillRate = refillRate;
100
- this.tokens = maxTokens;
101
- this.lastRefill = Date.now();
102
- }
103
- /**
104
- * Attempt to consume tokens
105
- * @returns true if allowed, false if rate limited
106
- */
107
- tryConsume(tokens = 1) {
108
- this.refill();
109
- if (this.tokens >= tokens) {
110
- this.tokens -= tokens;
111
- return true;
112
- }
113
- return false;
114
- }
115
- /**
116
- * Consume tokens or throw error
117
- */
118
- consume(tokens = 1, operation = 'operation') {
119
- if (!this.tryConsume(tokens)) {
120
- throw new SecurityError(`Rate limit exceeded for ${operation}. Try again later.`, 'RATE_LIMIT_EXCEEDED');
121
- }
122
- }
123
- /**
124
- * Refill tokens based on time elapsed
125
- */
126
- refill() {
127
- const now = Date.now();
128
- const elapsed = (now - this.lastRefill) / 1000; // seconds
129
- const tokensToAdd = elapsed * this.refillRate;
130
- this.tokens = Math.min(this.maxTokens, this.tokens + tokensToAdd);
131
- this.lastRefill = now;
132
- }
133
- /**
134
- * Get current token count
135
- */
136
- getTokens() {
137
- this.refill();
138
- return this.tokens;
139
- }
140
- /**
141
- * Reset limiter
142
- */
143
- reset() {
144
- this.tokens = this.maxTokens;
145
- this.lastRefill = Date.now();
146
- }
147
- }
148
- /**
149
- * Security error class
150
- */
151
- export class SecurityError extends Error {
152
- code;
153
- constructor(message, code) {
154
- super(message);
155
- this.code = code;
156
- this.name = 'SecurityError';
157
- }
158
- /**
159
- * Get safe error message for external consumption
160
- */
161
- getSafeMessage() {
162
- // Don't expose internal details in production
163
- return 'A security constraint was violated. Please check your request.';
164
- }
165
- }
166
- /**
167
- * Enforce resource limits on batch operations
168
- */
169
- export function enforceBatchLimits(batchSize, dimension, tracker) {
170
- // Check batch size
171
- if (batchSize > SECURITY_LIMITS.MAX_BATCH_SIZE) {
172
- throw new SecurityError(`Batch size ${batchSize} exceeds limit ${SECURITY_LIMITS.MAX_BATCH_SIZE}`, 'BATCH_TOO_LARGE');
173
- }
174
- // Estimate and check memory
175
- const estimatedMemoryMB = tracker.estimateVectorMemory(batchSize, dimension);
176
- if (estimatedMemoryMB > SECURITY_LIMITS.MAX_MEMORY_MB * 0.5) {
177
- throw new SecurityError(`Batch operation would use ${estimatedMemoryMB.toFixed(2)}MB (>50% of limit)`, 'BATCH_MEMORY_EXCESSIVE');
178
- }
179
- tracker.updateMemoryUsage(estimatedMemoryMB);
180
- }
181
- /**
182
- * Circuit breaker for fault tolerance
183
- */
184
- export class CircuitBreaker {
185
- maxFailures;
186
- resetTimeoutMs;
187
- failures = 0;
188
- lastFailureTime = 0;
189
- state = 'closed';
190
- constructor(maxFailures = 5, resetTimeoutMs = 60000) {
191
- this.maxFailures = maxFailures;
192
- this.resetTimeoutMs = resetTimeoutMs;
193
- }
194
- /**
195
- * Execute operation with circuit breaker protection
196
- */
197
- async execute(operation, operationName = 'operation') {
198
- if (this.state === 'open') {
199
- const timeSinceFailure = Date.now() - this.lastFailureTime;
200
- if (timeSinceFailure > this.resetTimeoutMs) {
201
- this.state = 'half-open';
202
- }
203
- else {
204
- throw new SecurityError(`Circuit breaker open for ${operationName}. Service temporarily unavailable.`, 'CIRCUIT_BREAKER_OPEN');
205
- }
206
- }
207
- try {
208
- const result = await operation();
209
- // Success - reset on half-open or keep closed
210
- if (this.state === 'half-open') {
211
- this.state = 'closed';
212
- this.failures = 0;
213
- }
214
- return result;
215
- }
216
- catch (error) {
217
- this.recordFailure();
218
- throw error;
219
- }
220
- }
221
- /**
222
- * Record a failure
223
- */
224
- recordFailure() {
225
- this.failures++;
226
- this.lastFailureTime = Date.now();
227
- if (this.failures >= this.maxFailures) {
228
- this.state = 'open';
229
- console.error(`[CircuitBreaker] Opened after ${this.failures} failures`);
230
- }
231
- }
232
- /**
233
- * Get circuit breaker status
234
- */
235
- getStatus() {
236
- return {
237
- state: this.state,
238
- failures: this.failures,
239
- lastFailure: this.lastFailureTime || undefined,
240
- };
241
- }
242
- /**
243
- * Manually reset circuit breaker
244
- */
245
- reset() {
246
- this.state = 'closed';
247
- this.failures = 0;
248
- this.lastFailureTime = 0;
249
- }
250
- }
251
- /**
252
- * Global resource tracker instance
253
- */
254
- export const globalResourceTracker = new ResourceTracker();
255
- /**
256
- * Default rate limiters
257
- */
258
- export const rateLimiters = {
259
- // 100 inserts per second
260
- insert: new RateLimiter(100, 100),
261
- // 1000 searches per second
262
- search: new RateLimiter(1000, 1000),
263
- // 50 deletes per second
264
- delete: new RateLimiter(50, 50),
265
- // 10 batch operations per second
266
- batch: new RateLimiter(10, 10),
267
- };
268
- /**
269
- * Monitor and log resource usage
270
- */
271
- export function logResourceUsage() {
272
- const stats = globalResourceTracker.getStats();
273
- console.log('[ResourceMonitor]', {
274
- memory: `${stats.memoryUsageMB.toFixed(2)}MB / ${stats.memoryLimitMB}MB (${stats.memoryUtilization.toFixed(1)}%)`,
275
- queries: stats.queryCount,
276
- avgQueryTime: `${stats.avgQueryTimeMs.toFixed(2)}ms`,
277
- qps: stats.queriesPerSecond.toFixed(2),
278
- uptime: `${stats.uptimeSeconds.toFixed(0)}s`,
279
- });
280
- // Warn if approaching limits
281
- if (stats.memoryUtilization > 80) {
282
- console.warn('[ResourceMonitor] WARNING: Memory usage above 80%');
283
- }
284
- if (stats.avgQueryTimeMs > SECURITY_LIMITS.QUERY_TIMEOUT_MS * 0.5) {
285
- console.warn('[ResourceMonitor] WARNING: Average query time approaching timeout');
286
- }
287
- }
288
- //# sourceMappingURL=limits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/security/limits.ts"],"names":[],"mappings":"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"}
@@ -1,100 +0,0 @@
1
- /**
2
- * AgentDB v2 Path Security Utilities
3
- *
4
- * Prevents path traversal attacks and ensures safe file operations:
5
- * - Path validation and canonicalization
6
- * - Symlink detection and handling
7
- * - Safe file read/write operations
8
- * - Temporary file cleanup
9
- */
10
- import * as fs from 'fs';
11
- /**
12
- * Validate and sanitize file path
13
- * Prevents path traversal attacks
14
- */
15
- export declare function validatePath(filePath: string, baseDir: string): string;
16
- /**
17
- * Check if path is a symbolic link
18
- */
19
- export declare function isSymbolicLink(filePath: string): Promise<boolean>;
20
- /**
21
- * Secure file write operation
22
- * Prevents writing to symbolic links and validates paths
23
- */
24
- export declare function secureWrite(filePath: string, data: Buffer | string, baseDir: string, options?: {
25
- overwrite?: boolean;
26
- encoding?: BufferEncoding;
27
- }): Promise<void>;
28
- /**
29
- * Secure file read operation
30
- * Validates paths and prevents symlink attacks
31
- */
32
- export declare function secureRead(filePath: string, baseDir: string, options?: {
33
- encoding?: BufferEncoding;
34
- followSymlinks?: boolean;
35
- }): Promise<Buffer | string>;
36
- /**
37
- * Secure directory listing
38
- * Prevents path traversal and filters out sensitive files
39
- */
40
- export declare function secureListDir(dirPath: string, baseDir: string, options?: {
41
- recursive?: boolean;
42
- includeDotFiles?: boolean;
43
- }): Promise<string[]>;
44
- /**
45
- * Secure file deletion
46
- * Validates paths and prevents symlink attacks
47
- */
48
- export declare function secureDelete(filePath: string, baseDir: string, options?: {
49
- force?: boolean;
50
- }): Promise<void>;
51
- /**
52
- * Temporary file manager with automatic cleanup
53
- */
54
- export declare class TempFileManager {
55
- private tempFiles;
56
- private tempDir;
57
- private cleanupScheduled;
58
- constructor(baseDir: string);
59
- /**
60
- * Initialize temp directory
61
- */
62
- init(): Promise<void>;
63
- /**
64
- * Create a temporary file
65
- */
66
- createTempFile(prefix?: string): Promise<string>;
67
- /**
68
- * Write to temporary file
69
- */
70
- writeTempFile(data: Buffer | string, prefix?: string): Promise<string>;
71
- /**
72
- * Delete a specific temp file
73
- */
74
- deleteTempFile(tempPath: string): Promise<void>;
75
- /**
76
- * Clean up all temporary files
77
- */
78
- cleanup(): Promise<void>;
79
- /**
80
- * Synchronous cleanup for process exit
81
- */
82
- private cleanupSync;
83
- /**
84
- * Get list of managed temp files
85
- */
86
- getTempFiles(): string[];
87
- }
88
- /**
89
- * Ensure directory exists with safe permissions
90
- */
91
- export declare function ensureDir(dirPath: string, baseDir: string): Promise<string>;
92
- /**
93
- * Get safe file stats without following symlinks
94
- */
95
- export declare function safeStats(filePath: string, baseDir: string): Promise<fs.Stats>;
96
- /**
97
- * Check if path exists within base directory
98
- */
99
- export declare function pathExists(filePath: string, baseDir: string): Promise<boolean>;
100
- //# sourceMappingURL=path-security.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-security.d.ts","sourceRoot":"","sources":["../../src/security/path-security.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAuCtE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GAC3D,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAChE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CA2B1B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3D,OAAO,CAAC,MAAM,EAAE,CAAC,CA0CnB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAkB;gBAE9B,OAAO,EAAE,MAAM;IAI3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B;;OAEG;IACG,cAAc,CAAC,MAAM,GAAE,MAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUjE;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,MAAM,GAAE,MAAkB,GACzB,OAAO,CAAC,MAAM,CAAC;IAMlB;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;CAGzB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAGnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAQlB"}