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