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,383 +0,0 @@
1
- /**
2
- * QUICServer - QUIC Protocol Server for AgentDB Synchronization
3
- *
4
- * Implements a QUIC server for receiving and handling synchronization requests
5
- * from remote AgentDB instances. Supports episodes, skills, and edge synchronization.
6
- *
7
- * Features:
8
- * - Start/stop server lifecycle management
9
- * - Client connection handling
10
- * - Authentication and authorization
11
- * - Rate limiting per client
12
- * - Sync request processing (episodes, skills, edges)
13
- * - Comprehensive error handling and logging
14
- */
15
- import chalk from 'chalk';
16
- export class QUICServer {
17
- db;
18
- config;
19
- isRunning = false;
20
- connections = new Map();
21
- rateLimitState = new Map();
22
- server = null;
23
- cleanupInterval = null;
24
- constructor(db, config = {}) {
25
- this.db = db;
26
- this.config = {
27
- host: config.host || '0.0.0.0',
28
- port: config.port || 4433,
29
- maxConnections: config.maxConnections || 100,
30
- authToken: config.authToken || '',
31
- rateLimit: config.rateLimit || {
32
- maxRequestsPerMinute: 60,
33
- maxBytesPerMinute: 10 * 1024 * 1024, // 10MB
34
- },
35
- tlsConfig: config.tlsConfig || {},
36
- };
37
- }
38
- /**
39
- * Start the QUIC server
40
- */
41
- async start() {
42
- if (this.isRunning) {
43
- console.log(chalk.yellow('⚠️ QUIC server is already running'));
44
- return;
45
- }
46
- try {
47
- console.log(chalk.blue('🚀 Starting QUIC server...'));
48
- console.log(chalk.gray(` Host: ${this.config.host}`));
49
- console.log(chalk.gray(` Port: ${this.config.port}`));
50
- // Note: Actual QUIC implementation would use a library like @fails-components/webtransport
51
- // or node-quic. This is a reference implementation showing the interface.
52
- // Initialize server state
53
- this.isRunning = true;
54
- this.startCleanupInterval();
55
- console.log(chalk.green('✓ QUIC server started successfully'));
56
- console.log(chalk.gray(` Max connections: ${this.config.maxConnections}`));
57
- console.log(chalk.gray(` Rate limit: ${this.config.rateLimit.maxRequestsPerMinute} req/min`));
58
- }
59
- catch (error) {
60
- const err = error;
61
- console.error(chalk.red('✗ Failed to start QUIC server:'), err.message);
62
- throw new Error(`QUIC server start failed: ${err.message}`);
63
- }
64
- }
65
- /**
66
- * Stop the QUIC server
67
- */
68
- async stop() {
69
- if (!this.isRunning) {
70
- console.log(chalk.yellow('⚠️ QUIC server is not running'));
71
- return;
72
- }
73
- try {
74
- console.log(chalk.blue('🛑 Stopping QUIC server...'));
75
- // Close all connections
76
- for (const [clientId, connection] of this.connections.entries()) {
77
- console.log(chalk.gray(` Closing connection: ${clientId}`));
78
- // Close connection logic here
79
- }
80
- this.connections.clear();
81
- this.rateLimitState.clear();
82
- // Stop cleanup interval
83
- if (this.cleanupInterval) {
84
- clearInterval(this.cleanupInterval);
85
- this.cleanupInterval = null;
86
- }
87
- // Close server
88
- if (this.server) {
89
- // await this.server.close();
90
- this.server = null;
91
- }
92
- this.isRunning = false;
93
- console.log(chalk.green('✓ QUIC server stopped successfully'));
94
- }
95
- catch (error) {
96
- const err = error;
97
- console.error(chalk.red('✗ Error stopping QUIC server:'), err.message);
98
- throw new Error(`QUIC server stop failed: ${err.message}`);
99
- }
100
- }
101
- /**
102
- * Handle incoming client connection
103
- */
104
- async handleConnection(clientId, address) {
105
- // Check max connections
106
- if (this.connections.size >= this.config.maxConnections) {
107
- console.log(chalk.yellow(`⚠️ Max connections reached, rejecting ${clientId}`));
108
- return false;
109
- }
110
- // Register connection
111
- const connection = {
112
- id: clientId,
113
- address,
114
- connectedAt: Date.now(),
115
- requestCount: 0,
116
- bytesReceived: 0,
117
- lastRequestAt: 0,
118
- };
119
- this.connections.set(clientId, connection);
120
- console.log(chalk.green(`✓ Client connected: ${clientId} from ${address}`));
121
- console.log(chalk.gray(` Active connections: ${this.connections.size}`));
122
- return true;
123
- }
124
- /**
125
- * Authenticate client request
126
- */
127
- authenticate(clientId, authToken) {
128
- if (!this.config.authToken) {
129
- return true; // No auth required
130
- }
131
- const isValid = authToken === this.config.authToken;
132
- if (!isValid) {
133
- console.log(chalk.red(`✗ Authentication failed for client: ${clientId}`));
134
- }
135
- return isValid;
136
- }
137
- /**
138
- * Check rate limits for client
139
- */
140
- checkRateLimit(clientId, requestSize) {
141
- const now = Date.now();
142
- let state = this.rateLimitState.get(clientId);
143
- if (!state || now - state.windowStart > 60000) {
144
- // New window
145
- state = {
146
- requestCount: 0,
147
- bytesTransferred: 0,
148
- windowStart: now,
149
- };
150
- this.rateLimitState.set(clientId, state);
151
- }
152
- // Check limits
153
- if (state.requestCount >= this.config.rateLimit.maxRequestsPerMinute) {
154
- console.log(chalk.yellow(`⚠️ Rate limit exceeded (requests) for ${clientId}`));
155
- return false;
156
- }
157
- if (state.bytesTransferred + requestSize > this.config.rateLimit.maxBytesPerMinute) {
158
- console.log(chalk.yellow(`⚠️ Rate limit exceeded (bytes) for ${clientId}`));
159
- return false;
160
- }
161
- // Update state
162
- state.requestCount++;
163
- state.bytesTransferred += requestSize;
164
- return true;
165
- }
166
- /**
167
- * Process sync request from client
168
- */
169
- async processSyncRequest(clientId, request, authToken) {
170
- try {
171
- // Authenticate
172
- if (!this.authenticate(clientId, authToken)) {
173
- return {
174
- success: false,
175
- error: 'Authentication failed',
176
- };
177
- }
178
- // Check rate limit
179
- const requestSize = JSON.stringify(request).length;
180
- if (!this.checkRateLimit(clientId, requestSize)) {
181
- return {
182
- success: false,
183
- error: 'Rate limit exceeded',
184
- };
185
- }
186
- // Update connection stats
187
- const connection = this.connections.get(clientId);
188
- if (connection) {
189
- connection.requestCount++;
190
- connection.bytesReceived += requestSize;
191
- connection.lastRequestAt = Date.now();
192
- }
193
- console.log(chalk.blue(`📥 Processing sync request from ${clientId}`));
194
- console.log(chalk.gray(` Type: ${request.type}`));
195
- console.log(chalk.gray(` Since: ${request.since || 'full sync'}`));
196
- // Process based on type
197
- let data;
198
- let count = 0;
199
- switch (request.type) {
200
- case 'episodes':
201
- data = await this.syncEpisodes(request);
202
- count = data.length;
203
- break;
204
- case 'skills':
205
- data = await this.syncSkills(request);
206
- count = data.length;
207
- break;
208
- case 'edges':
209
- data = await this.syncEdges(request);
210
- count = data.length;
211
- break;
212
- case 'full':
213
- data = await this.syncFull(request);
214
- count = data.episodes?.length + data.skills?.length + data.edges?.length || 0;
215
- break;
216
- default:
217
- return {
218
- success: false,
219
- error: `Unknown sync type: ${request.type}`,
220
- };
221
- }
222
- console.log(chalk.green(`✓ Sync completed: ${count} items sent`));
223
- return {
224
- success: true,
225
- data,
226
- count,
227
- hasMore: false, // Could implement pagination here
228
- };
229
- }
230
- catch (error) {
231
- const err = error;
232
- console.error(chalk.red('✗ Sync request failed:'), err.message);
233
- return {
234
- success: false,
235
- error: err.message,
236
- };
237
- }
238
- }
239
- /**
240
- * Sync episodes data
241
- */
242
- async syncEpisodes(request) {
243
- const { since, filters, batchSize = 1000 } = request;
244
- let query = 'SELECT * FROM episodes WHERE 1=1';
245
- const params = [];
246
- if (since) {
247
- query += ' AND ts > ?';
248
- params.push(since);
249
- }
250
- // Apply filters
251
- if (filters) {
252
- if (filters.sessionId) {
253
- query += ' AND session_id = ?';
254
- params.push(filters.sessionId);
255
- }
256
- if (filters.success !== undefined) {
257
- query += ' AND success = ?';
258
- params.push(filters.success ? 1 : 0);
259
- }
260
- }
261
- query += ` ORDER BY ts DESC LIMIT ${batchSize}`;
262
- const stmt = this.db.prepare(query);
263
- const rows = stmt.all(...params);
264
- return rows.map((row) => ({
265
- id: row.id,
266
- ts: row.ts,
267
- sessionId: row.session_id,
268
- task: row.task,
269
- input: row.input,
270
- output: row.output,
271
- critique: row.critique,
272
- reward: row.reward,
273
- success: row.success === 1,
274
- latencyMs: row.latency_ms,
275
- tokensUsed: row.tokens_used,
276
- tags: row.tags ? JSON.parse(row.tags) : [],
277
- metadata: row.metadata ? JSON.parse(row.metadata) : {},
278
- }));
279
- }
280
- /**
281
- * Sync skills data
282
- */
283
- async syncSkills(request) {
284
- const { since, batchSize = 1000 } = request;
285
- let query = 'SELECT * FROM skills WHERE 1=1';
286
- const params = [];
287
- if (since) {
288
- query += ' AND ts > ?';
289
- params.push(since);
290
- }
291
- query += ` ORDER BY ts DESC LIMIT ${batchSize}`;
292
- const stmt = this.db.prepare(query);
293
- const rows = stmt.all(...params);
294
- return rows.map((row) => ({
295
- id: row.id,
296
- ts: row.ts,
297
- name: row.name,
298
- description: row.description,
299
- code: row.code,
300
- successRate: row.success_rate,
301
- usageCount: row.usage_count,
302
- avgReward: row.avg_reward,
303
- tags: row.tags ? JSON.parse(row.tags) : [],
304
- metadata: row.metadata ? JSON.parse(row.metadata) : {},
305
- }));
306
- }
307
- /**
308
- * Sync edges (skill relationships)
309
- */
310
- async syncEdges(request) {
311
- const { since, batchSize = 1000 } = request;
312
- let query = 'SELECT * FROM skill_edges WHERE 1=1';
313
- const params = [];
314
- if (since) {
315
- query += ' AND ts > ?';
316
- params.push(since);
317
- }
318
- query += ` ORDER BY ts DESC LIMIT ${batchSize}`;
319
- const stmt = this.db.prepare(query);
320
- const rows = stmt.all(...params);
321
- return rows.map((row) => ({
322
- id: row.id,
323
- ts: row.ts,
324
- fromSkillId: row.from_skill_id,
325
- toSkillId: row.to_skill_id,
326
- weight: row.weight,
327
- coOccurrences: row.co_occurrences,
328
- }));
329
- }
330
- /**
331
- * Full sync of all data
332
- */
333
- async syncFull(request) {
334
- const [episodes, skills, edges] = await Promise.all([
335
- this.syncEpisodes(request),
336
- this.syncSkills(request),
337
- this.syncEdges(request),
338
- ]);
339
- return {
340
- episodes,
341
- skills,
342
- edges,
343
- };
344
- }
345
- /**
346
- * Start cleanup interval for stale connections
347
- */
348
- startCleanupInterval() {
349
- this.cleanupInterval = setInterval(() => {
350
- const now = Date.now();
351
- const staleThreshold = 5 * 60 * 1000; // 5 minutes
352
- for (const [clientId, connection] of this.connections.entries()) {
353
- if (now - connection.lastRequestAt > staleThreshold && connection.requestCount > 0) {
354
- console.log(chalk.gray(`🧹 Removing stale connection: ${clientId}`));
355
- this.connections.delete(clientId);
356
- this.rateLimitState.delete(clientId);
357
- }
358
- }
359
- }, 60000); // Run every minute
360
- }
361
- /**
362
- * Get server status
363
- */
364
- getStatus() {
365
- let totalRequests = 0;
366
- for (const connection of this.connections.values()) {
367
- totalRequests += connection.requestCount;
368
- }
369
- return {
370
- isRunning: this.isRunning,
371
- activeConnections: this.connections.size,
372
- totalRequests,
373
- config: this.config,
374
- };
375
- }
376
- /**
377
- * Get connection info
378
- */
379
- getConnections() {
380
- return Array.from(this.connections.values());
381
- }
382
- }
383
- //# sourceMappingURL=QUICServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QUICServer.js","sourceRoot":"","sources":["../../src/controllers/QUICServer.ts"],"names":[],"mappings":"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"}
@@ -1,196 +0,0 @@
1
- /**
2
- * ReasoningBank Controller - Pattern Storage and Retrieval
3
- *
4
- * Manages reasoning patterns with embeddings for semantic similarity search.
5
- * Integrates with ReasoningBank WASM for high-performance pattern matching.
6
- *
7
- * Pattern Structure:
8
- * - taskType: Type of task (e.g., "code_review", "data_analysis")
9
- * - approach: Description of the reasoning approach used
10
- * - successRate: Success rate of this pattern (0-1)
11
- * - embedding: Vector embedding of the pattern for similarity search
12
- * - metadata: Additional contextual information
13
- *
14
- * AgentDB v2 Migration:
15
- * - Uses VectorBackend abstraction for 8x faster search (RuVector/hnswlib)
16
- * - Optional GNN enhancement via LearningBackend
17
- * - 100% backward compatible with v1 API
18
- * - New features: useGNN option, recordOutcome for learning
19
- */
20
- type Database = any;
21
- import { EmbeddingService } from './EmbeddingService.js';
22
- import type { VectorBackend } from '../backends/VectorBackend.js';
23
- export interface ReasoningPattern {
24
- id?: number;
25
- taskType: string;
26
- approach: string;
27
- successRate: number;
28
- embedding?: Float32Array;
29
- uses?: number;
30
- avgReward?: number;
31
- tags?: string[];
32
- metadata?: Record<string, any>;
33
- createdAt?: number;
34
- similarity?: number;
35
- }
36
- export interface PatternSearchQuery {
37
- /** v1 API: Task string (will be embedded automatically) */
38
- task?: string;
39
- /** v2 API: Pre-computed embedding */
40
- taskEmbedding?: Float32Array;
41
- k?: number;
42
- threshold?: number;
43
- /** Enable GNN-based query enhancement (requires LearningBackend) */
44
- useGNN?: boolean;
45
- filters?: {
46
- taskType?: string;
47
- minSuccessRate?: number;
48
- tags?: string[];
49
- };
50
- }
51
- export interface PatternStats {
52
- totalPatterns: number;
53
- avgSuccessRate: number;
54
- avgUses: number;
55
- topTaskTypes: Array<{
56
- taskType: string;
57
- count: number;
58
- }>;
59
- recentPatterns: number;
60
- highPerformingPatterns: number;
61
- }
62
- /**
63
- * Optional GNN Learning Backend for query enhancement
64
- */
65
- export interface LearningBackend {
66
- /**
67
- * Enhance query embedding using GNN and neighbor context
68
- */
69
- enhance(query: Float32Array, neighbors: Float32Array[], weights: number[]): Float32Array;
70
- /**
71
- * Add training sample for future learning
72
- */
73
- addSample(embedding: Float32Array, success: boolean): void;
74
- /**
75
- * Train the GNN model
76
- */
77
- train(options?: {
78
- epochs?: number;
79
- batchSize?: number;
80
- }): Promise<{
81
- epochs: number;
82
- finalLoss: number;
83
- }>;
84
- }
85
- export declare class ReasoningBank {
86
- private db;
87
- private embedder;
88
- private cache;
89
- private vectorBackend?;
90
- private learningBackend?;
91
- private idMapping;
92
- private nextVectorId;
93
- /**
94
- * Constructor supports both legacy (v1) and new (v2) modes
95
- *
96
- * Legacy mode (v1 - backward compatible):
97
- * new ReasoningBank(db, embedder)
98
- *
99
- * New mode (v2 - with VectorBackend):
100
- * new ReasoningBank(db, embedder, vectorBackend, learningBackend?)
101
- */
102
- constructor(db: Database, embedder: EmbeddingService, vectorBackend?: VectorBackend, learningBackend?: LearningBackend);
103
- /**
104
- * Initialize reasoning patterns schema
105
- */
106
- private initializeSchema;
107
- /**
108
- * Store a reasoning pattern with embedding
109
- *
110
- * v1 (legacy): Stores in SQLite with pattern_embeddings table
111
- * v2 (VectorBackend): Stores metadata in SQLite, vectors in VectorBackend
112
- */
113
- storePattern(pattern: ReasoningPattern): Promise<number>;
114
- /**
115
- * Store pattern embedding
116
- */
117
- private storePatternEmbedding;
118
- /**
119
- * Search patterns by semantic similarity
120
- *
121
- * v1 (legacy): Uses SQLite with cosine similarity computation
122
- * v2 (VectorBackend): Uses high-performance vector search (8x faster)
123
- * v2 + GNN: Optionally enhances query with learned patterns
124
- */
125
- searchPatterns(query: PatternSearchQuery): Promise<ReasoningPattern[]>;
126
- /**
127
- * v2: Search using VectorBackend with optional GNN enhancement
128
- */
129
- private searchPatternsV2;
130
- /**
131
- * v1: Legacy search using SQLite (backward compatible)
132
- */
133
- private searchPatternsLegacy;
134
- /**
135
- * Hydrate search results with metadata from SQLite
136
- */
137
- private hydratePatterns;
138
- /**
139
- * Get embeddings for vector IDs (for GNN)
140
- */
141
- private getEmbeddingsForVectorIds;
142
- /**
143
- * Get pattern statistics
144
- */
145
- getPatternStats(): PatternStats;
146
- /**
147
- * Update pattern statistics after use
148
- */
149
- updatePatternStats(patternId: number, success: boolean, reward: number): void;
150
- /**
151
- * Record pattern outcome for GNN learning (v2 feature)
152
- *
153
- * Updates pattern stats and adds training sample to LearningBackend
154
- * for future GNN model improvements.
155
- *
156
- * @param patternId - Pattern ID to update
157
- * @param success - Whether the pattern was successful
158
- * @param reward - Optional reward value (default: 1 for success, 0 for failure)
159
- */
160
- recordOutcome(patternId: number, success: boolean, reward?: number): Promise<void>;
161
- /**
162
- * Train GNN model on collected samples (v2 feature)
163
- *
164
- * Trains the learning backend using accumulated pattern outcomes.
165
- * Requires LearningBackend to be configured.
166
- *
167
- * @param options - Training options (epochs, batchSize)
168
- * @returns Training results with epochs and final loss
169
- * @throws Error if LearningBackend not available
170
- */
171
- trainGNN(options?: {
172
- epochs?: number;
173
- batchSize?: number;
174
- }): Promise<{
175
- epochs: number;
176
- finalLoss: number;
177
- }>;
178
- /**
179
- * Get pattern by ID
180
- */
181
- getPattern(patternId: number): ReasoningPattern | null;
182
- /**
183
- * Delete pattern by ID
184
- */
185
- deletePattern(patternId: number): boolean;
186
- /**
187
- * Clear query cache
188
- */
189
- clearCache(): void;
190
- /**
191
- * Calculate cosine similarity between two vectors
192
- */
193
- private cosineSimilarity;
194
- }
195
- export {};
196
- //# sourceMappingURL=ReasoningBank.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReasoningBank.d.ts","sourceRoot":"","sources":["../../src/controllers/ReasoningBank.ts"],"names":[],"mappings":"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"}