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,120 +0,0 @@
1
- /**
2
- * SyncCoordinator - Orchestrate AgentDB Synchronization
3
- *
4
- * Coordinates bidirectional synchronization between local and remote AgentDB instances.
5
- * Handles change detection, conflict resolution, batching, and progress tracking.
6
- *
7
- * Features:
8
- * - Detect changes since last sync
9
- * - Bidirectional sync (push and pull)
10
- * - Conflict resolution strategies
11
- * - Batch operations for efficiency
12
- * - Progress tracking and reporting
13
- * - Comprehensive error handling
14
- * - Sync state persistence
15
- */
16
- import { QUICClient } from './QUICClient.js';
17
- import { QUICServer } from './QUICServer.js';
18
- type Database = any;
19
- export interface SyncCoordinatorConfig {
20
- db: Database;
21
- client?: QUICClient;
22
- server?: QUICServer;
23
- conflictStrategy?: 'local-wins' | 'remote-wins' | 'latest-wins' | 'merge';
24
- batchSize?: number;
25
- autoSync?: boolean;
26
- syncIntervalMs?: number;
27
- }
28
- export interface SyncState {
29
- lastSyncAt: number;
30
- lastEpisodeSync: number;
31
- lastSkillSync: number;
32
- lastEdgeSync: number;
33
- totalItemsSynced: number;
34
- totalBytesSynced: number;
35
- syncCount: number;
36
- lastError?: string;
37
- }
38
- export interface SyncProgress {
39
- phase: 'detecting' | 'pushing' | 'pulling' | 'resolving' | 'applying' | 'completed' | 'error';
40
- current: number;
41
- total: number;
42
- itemType?: string;
43
- message?: string;
44
- error?: string;
45
- }
46
- export interface SyncReport {
47
- success: boolean;
48
- startTime: number;
49
- endTime: number;
50
- durationMs: number;
51
- itemsPushed: number;
52
- itemsPulled: number;
53
- conflictsResolved: number;
54
- errors: string[];
55
- bytesTransferred: number;
56
- }
57
- export declare class SyncCoordinator {
58
- private db;
59
- private client?;
60
- private server?;
61
- private config;
62
- private syncState;
63
- private isSyncing;
64
- private autoSyncInterval;
65
- constructor(config: SyncCoordinatorConfig);
66
- /**
67
- * Perform bidirectional synchronization
68
- */
69
- sync(onProgress?: (progress: SyncProgress) => void): Promise<SyncReport>;
70
- /**
71
- * Detect changes since last sync
72
- */
73
- private detectChanges;
74
- /**
75
- * Push local changes to remote
76
- */
77
- private pushChanges;
78
- /**
79
- * Pull changes from remote
80
- */
81
- private pullChanges;
82
- /**
83
- * Resolve conflicts between local and remote data
84
- */
85
- private resolveConflicts;
86
- /**
87
- * Apply pulled changes to local database
88
- */
89
- private applyChanges;
90
- /**
91
- * Load sync state from database
92
- */
93
- private loadSyncState;
94
- /**
95
- * Save sync state to database
96
- */
97
- private saveSyncState;
98
- /**
99
- * Start automatic synchronization
100
- */
101
- private startAutoSync;
102
- /**
103
- * Stop automatic synchronization
104
- */
105
- stopAutoSync(): void;
106
- /**
107
- * Get sync state
108
- */
109
- getSyncState(): SyncState;
110
- /**
111
- * Get sync status
112
- */
113
- getStatus(): {
114
- isSyncing: boolean;
115
- autoSyncEnabled: boolean;
116
- state: SyncState;
117
- };
118
- }
119
- export {};
120
- //# sourceMappingURL=SyncCoordinator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncCoordinator.d.ts","sourceRoot":"","sources":["../../src/controllers/SyncCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,UAAU,EAA2B,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAC;AAG1D,KAAK,QAAQ,GAAG,GAAG,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,gBAAgB,CAAC,EAAE,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC9F,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAoE;IAClF,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,gBAAgB,CAA+B;gBAE3C,MAAM,EAAE,qBAAqB;IAoBzC;;OAEG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IA0G9E;;OAEG;YACW,aAAa;IAyB3B;;OAEG;YACW,WAAW;IAezB;;OAEG;YACW,WAAW;IAuGzB;;OAEG;YACW,gBAAgB;IA4B9B;;OAEG;YACW,YAAY;IA2E1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAiCrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAyCrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,YAAY,IAAI,IAAI;IAQpB;;OAEG;IACH,YAAY,IAAI,SAAS;IAIzB;;OAEG;IACH,SAAS,IAAI;QACX,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,OAAO,CAAC;QACzB,KAAK,EAAE,SAAS,CAAC;KAClB;CAOF"}
@@ -1,441 +0,0 @@
1
- /**
2
- * SyncCoordinator - Orchestrate AgentDB Synchronization
3
- *
4
- * Coordinates bidirectional synchronization between local and remote AgentDB instances.
5
- * Handles change detection, conflict resolution, batching, and progress tracking.
6
- *
7
- * Features:
8
- * - Detect changes since last sync
9
- * - Bidirectional sync (push and pull)
10
- * - Conflict resolution strategies
11
- * - Batch operations for efficiency
12
- * - Progress tracking and reporting
13
- * - Comprehensive error handling
14
- * - Sync state persistence
15
- */
16
- import chalk from 'chalk';
17
- export class SyncCoordinator {
18
- db;
19
- client;
20
- server;
21
- config;
22
- syncState;
23
- isSyncing = false;
24
- autoSyncInterval = null;
25
- constructor(config) {
26
- this.db = config.db;
27
- this.client = config.client;
28
- this.server = config.server;
29
- this.config = {
30
- conflictStrategy: config.conflictStrategy || 'latest-wins',
31
- batchSize: config.batchSize || 100,
32
- autoSync: config.autoSync || false,
33
- syncIntervalMs: config.syncIntervalMs || 60000, // 1 minute
34
- };
35
- // Load sync state
36
- this.syncState = this.loadSyncState();
37
- // Start auto-sync if enabled
38
- if (this.config.autoSync) {
39
- this.startAutoSync();
40
- }
41
- }
42
- /**
43
- * Perform bidirectional synchronization
44
- */
45
- async sync(onProgress) {
46
- if (this.isSyncing) {
47
- throw new Error('Sync already in progress');
48
- }
49
- if (!this.client) {
50
- throw new Error('QUICClient not configured');
51
- }
52
- this.isSyncing = true;
53
- const startTime = Date.now();
54
- const errors = [];
55
- let itemsPushed = 0;
56
- let itemsPulled = 0;
57
- let conflictsResolved = 0;
58
- let bytesTransferred = 0;
59
- try {
60
- console.log(chalk.blue('🔄 Starting synchronization...'));
61
- // Phase 1: Detect changes
62
- onProgress?.({ phase: 'detecting', current: 0, total: 100, message: 'Detecting changes...' });
63
- const changes = await this.detectChanges();
64
- console.log(chalk.gray(` Changes detected: ${changes.episodes.length + changes.skills.length + changes.edges.length} items`));
65
- // Phase 2: Push changes to remote
66
- if (changes.episodes.length > 0 || changes.skills.length > 0 || changes.edges.length > 0) {
67
- onProgress?.({ phase: 'pushing', current: 0, total: changes.episodes.length + changes.skills.length + changes.edges.length });
68
- const pushResult = await this.pushChanges(changes, onProgress);
69
- itemsPushed = pushResult.itemsPushed;
70
- bytesTransferred += pushResult.bytesTransferred;
71
- errors.push(...pushResult.errors);
72
- }
73
- // Phase 3: Pull changes from remote
74
- onProgress?.({ phase: 'pulling', current: 0, total: 100, message: 'Pulling remote changes...' });
75
- const pullResult = await this.pullChanges(onProgress);
76
- itemsPulled = pullResult.itemsPulled;
77
- bytesTransferred += pullResult.bytesTransferred;
78
- errors.push(...pullResult.errors);
79
- // Phase 4: Resolve conflicts
80
- if (pullResult.conflicts && pullResult.conflicts.length > 0) {
81
- onProgress?.({ phase: 'resolving', current: 0, total: pullResult.conflicts.length, message: 'Resolving conflicts...' });
82
- conflictsResolved = await this.resolveConflicts(pullResult.conflicts);
83
- }
84
- // Phase 5: Apply changes
85
- onProgress?.({ phase: 'applying', current: 0, total: itemsPulled, message: 'Applying changes...' });
86
- await this.applyChanges(pullResult.data);
87
- // Update sync state
88
- this.syncState.lastSyncAt = Date.now();
89
- this.syncState.totalItemsSynced += itemsPushed + itemsPulled;
90
- this.syncState.totalBytesSynced += bytesTransferred;
91
- this.syncState.syncCount++;
92
- this.syncState.lastError = errors.length > 0 ? errors[0] : undefined;
93
- this.saveSyncState();
94
- const endTime = Date.now();
95
- const durationMs = endTime - startTime;
96
- console.log(chalk.green('✓ Synchronization completed'));
97
- console.log(chalk.gray(` Items pushed: ${itemsPushed}`));
98
- console.log(chalk.gray(` Items pulled: ${itemsPulled}`));
99
- console.log(chalk.gray(` Conflicts resolved: ${conflictsResolved}`));
100
- console.log(chalk.gray(` Duration: ${durationMs}ms`));
101
- onProgress?.({ phase: 'completed', current: 100, total: 100, message: 'Sync completed' });
102
- return {
103
- success: errors.length === 0,
104
- startTime,
105
- endTime,
106
- durationMs,
107
- itemsPushed,
108
- itemsPulled,
109
- conflictsResolved,
110
- errors,
111
- bytesTransferred,
112
- };
113
- }
114
- catch (error) {
115
- const err = error;
116
- const endTime = Date.now();
117
- console.error(chalk.red('✗ Synchronization failed:'), err.message);
118
- errors.push(err.message);
119
- onProgress?.({ phase: 'error', current: 0, total: 0, error: err.message });
120
- return {
121
- success: false,
122
- startTime,
123
- endTime,
124
- durationMs: endTime - startTime,
125
- itemsPushed,
126
- itemsPulled,
127
- conflictsResolved,
128
- errors,
129
- bytesTransferred,
130
- };
131
- }
132
- finally {
133
- this.isSyncing = false;
134
- }
135
- }
136
- /**
137
- * Detect changes since last sync
138
- */
139
- async detectChanges() {
140
- const { lastEpisodeSync, lastSkillSync, lastEdgeSync } = this.syncState;
141
- // Detect new/modified episodes
142
- const episodes = this.db
143
- .prepare('SELECT * FROM episodes WHERE ts > ?')
144
- .all(lastEpisodeSync);
145
- // Detect new/modified skills
146
- const skills = this.db
147
- .prepare('SELECT * FROM skills WHERE ts > ?')
148
- .all(lastSkillSync);
149
- // Detect new/modified edges
150
- const edges = this.db
151
- .prepare('SELECT * FROM skill_edges WHERE ts > ?')
152
- .all(lastEdgeSync);
153
- return { episodes, skills, edges };
154
- }
155
- /**
156
- * Push local changes to remote
157
- */
158
- async pushChanges(changes, onProgress) {
159
- const errors = [];
160
- let itemsPushed = 0;
161
- let bytesTransferred = 0;
162
- // Note: Push functionality would require server API to accept writes
163
- // This is a placeholder for the push logic
164
- console.log(chalk.yellow('⚠️ Push to remote not yet implemented (read-only sync)'));
165
- return { itemsPushed, bytesTransferred, errors };
166
- }
167
- /**
168
- * Pull changes from remote
169
- */
170
- async pullChanges(onProgress) {
171
- if (!this.client) {
172
- throw new Error('QUICClient not configured');
173
- }
174
- const errors = [];
175
- let itemsPulled = 0;
176
- let bytesTransferred = 0;
177
- const allData = { episodes: [], skills: [], edges: [] };
178
- try {
179
- // Pull episodes
180
- const episodesResult = await this.client.sync({
181
- type: 'episodes',
182
- since: this.syncState.lastEpisodeSync,
183
- batchSize: this.config.batchSize,
184
- onProgress: (progress) => {
185
- onProgress?.({
186
- phase: 'pulling',
187
- current: progress.itemsSynced || 0,
188
- total: 100,
189
- itemType: 'episodes',
190
- });
191
- },
192
- });
193
- if (episodesResult.success && episodesResult.data) {
194
- allData.episodes = episodesResult.data;
195
- itemsPulled += episodesResult.itemsReceived;
196
- bytesTransferred += episodesResult.bytesTransferred;
197
- this.syncState.lastEpisodeSync = Date.now();
198
- }
199
- else {
200
- errors.push(episodesResult.error || 'Failed to sync episodes');
201
- }
202
- // Pull skills
203
- const skillsResult = await this.client.sync({
204
- type: 'skills',
205
- since: this.syncState.lastSkillSync,
206
- batchSize: this.config.batchSize,
207
- onProgress: (progress) => {
208
- onProgress?.({
209
- phase: 'pulling',
210
- current: progress.itemsSynced || 0,
211
- total: 100,
212
- itemType: 'skills',
213
- });
214
- },
215
- });
216
- if (skillsResult.success && skillsResult.data) {
217
- allData.skills = skillsResult.data;
218
- itemsPulled += skillsResult.itemsReceived;
219
- bytesTransferred += skillsResult.bytesTransferred;
220
- this.syncState.lastSkillSync = Date.now();
221
- }
222
- else {
223
- errors.push(skillsResult.error || 'Failed to sync skills');
224
- }
225
- // Pull edges
226
- const edgesResult = await this.client.sync({
227
- type: 'edges',
228
- since: this.syncState.lastEdgeSync,
229
- batchSize: this.config.batchSize,
230
- onProgress: (progress) => {
231
- onProgress?.({
232
- phase: 'pulling',
233
- current: progress.itemsSynced || 0,
234
- total: 100,
235
- itemType: 'edges',
236
- });
237
- },
238
- });
239
- if (edgesResult.success && edgesResult.data) {
240
- allData.edges = edgesResult.data;
241
- itemsPulled += edgesResult.itemsReceived;
242
- bytesTransferred += edgesResult.bytesTransferred;
243
- this.syncState.lastEdgeSync = Date.now();
244
- }
245
- else {
246
- errors.push(edgesResult.error || 'Failed to sync edges');
247
- }
248
- }
249
- catch (error) {
250
- const err = error;
251
- errors.push(err.message);
252
- }
253
- return {
254
- itemsPulled,
255
- bytesTransferred,
256
- data: allData,
257
- errors,
258
- };
259
- }
260
- /**
261
- * Resolve conflicts between local and remote data
262
- */
263
- async resolveConflicts(conflicts) {
264
- let resolved = 0;
265
- for (const conflict of conflicts) {
266
- switch (this.config.conflictStrategy) {
267
- case 'local-wins':
268
- // Keep local version
269
- break;
270
- case 'remote-wins':
271
- // Keep remote version
272
- resolved++;
273
- break;
274
- case 'latest-wins':
275
- // Keep version with latest timestamp
276
- if (conflict.remote.ts > conflict.local.ts) {
277
- resolved++;
278
- }
279
- break;
280
- case 'merge':
281
- // Attempt to merge (simplified)
282
- resolved++;
283
- break;
284
- }
285
- }
286
- return resolved;
287
- }
288
- /**
289
- * Apply pulled changes to local database
290
- */
291
- async applyChanges(data) {
292
- // Apply episodes
293
- if (data.episodes && data.episodes.length > 0) {
294
- const stmt = this.db.prepare(`
295
- INSERT OR REPLACE INTO episodes (
296
- id, ts, session_id, task, input, output, critique, reward, success,
297
- latency_ms, tokens_used, tags, metadata
298
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
299
- `);
300
- for (const episode of data.episodes) {
301
- stmt.run(episode.id, episode.ts, episode.sessionId, episode.task, episode.input, episode.output, episode.critique, episode.reward, episode.success ? 1 : 0, episode.latencyMs, episode.tokensUsed, JSON.stringify(episode.tags), JSON.stringify(episode.metadata));
302
- }
303
- }
304
- // Apply skills
305
- if (data.skills && data.skills.length > 0) {
306
- const stmt = this.db.prepare(`
307
- INSERT OR REPLACE INTO skills (
308
- id, ts, name, description, code, success_rate, usage_count,
309
- avg_reward, tags, metadata
310
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
311
- `);
312
- for (const skill of data.skills) {
313
- stmt.run(skill.id, skill.ts, skill.name, skill.description, skill.code, skill.successRate, skill.usageCount, skill.avgReward, JSON.stringify(skill.tags), JSON.stringify(skill.metadata));
314
- }
315
- }
316
- // Apply edges
317
- if (data.edges && data.edges.length > 0) {
318
- const stmt = this.db.prepare(`
319
- INSERT OR REPLACE INTO skill_edges (
320
- id, ts, from_skill_id, to_skill_id, weight, co_occurrences
321
- ) VALUES (?, ?, ?, ?, ?, ?)
322
- `);
323
- for (const edge of data.edges) {
324
- stmt.run(edge.id, edge.ts, edge.fromSkillId, edge.toSkillId, edge.weight, edge.coOccurrences);
325
- }
326
- }
327
- }
328
- /**
329
- * Load sync state from database
330
- */
331
- loadSyncState() {
332
- try {
333
- const row = this.db
334
- .prepare('SELECT * FROM sync_state WHERE id = 1')
335
- .get();
336
- if (row) {
337
- return {
338
- lastSyncAt: row.last_sync_at,
339
- lastEpisodeSync: row.last_episode_sync,
340
- lastSkillSync: row.last_skill_sync,
341
- lastEdgeSync: row.last_edge_sync,
342
- totalItemsSynced: row.total_items_synced,
343
- totalBytesSynced: row.total_bytes_synced,
344
- syncCount: row.sync_count,
345
- lastError: row.last_error,
346
- };
347
- }
348
- }
349
- catch (error) {
350
- // Table might not exist yet
351
- }
352
- return {
353
- lastSyncAt: 0,
354
- lastEpisodeSync: 0,
355
- lastSkillSync: 0,
356
- lastEdgeSync: 0,
357
- totalItemsSynced: 0,
358
- totalBytesSynced: 0,
359
- syncCount: 0,
360
- };
361
- }
362
- /**
363
- * Save sync state to database
364
- */
365
- saveSyncState() {
366
- try {
367
- // Create table if not exists
368
- this.db.exec(`
369
- CREATE TABLE IF NOT EXISTS sync_state (
370
- id INTEGER PRIMARY KEY,
371
- last_sync_at INTEGER,
372
- last_episode_sync INTEGER,
373
- last_skill_sync INTEGER,
374
- last_edge_sync INTEGER,
375
- total_items_synced INTEGER,
376
- total_bytes_synced INTEGER,
377
- sync_count INTEGER,
378
- last_error TEXT
379
- )
380
- `);
381
- // Upsert state
382
- this.db
383
- .prepare(`
384
- INSERT OR REPLACE INTO sync_state (
385
- id, last_sync_at, last_episode_sync, last_skill_sync, last_edge_sync,
386
- total_items_synced, total_bytes_synced, sync_count, last_error
387
- ) VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?)
388
- `)
389
- .run(this.syncState.lastSyncAt, this.syncState.lastEpisodeSync, this.syncState.lastSkillSync, this.syncState.lastEdgeSync, this.syncState.totalItemsSynced, this.syncState.totalBytesSynced, this.syncState.syncCount, this.syncState.lastError || null);
390
- }
391
- catch (error) {
392
- const err = error;
393
- console.error(chalk.red('✗ Failed to save sync state:'), err.message);
394
- }
395
- }
396
- /**
397
- * Start automatic synchronization
398
- */
399
- startAutoSync() {
400
- if (this.autoSyncInterval) {
401
- return;
402
- }
403
- console.log(chalk.blue(`🔄 Auto-sync enabled (interval: ${this.config.syncIntervalMs}ms)`));
404
- this.autoSyncInterval = setInterval(async () => {
405
- try {
406
- await this.sync();
407
- }
408
- catch (error) {
409
- const err = error;
410
- console.error(chalk.red('✗ Auto-sync failed:'), err.message);
411
- }
412
- }, this.config.syncIntervalMs);
413
- }
414
- /**
415
- * Stop automatic synchronization
416
- */
417
- stopAutoSync() {
418
- if (this.autoSyncInterval) {
419
- clearInterval(this.autoSyncInterval);
420
- this.autoSyncInterval = null;
421
- console.log(chalk.blue('🔄 Auto-sync disabled'));
422
- }
423
- }
424
- /**
425
- * Get sync state
426
- */
427
- getSyncState() {
428
- return { ...this.syncState };
429
- }
430
- /**
431
- * Get sync status
432
- */
433
- getStatus() {
434
- return {
435
- isSyncing: this.isSyncing,
436
- autoSyncEnabled: this.autoSyncInterval !== null,
437
- state: this.getSyncState(),
438
- };
439
- }
440
- }
441
- //# sourceMappingURL=SyncCoordinator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncCoordinator.js","sourceRoot":"","sources":["../../src/controllers/SyncCoordinator.ts"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- /**
2
- * WASMVectorSearch - High-Performance Vector Operations
3
- *
4
- * Accelerates vector similarity search using ReasoningBank WASM module.
5
- * Provides 10-50x speedup for cosine similarity calculations compared to pure JS.
6
- *
7
- * Features:
8
- * - WASM-accelerated similarity search
9
- * - Batch vector operations
10
- * - Approximate nearest neighbors for large datasets
11
- * - Graceful fallback to JavaScript
12
- * - SIMD optimizations when available
13
- */
14
- type Database = any;
15
- export interface VectorSearchConfig {
16
- enableWASM: boolean;
17
- enableSIMD: boolean;
18
- batchSize: number;
19
- indexThreshold: number;
20
- }
21
- export interface VectorSearchResult {
22
- id: number;
23
- distance: number;
24
- similarity: number;
25
- metadata?: any;
26
- }
27
- export interface VectorIndex {
28
- vectors: Float32Array[];
29
- ids: number[];
30
- metadata: any[];
31
- built: boolean;
32
- lastUpdate: number;
33
- }
34
- export declare class WASMVectorSearch {
35
- private db;
36
- private config;
37
- private wasmModule;
38
- private wasmAvailable;
39
- private simdAvailable;
40
- private vectorIndex;
41
- constructor(db: Database, config?: Partial<VectorSearchConfig>);
42
- /**
43
- * Initialize WASM module
44
- */
45
- private initializeWASM;
46
- /**
47
- * Detect SIMD support
48
- */
49
- private detectSIMD;
50
- /**
51
- * Calculate cosine similarity between two vectors (optimized)
52
- */
53
- cosineSimilarity(a: Float32Array, b: Float32Array): number;
54
- /**
55
- * Batch calculate similarities between query and multiple vectors
56
- */
57
- batchSimilarity(query: Float32Array, vectors: Float32Array[]): number[];
58
- /**
59
- * Find k-nearest neighbors using brute force search
60
- */
61
- findKNN(query: Float32Array, k: number, tableName?: string, options?: {
62
- threshold?: number;
63
- filters?: Record<string, any>;
64
- }): Promise<VectorSearchResult[]>;
65
- /**
66
- * Build approximate nearest neighbor index for large datasets
67
- */
68
- buildIndex(vectors: Float32Array[], ids: number[], metadata?: any[]): void;
69
- /**
70
- * Search using ANN index (if available)
71
- */
72
- searchIndex(query: Float32Array, k: number, threshold?: number): VectorSearchResult[];
73
- /**
74
- * Get vector search statistics
75
- */
76
- getStats(): {
77
- wasmAvailable: boolean;
78
- simdAvailable: boolean;
79
- indexBuilt: boolean;
80
- indexSize: number;
81
- lastIndexUpdate: number | null;
82
- };
83
- /**
84
- * Clear vector index
85
- */
86
- clearIndex(): void;
87
- }
88
- export {};
89
- //# sourceMappingURL=WASMVectorSearch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WASMVectorSearch.d.ts","sourceRoot":"","sources":["../../src/controllers/WASMVectorSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,KAAK,QAAQ,GAAG,GAAG,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,WAAW,CAA4B;gBAEnC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAc9D;;OAEG;YACW,cAAc;IA8B5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAsBlB;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,MAAM;IAgC1D;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE;IAiBvE;;OAEG;IACG,OAAO,CACX,KAAK,EAAE,YAAY,EACnB,CAAC,EAAE,MAAM,EACT,SAAS,GAAE,MAA6B,EACxC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,GACA,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsDhC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAmB1E;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,EAAE;IA0BrF;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC;IAUD;;OAEG;IACH,UAAU,IAAI,IAAI;CAInB"}