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