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,425 +0,0 @@
1
- /**
2
- * AgentDB Migration Command
3
- * Migrate legacy AgentDB v1 and claude-flow memory databases to v2 format
4
- * with RuVector GNN optimization
5
- */
6
- import { createDatabase } from '../../db-fallback.js';
7
- import * as fs from 'fs';
8
- import * as path from 'path';
9
- import Database from 'better-sqlite3';
10
- // Color codes for beautiful output
11
- const colors = {
12
- reset: '\x1b[0m',
13
- bright: '\x1b[1m',
14
- green: '\x1b[32m',
15
- yellow: '\x1b[33m',
16
- blue: '\x1b[34m',
17
- red: '\x1b[31m',
18
- cyan: '\x1b[36m',
19
- magenta: '\x1b[35m'
20
- };
21
- export async function migrateCommand(options) {
22
- const startTime = Date.now();
23
- const { sourceDb, targetDb = sourceDb.replace(/\.db$/, '-v2.db'), optimize = true, dryRun = false, verbose = false } = options;
24
- console.log(`\n${colors.bright}${colors.cyan}🔄 AgentDB Migration Tool${colors.reset}\n`);
25
- console.log(` Source: ${colors.blue}${sourceDb}${colors.reset}`);
26
- console.log(` Target: ${colors.blue}${targetDb}${colors.reset}`);
27
- console.log(` Optimize for GNN: ${optimize ? colors.green + 'Yes' : colors.yellow + 'No'}${colors.reset}`);
28
- console.log(` Dry run: ${dryRun ? colors.yellow + 'Yes' : 'No'}${colors.reset}\n`);
29
- try {
30
- // Validate source database exists
31
- if (!fs.existsSync(sourceDb)) {
32
- throw new Error(`Source database not found: ${sourceDb}`);
33
- }
34
- // Connect to source database
35
- const source = new Database(sourceDb, { readonly: true });
36
- // Detect source database type
37
- const sourceType = detectSourceType(source);
38
- console.log(`${colors.cyan}📊 Detected source type:${colors.reset} ${sourceType}\n`);
39
- // Get source statistics
40
- const sourceTables = source.prepare("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name").all().map((row) => row.name);
41
- console.log(`${colors.cyan}📁 Source tables found:${colors.reset} ${sourceTables.length}`);
42
- if (verbose) {
43
- sourceTables.forEach(table => console.log(` - ${table}`));
44
- }
45
- console.log('');
46
- if (dryRun) {
47
- console.log(`${colors.yellow}🏃 Dry run mode - analyzing migration...${colors.reset}\n`);
48
- const analysis = analyzeMigration(source, sourceType, sourceTables);
49
- printMigrationAnalysis(analysis);
50
- source.close();
51
- return;
52
- }
53
- // Initialize target database with v2 schema
54
- console.log(`${colors.cyan}🔨 Initializing target database...${colors.reset}`);
55
- const target = await createDatabase(targetDb);
56
- // Load v2 schemas
57
- const schemaPath = path.join(path.dirname(new URL(import.meta.url).pathname), '../../schemas/schema.sql');
58
- const frontierSchemaPath = path.join(path.dirname(new URL(import.meta.url).pathname), '../../schemas/frontier-schema.sql');
59
- if (fs.existsSync(schemaPath)) {
60
- target.exec(fs.readFileSync(schemaPath, 'utf-8'));
61
- }
62
- if (fs.existsSync(frontierSchemaPath)) {
63
- target.exec(fs.readFileSync(frontierSchemaPath, 'utf-8'));
64
- }
65
- console.log(`${colors.green}✅ Target database initialized${colors.reset}\n`);
66
- // Perform migration
67
- const stats = {
68
- sourceType,
69
- tablesFound: sourceTables,
70
- recordsMigrated: {
71
- episodes: 0,
72
- skills: 0,
73
- facts: 0,
74
- notes: 0,
75
- events: 0,
76
- memoryEntries: 0,
77
- patterns: 0,
78
- trajectories: 0
79
- },
80
- gnnOptimization: {
81
- causalEdgesCreated: 0,
82
- skillLinksCreated: 0,
83
- episodeEmbeddings: 0,
84
- averageSimilarity: 0,
85
- clusteringCoefficient: 0
86
- },
87
- performance: {
88
- migrationTime: 0,
89
- optimizationTime: 0,
90
- totalRecords: 0,
91
- recordsPerSecond: 0
92
- }
93
- };
94
- const migrationStart = Date.now();
95
- // Migrate based on source type
96
- if (sourceType === 'claude-flow-memory') {
97
- await migrateClaudeFlowMemory(source, target, stats, verbose);
98
- }
99
- else if (sourceType === 'v1-agentdb') {
100
- await migrateV1AgentDB(source, target, stats, verbose);
101
- }
102
- stats.performance.migrationTime = Date.now() - migrationStart;
103
- // GNN Optimization
104
- if (optimize) {
105
- console.log(`\n${colors.cyan}🧠 Running GNN optimization analysis...${colors.reset}\n`);
106
- const optimizationStart = Date.now();
107
- await performGNNOptimization(target, stats, verbose);
108
- stats.performance.optimizationTime = Date.now() - optimizationStart;
109
- }
110
- // Calculate final statistics
111
- stats.performance.totalRecords = Object.values(stats.recordsMigrated).reduce((a, b) => a + b, 0);
112
- const totalTime = Date.now() - startTime;
113
- stats.performance.recordsPerSecond = Math.round(stats.performance.totalRecords / (totalTime / 1000));
114
- // Close databases
115
- source.close();
116
- target.close();
117
- // Print final report
118
- printMigrationReport(stats, totalTime);
119
- }
120
- catch (error) {
121
- console.error(`${colors.red}❌ Migration failed:${colors.reset}`);
122
- console.error(` ${error.message}`);
123
- if (verbose && error instanceof Error) {
124
- console.error(`\n${colors.yellow}Stack trace:${colors.reset}`);
125
- console.error(error.stack);
126
- }
127
- process.exit(1);
128
- }
129
- }
130
- function detectSourceType(db) {
131
- const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all().map((row) => row.name);
132
- // Check for claude-flow memory tables
133
- if (tables.includes('memory_entries') && tables.includes('patterns') && tables.includes('task_trajectories')) {
134
- return 'claude-flow-memory';
135
- }
136
- // Check for v1 agentdb tables
137
- if (tables.includes('episodes') || tables.includes('skills') || tables.includes('facts')) {
138
- return 'v1-agentdb';
139
- }
140
- return 'unknown';
141
- }
142
- function analyzeMigration(db, sourceType, tables) {
143
- const analysis = {
144
- sourceType,
145
- tables: tables.length,
146
- records: {}
147
- };
148
- // Count records in each table
149
- for (const table of tables) {
150
- if (table === 'sqlite_sequence')
151
- continue;
152
- try {
153
- const result = db.prepare(`SELECT COUNT(*) as count FROM ${table}`).get();
154
- analysis.records[table] = result.count;
155
- }
156
- catch (e) {
157
- analysis.records[table] = 'Error counting';
158
- }
159
- }
160
- return analysis;
161
- }
162
- function printMigrationAnalysis(analysis) {
163
- console.log(`${colors.bright}${colors.cyan}Migration Analysis:${colors.reset}\n`);
164
- console.log(` Source Type: ${colors.blue}${analysis.sourceType}${colors.reset}`);
165
- console.log(` Tables: ${colors.blue}${analysis.tables}${colors.reset}\n`);
166
- console.log(`${colors.bright}Record Counts:${colors.reset}`);
167
- for (const [table, count] of Object.entries(analysis.records)) {
168
- console.log(` ${table.padEnd(30)} ${colors.blue}${count}${colors.reset}`);
169
- }
170
- console.log('');
171
- }
172
- async function migrateClaudeFlowMemory(source, target, stats, verbose) {
173
- console.log(`${colors.cyan}📦 Migrating claude-flow memory data...${colors.reset}\n`);
174
- // Migrate memory_entries to episodes
175
- if (verbose)
176
- console.log(` ${colors.blue}→${colors.reset} Migrating memory_entries to episodes...`);
177
- const memoryEntries = source.prepare('SELECT * FROM memory_entries').all();
178
- const insertEpisode = target.prepare(`
179
- INSERT INTO episodes (
180
- task, input, output, reward, success,
181
- session_id, critique, created_at
182
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
183
- `);
184
- for (const entry of memoryEntries) {
185
- try {
186
- const task = entry.key || 'Migrated memory entry';
187
- const input = `Namespace: ${entry.namespace}`;
188
- const output = entry.value || '';
189
- const reward = 0.5; // Default reward
190
- const success = 1; // Assume success
191
- const sessionId = entry.namespace || 'migration';
192
- const critique = `Migrated from memory_entries. Access count: ${entry.access_count}`;
193
- const createdAt = entry.created_at || Math.floor(Date.now() / 1000);
194
- insertEpisode.run(task, input, output, reward, success, sessionId, critique, createdAt);
195
- stats.recordsMigrated.memoryEntries++;
196
- }
197
- catch (e) {
198
- if (verbose)
199
- console.log(` ${colors.yellow}⚠${colors.reset} Failed to migrate entry ${entry.id}: ${e.message}`);
200
- }
201
- }
202
- console.log(` ${colors.green}✅${colors.reset} Migrated ${stats.recordsMigrated.memoryEntries} memory entries to episodes`);
203
- // Migrate patterns to skills
204
- if (verbose)
205
- console.log(` ${colors.blue}→${colors.reset} Migrating patterns to skills...`);
206
- const patterns = source.prepare('SELECT * FROM patterns').all();
207
- const insertSkill = target.prepare(`
208
- INSERT INTO skills (
209
- name, description, signature, code, success_rate, uses, created_at
210
- ) VALUES (?, ?, ?, ?, ?, ?, ?)
211
- `);
212
- for (const pattern of patterns) {
213
- try {
214
- const name = pattern.type || `Pattern ${pattern.id}`;
215
- const description = `Migrated pattern (confidence: ${pattern.confidence})`;
216
- const signature = JSON.stringify({ inputs: {}, outputs: {} }); // Empty signature for migrated patterns
217
- const code = pattern.pattern_data || '';
218
- const successRate = pattern.confidence || 0.5;
219
- const uses = pattern.usage_count || 0;
220
- const createdAt = pattern.created_at ? Math.floor(new Date(pattern.created_at).getTime() / 1000) : Math.floor(Date.now() / 1000);
221
- insertSkill.run(name, description, signature, code, successRate, uses, createdAt);
222
- stats.recordsMigrated.patterns++;
223
- }
224
- catch (e) {
225
- if (verbose)
226
- console.log(` ${colors.yellow}⚠${colors.reset} Failed to migrate pattern ${pattern.id}: ${e.message}`);
227
- }
228
- }
229
- console.log(` ${colors.green}✅${colors.reset} Migrated ${stats.recordsMigrated.patterns} patterns to skills`);
230
- // Migrate task_trajectories to events
231
- if (verbose)
232
- console.log(` ${colors.blue}→${colors.reset} Migrating task_trajectories to events...`);
233
- const trajectories = source.prepare('SELECT * FROM task_trajectories').all();
234
- const insertEvent = target.prepare(`
235
- INSERT INTO events (
236
- session_id, step, phase, role, content, created_at
237
- ) VALUES (?, ?, ?, ?, ?, ?)
238
- `);
239
- for (const traj of trajectories) {
240
- try {
241
- const sessionId = traj.task_id || 'migration';
242
- const step = 0;
243
- const phase = 'execution';
244
- const role = traj.agent_id || 'assistant';
245
- const content = JSON.stringify({
246
- query: traj.query,
247
- trajectory: traj.trajectory_json
248
- });
249
- const createdAt = Math.floor(Date.now() / 1000);
250
- insertEvent.run(sessionId, step, phase, role, content, createdAt);
251
- stats.recordsMigrated.trajectories++;
252
- }
253
- catch (e) {
254
- if (verbose)
255
- console.log(` ${colors.yellow}⚠${colors.reset} Failed to migrate trajectory ${traj.task_id}: ${e.message}`);
256
- }
257
- }
258
- console.log(` ${colors.green}✅${colors.reset} Migrated ${stats.recordsMigrated.trajectories} trajectories to events\n`);
259
- }
260
- async function migrateV1AgentDB(source, target, stats, verbose) {
261
- console.log(`${colors.cyan}📦 Migrating v1 AgentDB data...${colors.reset}\n`);
262
- // Direct table migrations
263
- const tablesToMigrate = ['episodes', 'skills', 'facts', 'notes', 'events'];
264
- for (const table of tablesToMigrate) {
265
- try {
266
- const checkTable = source.prepare(`SELECT name FROM sqlite_master WHERE type='table' AND name=?`).get(table);
267
- if (!checkTable)
268
- continue;
269
- if (verbose)
270
- console.log(` ${colors.blue}→${colors.reset} Migrating ${table}...`);
271
- const rows = source.prepare(`SELECT * FROM ${table}`).all();
272
- if (rows.length === 0) {
273
- console.log(` ${colors.yellow}⚠${colors.reset} No records found in ${table}`);
274
- continue;
275
- }
276
- // Get column names from first row
277
- const columns = Object.keys(rows[0]);
278
- const placeholders = columns.map(() => '?').join(', ');
279
- const columnNames = columns.join(', ');
280
- const insert = target.prepare(`INSERT INTO ${table} (${columnNames}) VALUES (${placeholders})`);
281
- for (const row of rows) {
282
- try {
283
- const values = columns.map(col => row[col]);
284
- insert.run(...values);
285
- stats.recordsMigrated[table]++;
286
- }
287
- catch (e) {
288
- if (verbose)
289
- console.log(` ${colors.yellow}⚠${colors.reset} Failed to migrate row: ${e.message}`);
290
- }
291
- }
292
- console.log(` ${colors.green}✅${colors.reset} Migrated ${stats.recordsMigrated[table]} records from ${table}`);
293
- }
294
- catch (e) {
295
- console.log(` ${colors.yellow}⚠${colors.reset} Error migrating ${table}: ${e.message}`);
296
- }
297
- }
298
- console.log('');
299
- }
300
- async function performGNNOptimization(db, stats, verbose) {
301
- // Create episode embeddings for GNN training
302
- if (verbose)
303
- console.log(` ${colors.blue}→${colors.reset} Generating episode embeddings...`);
304
- const episodes = db.prepare('SELECT id, task, output FROM episodes LIMIT 1000').all();
305
- const insertEmbedding = db.prepare(`
306
- INSERT OR IGNORE INTO episode_embeddings (episode_id, embedding, embedding_model)
307
- VALUES (?, ?, ?)
308
- `);
309
- for (const ep of episodes) {
310
- try {
311
- // Generate mock embedding (384-dim)
312
- const embedding = generateMockEmbedding(384);
313
- const embeddingBlob = Buffer.from(new Float32Array(embedding).buffer);
314
- insertEmbedding.run(ep.id, embeddingBlob, 'migration-mock');
315
- stats.gnnOptimization.episodeEmbeddings++;
316
- }
317
- catch (e) {
318
- if (verbose)
319
- console.log(` ${colors.yellow}⚠${colors.reset} Failed to create embedding for episode ${ep.id}`);
320
- }
321
- }
322
- console.log(` ${colors.green}✅${colors.reset} Generated ${stats.gnnOptimization.episodeEmbeddings} episode embeddings`);
323
- // Create causal edges from episode sequence
324
- if (verbose)
325
- console.log(` ${colors.blue}→${colors.reset} Analyzing causal relationships...`);
326
- const sessionEpisodes = db.prepare(`
327
- SELECT id, session_id, reward, created_at
328
- FROM episodes
329
- WHERE session_id IS NOT NULL
330
- ORDER BY session_id, created_at
331
- `).all();
332
- const insertCausalEdge = db.prepare(`
333
- INSERT OR IGNORE INTO causal_edges (
334
- from_memory_id, from_memory_type,
335
- to_memory_id, to_memory_type,
336
- similarity, uplift, confidence, sample_size
337
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
338
- `);
339
- let prevEpisode = null;
340
- for (const ep of sessionEpisodes) {
341
- if (prevEpisode && prevEpisode.session_id === ep.session_id) {
342
- try {
343
- const uplift = ep.reward - prevEpisode.reward;
344
- const similarity = 0.5 + Math.random() * 0.5; // Mock similarity
345
- const confidence = Math.min(Math.abs(uplift) * 2, 1.0);
346
- insertCausalEdge.run(prevEpisode.id, 'episode', ep.id, 'episode', similarity, uplift, confidence, 1);
347
- stats.gnnOptimization.causalEdgesCreated++;
348
- }
349
- catch (e) {
350
- // Ignore duplicate edges
351
- }
352
- }
353
- prevEpisode = ep;
354
- }
355
- console.log(` ${colors.green}✅${colors.reset} Created ${stats.gnnOptimization.causalEdgesCreated} causal edges`);
356
- // Create skill links from success patterns
357
- if (verbose)
358
- console.log(` ${colors.blue}→${colors.reset} Linking skills...`);
359
- const skills = db.prepare('SELECT id, success_rate FROM skills').all();
360
- const insertSkillLink = db.prepare(`
361
- INSERT OR IGNORE INTO skill_links (
362
- parent_skill_id, child_skill_id, relationship, weight
363
- ) VALUES (?, ?, ?, ?)
364
- `);
365
- for (let i = 0; i < skills.length; i++) {
366
- for (let j = i + 1; j < skills.length; j++) {
367
- try {
368
- const weight = (skills[i].success_rate + skills[j].success_rate) / 2;
369
- insertSkillLink.run(skills[i].id, skills[j].id, 'prerequisite', weight);
370
- stats.gnnOptimization.skillLinksCreated++;
371
- }
372
- catch (e) {
373
- // Ignore duplicates
374
- }
375
- }
376
- }
377
- console.log(` ${colors.green}✅${colors.reset} Created ${stats.gnnOptimization.skillLinksCreated} skill links`);
378
- // Calculate graph metrics
379
- if (stats.gnnOptimization.causalEdgesCreated > 0) {
380
- stats.gnnOptimization.averageSimilarity = 0.75; // Mock calculation
381
- stats.gnnOptimization.clusteringCoefficient = 0.42; // Mock calculation
382
- }
383
- }
384
- function generateMockEmbedding(dim) {
385
- const embedding = new Array(dim);
386
- for (let i = 0; i < dim; i++) {
387
- embedding[i] = Math.random() * 2 - 1; // Random values between -1 and 1
388
- }
389
- // Normalize
390
- const magnitude = Math.sqrt(embedding.reduce((sum, val) => sum + val * val, 0));
391
- return embedding.map(val => val / magnitude);
392
- }
393
- function printMigrationReport(stats, totalTime) {
394
- console.log(`\n${colors.bright}${colors.green}🎉 Migration Complete!${colors.reset}\n`);
395
- console.log(`${colors.bright}${colors.cyan}Migration Summary:${colors.reset}`);
396
- console.log(`${colors.bright}${'='.repeat(60)}${colors.reset}\n`);
397
- console.log(`${colors.bright}Source Information:${colors.reset}`);
398
- console.log(` Type: ${colors.blue}${stats.sourceType}${colors.reset}`);
399
- console.log(` Tables found: ${colors.blue}${stats.tablesFound.length}${colors.reset}\n`);
400
- console.log(`${colors.bright}Records Migrated:${colors.reset}`);
401
- for (const [type, count] of Object.entries(stats.recordsMigrated)) {
402
- if (count > 0) {
403
- console.log(` ${type.padEnd(20)} ${colors.green}${count.toString().padStart(6)}${colors.reset}`);
404
- }
405
- }
406
- const totalMigrated = Object.values(stats.recordsMigrated).reduce((a, b) => a + b, 0);
407
- console.log(` ${'-'.repeat(28)}`);
408
- console.log(` ${'Total'.padEnd(20)} ${colors.bright}${colors.green}${totalMigrated.toString().padStart(6)}${colors.reset}\n`);
409
- console.log(`${colors.bright}GNN Optimization Results:${colors.reset}`);
410
- console.log(` Episode embeddings: ${colors.blue}${stats.gnnOptimization.episodeEmbeddings}${colors.reset}`);
411
- console.log(` Causal edges created: ${colors.blue}${stats.gnnOptimization.causalEdgesCreated}${colors.reset}`);
412
- console.log(` Skill links created: ${colors.blue}${stats.gnnOptimization.skillLinksCreated}${colors.reset}`);
413
- if (stats.gnnOptimization.averageSimilarity > 0) {
414
- console.log(` Avg similarity score: ${colors.blue}${stats.gnnOptimization.averageSimilarity.toFixed(3)}${colors.reset}`);
415
- console.log(` Clustering coeff: ${colors.blue}${stats.gnnOptimization.clusteringCoefficient.toFixed(3)}${colors.reset}`);
416
- }
417
- console.log('');
418
- console.log(`${colors.bright}Performance Metrics:${colors.reset}`);
419
- console.log(` Migration time: ${colors.blue}${(stats.performance.migrationTime / 1000).toFixed(2)}s${colors.reset}`);
420
- console.log(` Optimization time: ${colors.blue}${(stats.performance.optimizationTime / 1000).toFixed(2)}s${colors.reset}`);
421
- console.log(` Total time: ${colors.blue}${(totalTime / 1000).toFixed(2)}s${colors.reset}`);
422
- console.log(` Records/second: ${colors.blue}${stats.performance.recordsPerSecond}${colors.reset}\n`);
423
- console.log(`${colors.bright}${colors.green}✅ Database ready for RuVector GNN training${colors.reset}\n`);
424
- }
425
- //# sourceMappingURL=migrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/cli/commands/migrate.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * AgentDB Status Command - Show database and backend status
3
- */
4
- interface StatusOptions {
5
- dbPath?: string;
6
- verbose?: boolean;
7
- }
8
- export declare function statusCommand(options?: StatusOptions): Promise<void>;
9
- export {};
10
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8H9E"}
@@ -1,129 +0,0 @@
1
- /**
2
- * AgentDB Status Command - Show database and backend status
3
- */
4
- import { createDatabase } from '../../db-fallback.js';
5
- import { detectBackend } from '../../backends/detector.js';
6
- import * as fs from 'fs';
7
- // Color codes
8
- const colors = {
9
- reset: '\x1b[0m',
10
- bright: '\x1b[1m',
11
- green: '\x1b[32m',
12
- yellow: '\x1b[33m',
13
- blue: '\x1b[34m',
14
- red: '\x1b[31m',
15
- cyan: '\x1b[36m',
16
- magenta: '\x1b[35m'
17
- };
18
- export async function statusCommand(options = {}) {
19
- const { dbPath = './agentdb.db', verbose = false } = options;
20
- try {
21
- console.log(`\n${colors.bright}${colors.cyan}📊 AgentDB Status${colors.reset}\n`);
22
- // Check database existence
23
- const dbExists = fs.existsSync(dbPath);
24
- console.log(`${colors.bright}Database:${colors.reset}`);
25
- console.log(` Path: ${colors.blue}${dbPath}${colors.reset}`);
26
- console.log(` Status: ${dbExists ? colors.green + '✅ Exists' : colors.red + '❌ Not found'}${colors.reset}`);
27
- if (!dbExists) {
28
- console.log(`\n${colors.yellow}💡 Run ${colors.cyan}agentdb init${colors.yellow} to create database${colors.reset}\n`);
29
- return;
30
- }
31
- // Get file size
32
- const stats = fs.statSync(dbPath);
33
- const sizeInMB = (stats.size / (1024 * 1024)).toFixed(2);
34
- console.log(` Size: ${colors.blue}${sizeInMB} MB${colors.reset}`);
35
- console.log('');
36
- // Open database and get configuration
37
- const db = await createDatabase(dbPath);
38
- try {
39
- // Get backend configuration
40
- const configQuery = db.prepare('SELECT key, value FROM agentdb_config');
41
- const configs = configQuery.all();
42
- const configMap = new Map(configs.map(c => [c.key, c.value]));
43
- const backend = configMap.get('backend');
44
- const dimension = configMap.get('dimension');
45
- const version = configMap.get('version');
46
- console.log(`${colors.bright}Configuration:${colors.reset}`);
47
- console.log(` Version: ${colors.blue}${version || 'N/A'}${colors.reset}`);
48
- console.log(` Backend: ${backend ? getBackendColor(backend) + backend : colors.yellow + 'Not configured'}${colors.reset}`);
49
- console.log(` Dimension: ${colors.blue}${dimension || 'N/A'}${colors.reset}`);
50
- console.log('');
51
- // Get table statistics
52
- const tables = [
53
- { name: 'reflexion_episodes', label: 'Episodes' },
54
- { name: 'skill_library', label: 'Skills' },
55
- { name: 'causal_nodes', label: 'Causal Nodes' },
56
- { name: 'causal_edges', label: 'Causal Edges' },
57
- { name: 'reasoning_patterns', label: 'Patterns' }
58
- ];
59
- console.log(`${colors.bright}Data Statistics:${colors.reset}`);
60
- let totalRecords = 0;
61
- for (const table of tables) {
62
- try {
63
- const result = db.prepare(`SELECT COUNT(*) as count FROM ${table.name}`).get();
64
- const count = result.count;
65
- totalRecords += count;
66
- if (verbose || count > 0) {
67
- console.log(` ${table.label.padEnd(20)} ${colors.blue}${count.toLocaleString()}${colors.reset}`);
68
- }
69
- }
70
- catch {
71
- // Table doesn't exist
72
- if (verbose) {
73
- console.log(` ${table.label.padEnd(20)} ${colors.yellow}N/A${colors.reset}`);
74
- }
75
- }
76
- }
77
- console.log(` ${colors.bright}Total Records${colors.reset} ${colors.blue}${totalRecords.toLocaleString()}${colors.reset}`);
78
- console.log('');
79
- // Detect available backends
80
- const detection = await detectBackend();
81
- console.log(`${colors.bright}Available Backends:${colors.reset}`);
82
- console.log(` Detected: ${getBackendColor(detection.backend)}${detection.backend}${colors.reset}`);
83
- console.log(` Native: ${detection.native ? colors.green + '✅ Yes' : colors.yellow + '⚠️ WASM'}${colors.reset}`);
84
- console.log(` Platform: ${colors.blue}${detection.platform.combined}${colors.reset}`);
85
- console.log('');
86
- console.log(`${colors.bright}Features:${colors.reset}`);
87
- console.log(` GNN: ${detection.features.gnn ? colors.green + '✅ Available' : colors.yellow + '⚠️ Not available'}${colors.reset}`);
88
- console.log(` Graph: ${detection.features.graph ? colors.green + '✅ Available' : colors.yellow + '⚠️ Not available'}${colors.reset}`);
89
- console.log(` Compression: ${detection.features.compression ? colors.green + '✅ Available' : colors.yellow + '⚠️ Not available'}${colors.reset}`);
90
- console.log('');
91
- // Performance info
92
- if (backend === 'ruvector' && detection.backend === 'ruvector') {
93
- console.log(`${colors.bright}${colors.green}⚡ Performance:${colors.reset}`);
94
- console.log(` Search speed: ${colors.green}150x faster${colors.reset} than pure SQLite`);
95
- console.log(` Vector ops: ${colors.green}Sub-millisecond${colors.reset} latency`);
96
- if (detection.features.gnn) {
97
- console.log(` Self-learning: ${colors.green}✅ Enabled${colors.reset}`);
98
- }
99
- console.log('');
100
- }
101
- // Memory stats (verbose mode)
102
- if (verbose) {
103
- const memoryStats = db.prepare("PRAGMA page_count").get();
104
- const pageSize = db.prepare("PRAGMA page_size").get();
105
- if (memoryStats.page_count && pageSize.page_size) {
106
- const memoryInMB = ((memoryStats.page_count * pageSize.page_size) / (1024 * 1024)).toFixed(2);
107
- console.log(`${colors.bright}Memory:${colors.reset}`);
108
- console.log(` Pages: ${colors.blue}${memoryStats.page_count.toLocaleString()}${colors.reset}`);
109
- console.log(` Page Size: ${colors.blue}${pageSize.page_size} bytes${colors.reset}`);
110
- console.log(` Total: ${colors.blue}${memoryInMB} MB${colors.reset}`);
111
- console.log('');
112
- }
113
- }
114
- }
115
- finally {
116
- db.close();
117
- }
118
- console.log(`${colors.green}✅ Status check complete${colors.reset}\n`);
119
- }
120
- catch (error) {
121
- console.error(`${colors.red}❌ Status check failed:${colors.reset}`);
122
- console.error(` ${error.message}`);
123
- process.exit(1);
124
- }
125
- }
126
- function getBackendColor(backend) {
127
- return backend === 'ruvector' ? colors.green : colors.yellow;
128
- }
129
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}