kynjal-cli 4.0.0 → 4.0.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.
- package/dist/src/appliance/gguf-engine.d.ts +91 -0
- package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
- package/dist/src/appliance/gguf-engine.js +286 -525
- package/dist/src/appliance/gguf-engine.js.map +1 -1
- package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
- package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
- package/dist/src/appliance/ruvllm-bridge.js +203 -403
- package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
- package/dist/src/appliance/rvfa-builder.d.ts +44 -0
- package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-builder.js +154 -208
- package/dist/src/appliance/rvfa-builder.js.map +1 -1
- package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
- package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-distribution.js +260 -423
- package/dist/src/appliance/rvfa-distribution.js.map +1 -1
- package/dist/src/appliance/rvfa-format.d.ts +111 -0
- package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-format.js +128 -200
- package/dist/src/appliance/rvfa-format.js.map +1 -1
- package/dist/src/appliance/rvfa-runner.d.ts +69 -0
- package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-runner.js +168 -304
- package/dist/src/appliance/rvfa-runner.js.map +1 -1
- package/dist/src/appliance/rvfa-signing.d.ts +123 -0
- package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-signing.js +173 -295
- package/dist/src/appliance/rvfa-signing.js.map +1 -1
- package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
- package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
- package/dist/src/benchmarks/pretrain/index.js +331 -542
- package/dist/src/benchmarks/pretrain/index.js.map +1 -1
- package/dist/src/commands/agent.js +574 -697
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/analyze.js +1218 -1548
- package/dist/src/commands/analyze.js.map +1 -1
- package/dist/src/commands/appliance-advanced.js +158 -267
- package/dist/src/commands/appliance-advanced.js.map +1 -1
- package/dist/src/commands/appliance.js +318 -493
- package/dist/src/commands/appliance.js.map +1 -1
- package/dist/src/commands/benchmark.js +372 -523
- package/dist/src/commands/benchmark.js.map +1 -1
- package/dist/src/commands/claims.js +274 -364
- package/dist/src/commands/claims.js.map +1 -1
- package/dist/src/commands/cleanup.js +113 -157
- package/dist/src/commands/cleanup.js.map +1 -1
- package/dist/src/commands/completions.js +477 -118
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.js +237 -303
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/daemon.js +487 -596
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/commands/deployment.js +194 -275
- package/dist/src/commands/deployment.js.map +1 -1
- package/dist/src/commands/doctor.js +504 -686
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.js +1293 -1543
- package/dist/src/commands/embeddings.js.map +1 -1
- package/dist/src/commands/guidance.js +449 -596
- package/dist/src/commands/guidance.js.map +1 -1
- package/dist/src/commands/hive-mind.js +854 -938
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.js +3112 -3519
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +115 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +126 -308
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.js +788 -940
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/issues.js +383 -558
- package/dist/src/commands/issues.js.map +1 -1
- package/dist/src/commands/mcp.js +493 -605
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.js +833 -1026
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/migrate.js +282 -347
- package/dist/src/commands/migrate.js.map +1 -1
- package/dist/src/commands/neural.js +1289 -1563
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/commands/performance.js +497 -643
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/plugins.js +668 -841
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/process.js +392 -447
- package/dist/src/commands/process.js.map +1 -1
- package/dist/src/commands/progress.js +162 -256
- package/dist/src/commands/progress.js.map +1 -1
- package/dist/src/commands/providers.js +150 -220
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/route.js +520 -665
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/ruvector/backup.js +505 -651
- package/dist/src/commands/ruvector/backup.js.map +1 -1
- package/dist/src/commands/ruvector/benchmark.js +349 -401
- package/dist/src/commands/ruvector/benchmark.js.map +1 -1
- package/dist/src/commands/ruvector/import.js +224 -266
- package/dist/src/commands/ruvector/import.js.map +1 -1
- package/dist/src/commands/ruvector/index.js +37 -75
- package/dist/src/commands/ruvector/index.js.map +1 -1
- package/dist/src/commands/ruvector/init.js +336 -359
- package/dist/src/commands/ruvector/init.js.map +1 -1
- package/dist/src/commands/ruvector/migrate.js +335 -322
- package/dist/src/commands/ruvector/migrate.js.map +1 -1
- package/dist/src/commands/ruvector/optimize.js +375 -431
- package/dist/src/commands/ruvector/optimize.js.map +1 -1
- package/dist/src/commands/ruvector/setup.js +703 -117
- package/dist/src/commands/ruvector/setup.js.map +1 -1
- package/dist/src/commands/ruvector/status.js +364 -419
- package/dist/src/commands/ruvector/status.js.map +1 -1
- package/dist/src/commands/security.js +485 -608
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.js +504 -626
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/commands/start.js +267 -364
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.js +380 -486
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/swarm.js +408 -488
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/task.js +423 -538
- package/dist/src/commands/task.js.map +1 -1
- package/dist/src/commands/transfer-store.js +322 -412
- package/dist/src/commands/transfer-store.js.map +1 -1
- package/dist/src/commands/update.js +196 -291
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/workflow.js +386 -486
- package/dist/src/commands/workflow.js.map +1 -1
- package/dist/src/config-adapter.d.ts +15 -0
- package/dist/src/config-adapter.d.ts.map +1 -0
- package/dist/src/config-adapter.js +38 -39
- package/dist/src/config-adapter.js.map +1 -1
- package/dist/src/index.d.ts +77 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +309 -411
- package/dist/src/index.js.map +1 -1
- package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
- package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
- package/dist/src/infrastructure/in-memory-repositories.js +246 -507
- package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts +25 -0
- package/dist/src/init/claudemd-generator.d.ts.map +1 -0
- package/dist/src/init/claudemd-generator.js +368 -78
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts +41 -0
- package/dist/src/init/executor.d.ts.map +1 -0
- package/dist/src/init/executor.js +1307 -996
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts +60 -0
- package/dist/src/init/helpers-generator.d.ts.map +1 -0
- package/dist/src/init/helpers-generator.js +657 -12
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/index.d.ts +1 -1
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +1 -1
- package/dist/src/init/index.js.map +1 -1
- package/dist/src/init/mcp-generator.js +33 -37
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.js +76 -77
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.js +801 -3
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +1 -1
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +76 -59
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/mcp-client.d.ts +92 -0
- package/dist/src/mcp-client.d.ts.map +1 -0
- package/dist/src/mcp-client.js +81 -125
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts +161 -0
- package/dist/src/mcp-server.d.ts.map +1 -0
- package/dist/src/mcp-server.js +470 -757
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +391 -492
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.js +332 -533
- package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +172 -236
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts +83 -0
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
- package/dist/src/mcp-tools/auto-install.js +80 -142
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +252 -375
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +473 -565
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +197 -272
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.js +500 -572
- package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
- package/dist/src/mcp-tools/daa-tools.js +286 -364
- package/dist/src/mcp-tools/daa-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +582 -693
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +260 -311
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +350 -505
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +315 -412
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +420 -480
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/progress-tools.js +204 -278
- package/dist/src/mcp-tools/progress-tools.js.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
- package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
- package/dist/src/mcp-tools/security-tools.js +297 -429
- package/dist/src/mcp-tools/security-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +185 -234
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +207 -260
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +276 -325
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +270 -336
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +148 -196
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +186 -333
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/types.d.ts +31 -0
- package/dist/src/mcp-tools/types.d.ts.map +1 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
- package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +405 -450
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.d.ts +295 -0
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
- package/dist/src/memory/ewc-consolidation.js +190 -303
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +338 -0
- package/dist/src/memory/intelligence.d.ts.map +1 -0
- package/dist/src/memory/intelligence.js +569 -794
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +407 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge.js +1170 -1640
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +412 -0
- package/dist/src/memory/memory-initializer.d.ts.map +1 -0
- package/dist/src/memory/memory-initializer.js +1836 -1851
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +227 -0
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
- package/dist/src/memory/sona-optimizer.js +199 -329
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/output.d.ts +2 -2
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +242 -272
- package/dist/src/output.js.map +1 -1
- package/dist/src/parser.d.ts +51 -0
- package/dist/src/parser.d.ts.map +1 -0
- package/dist/src/parser.js +140 -187
- package/dist/src/parser.js.map +1 -1
- package/dist/src/plugins/manager.d.ts +133 -0
- package/dist/src/plugins/manager.d.ts.map +1 -0
- package/dist/src/plugins/manager.js +285 -521
- package/dist/src/plugins/manager.js.map +1 -1
- package/dist/src/plugins/store/discovery.d.ts +88 -0
- package/dist/src/plugins/store/discovery.d.ts.map +1 -0
- package/dist/src/plugins/store/discovery.js +271 -358
- package/dist/src/plugins/store/discovery.js.map +1 -1
- package/dist/src/plugins/store/index.d.ts +76 -0
- package/dist/src/plugins/store/index.d.ts.map +1 -0
- package/dist/src/plugins/store/index.js +48 -105
- package/dist/src/plugins/store/index.js.map +1 -1
- package/dist/src/plugins/store/search.d.ts +46 -0
- package/dist/src/plugins/store/search.d.ts.map +1 -0
- package/dist/src/plugins/store/search.js +69 -107
- package/dist/src/plugins/store/search.js.map +1 -1
- package/dist/src/plugins/store/types.d.ts +274 -0
- package/dist/src/plugins/store/types.d.ts.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
- package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
- package/dist/src/plugins/tests/standalone-test.js +172 -223
- package/dist/src/plugins/tests/standalone-test.js.map +1 -1
- package/dist/src/plugins/tests/test-plugin-store.js +190 -228
- package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
- package/dist/src/production/circuit-breaker.d.ts +101 -0
- package/dist/src/production/circuit-breaker.d.ts.map +1 -0
- package/dist/src/production/circuit-breaker.js +62 -126
- package/dist/src/production/circuit-breaker.js.map +1 -1
- package/dist/src/production/error-handler.d.ts +92 -0
- package/dist/src/production/error-handler.d.ts.map +1 -0
- package/dist/src/production/error-handler.js +86 -156
- package/dist/src/production/error-handler.js.map +1 -1
- package/dist/src/production/monitoring.d.ts +161 -0
- package/dist/src/production/monitoring.d.ts.map +1 -0
- package/dist/src/production/monitoring.js +139 -220
- package/dist/src/production/monitoring.js.map +1 -1
- package/dist/src/production/rate-limiter.d.ts +80 -0
- package/dist/src/production/rate-limiter.d.ts.map +1 -0
- package/dist/src/production/rate-limiter.js +74 -93
- package/dist/src/production/rate-limiter.js.map +1 -1
- package/dist/src/production/retry.d.ts +48 -0
- package/dist/src/production/retry.d.ts.map +1 -0
- package/dist/src/production/retry.js +75 -167
- package/dist/src/production/retry.js.map +1 -1
- package/dist/src/prompt.d.ts +44 -0
- package/dist/src/prompt.d.ts.map +1 -0
- package/dist/src/prompt.js +436 -560
- package/dist/src/prompt.js.map +1 -1
- package/dist/src/runtime/headless.d.ts +60 -0
- package/dist/src/runtime/headless.d.ts.map +1 -0
- package/dist/src/runtime/headless.js +197 -286
- package/dist/src/runtime/headless.js.map +1 -1
- package/dist/src/ruvector/agent-wasm.d.ts +182 -0
- package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/agent-wasm.js +156 -351
- package/dist/src/ruvector/agent-wasm.js.map +1 -1
- package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/ast-analyzer.js +145 -232
- package/dist/src/ruvector/ast-analyzer.js.map +1 -1
- package/dist/src/ruvector/coverage-router.d.ts +160 -0
- package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
- package/dist/src/ruvector/coverage-router.js +287 -419
- package/dist/src/ruvector/coverage-router.js.map +1 -1
- package/dist/src/ruvector/coverage-tools.js +56 -101
- package/dist/src/ruvector/coverage-tools.js.map +1 -1
- package/dist/src/ruvector/diff-classifier.d.ts +175 -0
- package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
- package/dist/src/ruvector/diff-classifier.js +324 -451
- package/dist/src/ruvector/diff-classifier.js.map +1 -1
- package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
- package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
- package/dist/src/ruvector/enhanced-model-router.js +260 -336
- package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
- package/dist/src/ruvector/flash-attention.d.ts +195 -0
- package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
- package/dist/src/ruvector/flash-attention.js +223 -254
- package/dist/src/ruvector/flash-attention.js.map +1 -1
- package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
- package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/graph-analyzer.js +486 -680
- package/dist/src/ruvector/graph-analyzer.js.map +1 -1
- package/dist/src/ruvector/index.d.ts +40 -0
- package/dist/src/ruvector/index.d.ts.map +1 -0
- package/dist/src/ruvector/index.js +36 -106
- package/dist/src/ruvector/index.js.map +1 -1
- package/dist/src/ruvector/lora-adapter.d.ts +218 -0
- package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
- package/dist/src/ruvector/lora-adapter.js +155 -248
- package/dist/src/ruvector/lora-adapter.js.map +1 -1
- package/dist/src/ruvector/model-router.d.ts +220 -0
- package/dist/src/ruvector/model-router.d.ts.map +1 -0
- package/dist/src/ruvector/model-router.js +175 -248
- package/dist/src/ruvector/model-router.js.map +1 -1
- package/dist/src/ruvector/moe-router.d.ts +206 -0
- package/dist/src/ruvector/moe-router.d.ts.map +1 -0
- package/dist/src/ruvector/moe-router.js +228 -286
- package/dist/src/ruvector/moe-router.js.map +1 -1
- package/dist/src/ruvector/q-learning-router.d.ts +211 -0
- package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
- package/dist/src/ruvector/q-learning-router.js +257 -338
- package/dist/src/ruvector/q-learning-router.js.map +1 -1
- package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
- package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/ruvllm-wasm.js +270 -434
- package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
- package/dist/src/ruvector/semantic-router.d.ts +77 -0
- package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
- package/dist/src/ruvector/semantic-router.js +60 -67
- package/dist/src/ruvector/semantic-router.js.map +1 -1
- package/dist/src/ruvector/vector-db.d.ts +69 -0
- package/dist/src/ruvector/vector-db.d.ts.map +1 -0
- package/dist/src/ruvector/vector-db.js +119 -205
- package/dist/src/ruvector/vector-db.js.map +1 -1
- package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
- package/dist/src/services/agentic-flow-bridge.js +32 -105
- package/dist/src/services/agentic-flow-bridge.js.map +1 -1
- package/dist/src/services/claim-service.d.ts +204 -0
- package/dist/src/services/claim-service.d.ts.map +1 -0
- package/dist/src/services/claim-service.js +615 -940
- package/dist/src/services/claim-service.js.map +1 -1
- package/dist/src/services/container-worker-pool.d.ts +197 -0
- package/dist/src/services/container-worker-pool.d.ts.map +1 -0
- package/dist/src/services/container-worker-pool.js +398 -666
- package/dist/src/services/container-worker-pool.js.map +1 -1
- package/dist/src/services/headless-worker-executor.d.ts +304 -0
- package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
- package/dist/src/services/headless-worker-executor.js +441 -467
- package/dist/src/services/headless-worker-executor.js.map +1 -1
- package/dist/src/services/index.d.ts +4 -4
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/index.js +4 -4
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/registry-api.d.ts +58 -0
- package/dist/src/services/registry-api.d.ts.map +1 -0
- package/dist/src/services/registry-api.js +92 -200
- package/dist/src/services/registry-api.js.map +1 -1
- package/dist/src/services/ruvector-training.d.ts +222 -0
- package/dist/src/services/ruvector-training.d.ts.map +1 -0
- package/dist/src/services/ruvector-training.js +257 -337
- package/dist/src/services/ruvector-training.js.map +1 -1
- package/dist/src/services/worker-daemon.d.ts +228 -0
- package/dist/src/services/worker-daemon.d.ts.map +1 -0
- package/dist/src/services/worker-daemon.js +591 -849
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/src/services/worker-queue.d.ts +194 -0
- package/dist/src/services/worker-queue.d.ts.map +1 -0
- package/dist/src/services/worker-queue.js +331 -548
- package/dist/src/services/worker-queue.js.map +1 -1
- package/dist/src/suggest.d.ts +53 -0
- package/dist/src/suggest.d.ts.map +1 -0
- package/dist/src/suggest.js +45 -55
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/transfer/anonymization/index.js +29 -37
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/transfer/deploy-seraphine.js +128 -155
- package/dist/src/transfer/deploy-seraphine.js.map +1 -1
- package/dist/src/transfer/export.d.ts +25 -0
- package/dist/src/transfer/export.d.ts.map +1 -0
- package/dist/src/transfer/export.js +84 -142
- package/dist/src/transfer/export.js.map +1 -1
- package/dist/src/transfer/index.d.ts +1 -1
- package/dist/src/transfer/index.d.ts.map +1 -1
- package/dist/src/transfer/index.js +0 -2
- package/dist/src/transfer/index.js.map +1 -1
- package/dist/src/transfer/ipfs/client.d.ts +109 -0
- package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/client.js +187 -337
- package/dist/src/transfer/ipfs/client.js.map +1 -1
- package/dist/src/transfer/ipfs/upload.d.ts +95 -0
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/upload.js +288 -434
- package/dist/src/transfer/ipfs/upload.js.map +1 -1
- package/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
- package/dist/src/transfer/models/seraphine.js +55 -55
- package/dist/src/transfer/models/seraphine.js.map +1 -1
- package/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
- package/dist/src/transfer/serialization/cfp.js +30 -31
- package/dist/src/transfer/serialization/cfp.js.map +1 -1
- package/dist/src/transfer/storage/gcs.d.ts +82 -0
- package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
- package/dist/src/transfer/storage/gcs.js +165 -232
- package/dist/src/transfer/storage/gcs.js.map +1 -1
- package/dist/src/transfer/store/discovery.d.ts +84 -0
- package/dist/src/transfer/store/discovery.d.ts.map +1 -0
- package/dist/src/transfer/store/discovery.js +239 -349
- package/dist/src/transfer/store/discovery.js.map +1 -1
- package/dist/src/transfer/store/download.d.ts +70 -0
- package/dist/src/transfer/store/download.d.ts.map +1 -0
- package/dist/src/transfer/store/download.js +243 -365
- package/dist/src/transfer/store/download.js.map +1 -1
- package/dist/src/transfer/store/index.d.ts +84 -0
- package/dist/src/transfer/store/index.d.ts.map +1 -0
- package/dist/src/transfer/store/index.js +63 -130
- package/dist/src/transfer/store/index.js.map +1 -1
- package/dist/src/transfer/store/publish.d.ts +76 -0
- package/dist/src/transfer/store/publish.d.ts.map +1 -0
- package/dist/src/transfer/store/publish.js +184 -258
- package/dist/src/transfer/store/publish.js.map +1 -1
- package/dist/src/transfer/store/registry.js +50 -72
- package/dist/src/transfer/store/registry.js.map +1 -1
- package/dist/src/transfer/store/search.d.ts +54 -0
- package/dist/src/transfer/store/search.d.ts.map +1 -0
- package/dist/src/transfer/store/search.js +64 -96
- package/dist/src/transfer/store/search.js.map +1 -1
- package/dist/src/transfer/store/tests/standalone-test.js +174 -231
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
- package/dist/src/transfer/test-seraphine.js +95 -130
- package/dist/src/transfer/test-seraphine.js.map +1 -1
- package/dist/src/transfer/tests/test-store.js +194 -239
- package/dist/src/transfer/tests/test-store.js.map +1 -1
- package/dist/src/transfer/types.d.ts +245 -0
- package/dist/src/transfer/types.d.ts.map +1 -0
- package/dist/src/types.d.ts +198 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +26 -55
- package/dist/src/types.js.map +1 -1
- package/dist/src/update/checker.d.ts +34 -0
- package/dist/src/update/checker.d.ts.map +1 -0
- package/dist/src/update/checker.js +106 -183
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts +32 -0
- package/dist/src/update/executor.d.ts.map +1 -0
- package/dist/src/update/executor.js +135 -198
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.d.ts +33 -0
- package/dist/src/update/index.d.ts.map +1 -0
- package/dist/src/update/index.js +38 -85
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/update/rate-limiter.d.ts +20 -0
- package/dist/src/update/rate-limiter.d.ts.map +1 -0
- package/dist/src/update/rate-limiter.js +19 -31
- package/dist/src/update/rate-limiter.js.map +1 -1
- package/dist/src/update/validator.d.ts +17 -0
- package/dist/src/update/validator.d.ts.map +1 -0
- package/dist/src/update/validator.js +38 -64
- package/dist/src/update/validator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2,83 +2,132 @@
|
|
|
2
2
|
* V3 CLI RuVector Migrate Command
|
|
3
3
|
* Database migration management for RuVector
|
|
4
4
|
*/
|
|
5
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
15
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
16
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
17
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
18
|
-
function step(op) {
|
|
19
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
20
|
-
while (_) try {
|
|
21
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
22
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
23
|
-
switch (op[0]) {
|
|
24
|
-
case 0: case 1: t = op; break;
|
|
25
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
26
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
27
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
28
|
-
default:
|
|
29
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
30
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
31
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
32
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
33
|
-
if (t[2]) _.ops.pop();
|
|
34
|
-
_.trys.pop(); continue;
|
|
35
|
-
}
|
|
36
|
-
op = body.call(thisArg, _);
|
|
37
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
38
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
5
|
import { output } from '../../output.js';
|
|
42
6
|
import { confirm } from '../../prompt.js';
|
|
43
7
|
/**
|
|
44
8
|
* Available migrations
|
|
45
9
|
*/
|
|
46
|
-
|
|
10
|
+
const MIGRATIONS = [
|
|
47
11
|
{
|
|
48
12
|
version: '1.0.0',
|
|
49
13
|
name: 'Initial RuVector setup',
|
|
50
14
|
up: '-- Initial setup handled by init command',
|
|
51
|
-
down: '-- Drop all tables in schema'
|
|
15
|
+
down: '-- Drop all tables in schema',
|
|
52
16
|
},
|
|
53
17
|
{
|
|
54
18
|
version: '1.1.0',
|
|
55
19
|
name: 'Add full-text search',
|
|
56
|
-
up:
|
|
57
|
-
|
|
20
|
+
up: `
|
|
21
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_content_fts
|
|
22
|
+
ON {{schema}}.embeddings
|
|
23
|
+
USING gin (to_tsvector('english', COALESCE(content, '')));
|
|
24
|
+
|
|
25
|
+
ALTER TABLE {{schema}}.embeddings
|
|
26
|
+
ADD COLUMN IF NOT EXISTS search_vector tsvector
|
|
27
|
+
GENERATED ALWAYS AS (to_tsvector('english', COALESCE(content, ''))) STORED;
|
|
28
|
+
`,
|
|
29
|
+
down: `
|
|
30
|
+
DROP INDEX IF EXISTS {{schema}}.idx_embeddings_content_fts;
|
|
31
|
+
ALTER TABLE {{schema}}.embeddings DROP COLUMN IF EXISTS search_vector;
|
|
32
|
+
`,
|
|
58
33
|
},
|
|
59
34
|
{
|
|
60
35
|
version: '1.2.0',
|
|
61
36
|
name: 'Add embedding statistics',
|
|
62
|
-
up:
|
|
63
|
-
|
|
37
|
+
up: `
|
|
38
|
+
CREATE TABLE IF NOT EXISTS {{schema}}.embedding_stats (
|
|
39
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
40
|
+
namespace VARCHAR(128) NOT NULL,
|
|
41
|
+
total_vectors INTEGER DEFAULT 0,
|
|
42
|
+
avg_magnitude FLOAT,
|
|
43
|
+
dimension_stats JSONB,
|
|
44
|
+
computed_at TIMESTAMPTZ DEFAULT NOW()
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_embedding_stats_namespace
|
|
48
|
+
ON {{schema}}.embedding_stats (namespace);
|
|
49
|
+
`,
|
|
50
|
+
down: `
|
|
51
|
+
DROP TABLE IF EXISTS {{schema}}.embedding_stats;
|
|
52
|
+
`,
|
|
64
53
|
},
|
|
65
54
|
{
|
|
66
55
|
version: '1.3.0',
|
|
67
56
|
name: 'Add query cache',
|
|
68
|
-
up:
|
|
69
|
-
|
|
57
|
+
up: `
|
|
58
|
+
CREATE TABLE IF NOT EXISTS {{schema}}.query_cache (
|
|
59
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
60
|
+
query_hash VARCHAR(64) NOT NULL UNIQUE,
|
|
61
|
+
query_embedding vector(1536),
|
|
62
|
+
result_ids UUID[],
|
|
63
|
+
result_scores FLOAT[],
|
|
64
|
+
hit_count INTEGER DEFAULT 1,
|
|
65
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
66
|
+
last_accessed TIMESTAMPTZ DEFAULT NOW()
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_query_cache_hash
|
|
70
|
+
ON {{schema}}.query_cache (query_hash);
|
|
71
|
+
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_query_cache_last_accessed
|
|
73
|
+
ON {{schema}}.query_cache (last_accessed);
|
|
74
|
+
`,
|
|
75
|
+
down: `
|
|
76
|
+
DROP TABLE IF EXISTS {{schema}}.query_cache;
|
|
77
|
+
`,
|
|
70
78
|
},
|
|
71
79
|
{
|
|
72
80
|
version: '1.4.0',
|
|
73
81
|
name: 'Add batch operations support',
|
|
74
|
-
up:
|
|
75
|
-
|
|
82
|
+
up: `
|
|
83
|
+
CREATE TABLE IF NOT EXISTS {{schema}}.batch_jobs (
|
|
84
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
85
|
+
job_type VARCHAR(64) NOT NULL,
|
|
86
|
+
status VARCHAR(32) DEFAULT 'pending',
|
|
87
|
+
total_items INTEGER DEFAULT 0,
|
|
88
|
+
processed_items INTEGER DEFAULT 0,
|
|
89
|
+
error_count INTEGER DEFAULT 0,
|
|
90
|
+
metadata JSONB DEFAULT '{}',
|
|
91
|
+
started_at TIMESTAMPTZ,
|
|
92
|
+
completed_at TIMESTAMPTZ,
|
|
93
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
CREATE INDEX IF NOT EXISTS idx_batch_jobs_status
|
|
97
|
+
ON {{schema}}.batch_jobs (status);
|
|
98
|
+
`,
|
|
99
|
+
down: `
|
|
100
|
+
DROP TABLE IF EXISTS {{schema}}.batch_jobs;
|
|
101
|
+
`,
|
|
76
102
|
},
|
|
77
103
|
{
|
|
78
104
|
version: '1.5.0',
|
|
79
105
|
name: 'Add neural pattern learning',
|
|
80
|
-
up:
|
|
81
|
-
|
|
106
|
+
up: `
|
|
107
|
+
CREATE TABLE IF NOT EXISTS {{schema}}.neural_patterns (
|
|
108
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
109
|
+
pattern_type VARCHAR(64) NOT NULL,
|
|
110
|
+
input_embedding vector(1536),
|
|
111
|
+
output_embedding vector(1536),
|
|
112
|
+
weight_matrix JSONB,
|
|
113
|
+
activation VARCHAR(32) DEFAULT 'relu',
|
|
114
|
+
accuracy FLOAT,
|
|
115
|
+
training_steps INTEGER DEFAULT 0,
|
|
116
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
117
|
+
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
CREATE INDEX IF NOT EXISTS idx_neural_patterns_type
|
|
121
|
+
ON {{schema}}.neural_patterns (pattern_type);
|
|
122
|
+
|
|
123
|
+
CREATE INDEX IF NOT EXISTS idx_neural_patterns_input_hnsw
|
|
124
|
+
ON {{schema}}.neural_patterns
|
|
125
|
+
USING hnsw (input_embedding vector_cosine_ops)
|
|
126
|
+
WITH (m = 16, ef_construction = 64);
|
|
127
|
+
`,
|
|
128
|
+
down: `
|
|
129
|
+
DROP TABLE IF EXISTS {{schema}}.neural_patterns;
|
|
130
|
+
`,
|
|
82
131
|
},
|
|
83
132
|
];
|
|
84
133
|
/**
|
|
@@ -92,16 +141,16 @@ function getConnectionConfig(ctx) {
|
|
|
92
141
|
user: ctx.flags.user || process.env.PGUSER || 'postgres',
|
|
93
142
|
password: ctx.flags.password || process.env.PGPASSWORD || '',
|
|
94
143
|
ssl: ctx.flags.ssl || process.env.PGSSLMODE === 'require',
|
|
95
|
-
schema: ctx.flags.schema || 'claude_flow'
|
|
144
|
+
schema: ctx.flags.schema || 'claude_flow',
|
|
96
145
|
};
|
|
97
146
|
}
|
|
98
147
|
/**
|
|
99
148
|
* Calculate simple checksum for migration SQL
|
|
100
149
|
*/
|
|
101
150
|
function calculateChecksum(sql) {
|
|
102
|
-
|
|
103
|
-
for (
|
|
104
|
-
|
|
151
|
+
let hash = 0;
|
|
152
|
+
for (let i = 0; i < sql.length; i++) {
|
|
153
|
+
const char = sql.charCodeAt(i);
|
|
105
154
|
hash = ((hash << 5) - hash) + char;
|
|
106
155
|
hash = hash & hash;
|
|
107
156
|
}
|
|
@@ -110,7 +159,7 @@ function calculateChecksum(sql) {
|
|
|
110
159
|
/**
|
|
111
160
|
* RuVector migrate command
|
|
112
161
|
*/
|
|
113
|
-
export
|
|
162
|
+
export const migrateCommand = {
|
|
114
163
|
name: 'migrate',
|
|
115
164
|
description: 'Run database migrations',
|
|
116
165
|
options: [
|
|
@@ -118,74 +167,74 @@ export var migrateCommand = {
|
|
|
118
167
|
name: 'up',
|
|
119
168
|
description: 'Run pending migrations (default)',
|
|
120
169
|
type: 'boolean',
|
|
121
|
-
|
|
170
|
+
default: true,
|
|
122
171
|
},
|
|
123
172
|
{
|
|
124
173
|
name: 'down',
|
|
125
174
|
description: 'Rollback last migration',
|
|
126
175
|
type: 'boolean',
|
|
127
|
-
|
|
176
|
+
default: false,
|
|
128
177
|
},
|
|
129
178
|
{
|
|
130
179
|
name: 'to',
|
|
131
180
|
description: 'Migrate to specific version',
|
|
132
|
-
type: 'string'
|
|
181
|
+
type: 'string',
|
|
133
182
|
},
|
|
134
183
|
{
|
|
135
184
|
name: 'dry-run',
|
|
136
185
|
description: 'Show SQL without executing',
|
|
137
186
|
type: 'boolean',
|
|
138
|
-
|
|
187
|
+
default: false,
|
|
139
188
|
},
|
|
140
189
|
{
|
|
141
190
|
name: 'force',
|
|
142
191
|
description: 'Force migration even if dirty',
|
|
143
192
|
type: 'boolean',
|
|
144
|
-
|
|
193
|
+
default: false,
|
|
145
194
|
},
|
|
146
195
|
{
|
|
147
196
|
name: 'host',
|
|
148
197
|
short: 'h',
|
|
149
198
|
description: 'PostgreSQL host',
|
|
150
199
|
type: 'string',
|
|
151
|
-
|
|
200
|
+
default: 'localhost',
|
|
152
201
|
},
|
|
153
202
|
{
|
|
154
203
|
name: 'port',
|
|
155
204
|
short: 'p',
|
|
156
205
|
description: 'PostgreSQL port',
|
|
157
206
|
type: 'number',
|
|
158
|
-
|
|
207
|
+
default: 5432,
|
|
159
208
|
},
|
|
160
209
|
{
|
|
161
210
|
name: 'database',
|
|
162
211
|
short: 'd',
|
|
163
212
|
description: 'Database name',
|
|
164
|
-
type: 'string'
|
|
213
|
+
type: 'string',
|
|
165
214
|
},
|
|
166
215
|
{
|
|
167
216
|
name: 'user',
|
|
168
217
|
short: 'u',
|
|
169
218
|
description: 'Database user',
|
|
170
|
-
type: 'string'
|
|
219
|
+
type: 'string',
|
|
171
220
|
},
|
|
172
221
|
{
|
|
173
222
|
name: 'password',
|
|
174
223
|
description: 'Database password',
|
|
175
|
-
type: 'string'
|
|
224
|
+
type: 'string',
|
|
176
225
|
},
|
|
177
226
|
{
|
|
178
227
|
name: 'ssl',
|
|
179
228
|
description: 'Enable SSL',
|
|
180
229
|
type: 'boolean',
|
|
181
|
-
|
|
230
|
+
default: false,
|
|
182
231
|
},
|
|
183
232
|
{
|
|
184
233
|
name: 'schema',
|
|
185
234
|
short: 's',
|
|
186
235
|
description: 'Schema name',
|
|
187
236
|
type: 'string',
|
|
188
|
-
|
|
237
|
+
default: 'claude_flow',
|
|
189
238
|
},
|
|
190
239
|
],
|
|
191
240
|
examples: [
|
|
@@ -194,275 +243,239 @@ export var migrateCommand = {
|
|
|
194
243
|
{ command: 'claude-flow ruvector migrate --to 1.2.0', description: 'Migrate to version 1.2.0' },
|
|
195
244
|
{ command: 'claude-flow ruvector migrate --dry-run', description: 'Preview migration SQL' },
|
|
196
245
|
],
|
|
197
|
-
action:
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
appliedVersions_1 = new Set(appliedResult.rows.map(function (r) { return r.version; }));
|
|
267
|
-
spinner.succeed("Found " + appliedVersions_1.size + " applied migrations");
|
|
268
|
-
migrationsToRun = [];
|
|
269
|
-
direction_1 = 'up';
|
|
270
|
-
if (!rollback) return [3 /*break*/, 13];
|
|
271
|
-
direction_1 = 'down';
|
|
272
|
-
lastApplied_1 = appliedResult.rows[appliedResult.rows.length - 1];
|
|
273
|
-
if (!!lastApplied_1) return [3 /*break*/, 12];
|
|
246
|
+
action: async (ctx) => {
|
|
247
|
+
const config = getConnectionConfig(ctx);
|
|
248
|
+
const dryRun = ctx.flags['dry-run'];
|
|
249
|
+
const force = ctx.flags.force;
|
|
250
|
+
const targetVersion = ctx.flags.to;
|
|
251
|
+
const rollback = ctx.flags.down;
|
|
252
|
+
output.writeln();
|
|
253
|
+
output.writeln(output.bold('RuVector Migration'));
|
|
254
|
+
output.writeln(output.dim('='.repeat(60)));
|
|
255
|
+
output.writeln();
|
|
256
|
+
if (!config.database) {
|
|
257
|
+
output.printError('Database name is required. Use --database or -d flag, or set PGDATABASE env.');
|
|
258
|
+
return { success: false, exitCode: 1 };
|
|
259
|
+
}
|
|
260
|
+
if (dryRun) {
|
|
261
|
+
output.printInfo('Dry run mode: SQL will be shown but not executed');
|
|
262
|
+
output.writeln();
|
|
263
|
+
}
|
|
264
|
+
const spinner = output.createSpinner({ text: 'Connecting to PostgreSQL...', spinner: 'dots' });
|
|
265
|
+
spinner.start();
|
|
266
|
+
try {
|
|
267
|
+
// Import pg
|
|
268
|
+
let pg = null;
|
|
269
|
+
try {
|
|
270
|
+
pg = await import('pg');
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
spinner.fail('PostgreSQL driver not found');
|
|
274
|
+
output.printError('Install pg package: npm install pg');
|
|
275
|
+
return { success: false, exitCode: 1 };
|
|
276
|
+
}
|
|
277
|
+
const client = new pg.Client({
|
|
278
|
+
host: config.host,
|
|
279
|
+
port: config.port,
|
|
280
|
+
database: config.database,
|
|
281
|
+
user: config.user,
|
|
282
|
+
password: config.password,
|
|
283
|
+
ssl: config.ssl ? { rejectUnauthorized: false } : false,
|
|
284
|
+
});
|
|
285
|
+
await client.connect();
|
|
286
|
+
spinner.succeed('Connected to PostgreSQL');
|
|
287
|
+
// Check if schema and migrations table exist
|
|
288
|
+
spinner.setText('Checking migration status...');
|
|
289
|
+
spinner.start();
|
|
290
|
+
const schemaExists = await client.query(`
|
|
291
|
+
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
|
|
292
|
+
`, [config.schema]);
|
|
293
|
+
if (schemaExists.rows.length === 0) {
|
|
294
|
+
spinner.fail(`Schema "${config.schema}" not found`);
|
|
295
|
+
output.printError('Run `claude-flow ruvector init` first');
|
|
296
|
+
await client.end();
|
|
297
|
+
return { success: false, exitCode: 1 };
|
|
298
|
+
}
|
|
299
|
+
// Get applied migrations
|
|
300
|
+
const appliedResult = await client.query(`
|
|
301
|
+
SELECT version, name, applied_at, checksum
|
|
302
|
+
FROM ${config.schema}.migrations
|
|
303
|
+
ORDER BY version ASC
|
|
304
|
+
`);
|
|
305
|
+
const appliedVersions = new Set(appliedResult.rows.map(r => r.version));
|
|
306
|
+
spinner.succeed(`Found ${appliedVersions.size} applied migrations`);
|
|
307
|
+
// Determine migrations to run
|
|
308
|
+
let migrationsToRun = [];
|
|
309
|
+
let direction = 'up';
|
|
310
|
+
if (rollback) {
|
|
311
|
+
direction = 'down';
|
|
312
|
+
// Get the last applied migration
|
|
313
|
+
const lastApplied = appliedResult.rows[appliedResult.rows.length - 1];
|
|
314
|
+
if (!lastApplied) {
|
|
274
315
|
output.printWarning('No migrations to rollback');
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
316
|
+
await client.end();
|
|
317
|
+
return { success: true };
|
|
318
|
+
}
|
|
319
|
+
const migration = MIGRATIONS.find(m => m.version === lastApplied.version);
|
|
320
|
+
if (migration) {
|
|
321
|
+
migrationsToRun = [migration];
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
else if (targetVersion) {
|
|
325
|
+
// Migrate to specific version
|
|
326
|
+
const targetIdx = MIGRATIONS.findIndex(m => m.version === targetVersion);
|
|
327
|
+
if (targetIdx === -1) {
|
|
328
|
+
output.printError(`Version ${targetVersion} not found`);
|
|
329
|
+
await client.end();
|
|
330
|
+
return { success: false, exitCode: 1 };
|
|
331
|
+
}
|
|
332
|
+
const currentVersions = Array.from(appliedVersions);
|
|
333
|
+
const currentIdx = currentVersions.length > 0
|
|
334
|
+
? MIGRATIONS.findIndex(m => m.version === currentVersions[currentVersions.length - 1])
|
|
335
|
+
: -1;
|
|
336
|
+
if (targetIdx > currentIdx) {
|
|
337
|
+
// Migrate up
|
|
338
|
+
migrationsToRun = MIGRATIONS.slice(currentIdx + 1, targetIdx + 1)
|
|
339
|
+
.filter(m => !appliedVersions.has(m.version));
|
|
340
|
+
}
|
|
341
|
+
else if (targetIdx < currentIdx) {
|
|
342
|
+
// Migrate down
|
|
343
|
+
direction = 'down';
|
|
344
|
+
migrationsToRun = MIGRATIONS.slice(targetIdx + 1, currentIdx + 1)
|
|
345
|
+
.filter(m => appliedVersions.has(m.version))
|
|
346
|
+
.reverse();
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
// Run all pending migrations
|
|
351
|
+
migrationsToRun = MIGRATIONS.filter(m => !appliedVersions.has(m.version));
|
|
352
|
+
}
|
|
353
|
+
if (migrationsToRun.length === 0) {
|
|
354
|
+
output.printSuccess('Database is up to date');
|
|
355
|
+
// Show current migration status
|
|
356
|
+
output.writeln();
|
|
357
|
+
output.writeln(output.highlight('Applied Migrations:'));
|
|
358
|
+
output.printTable({
|
|
359
|
+
columns: [
|
|
360
|
+
{ key: 'version', header: 'Version', width: 12 },
|
|
361
|
+
{ key: 'name', header: 'Name', width: 35 },
|
|
362
|
+
{ key: 'applied', header: 'Applied At', width: 22 },
|
|
363
|
+
],
|
|
364
|
+
data: appliedResult.rows.map(r => ({
|
|
365
|
+
version: r.version,
|
|
366
|
+
name: r.name,
|
|
367
|
+
applied: new Date(r.applied_at).toISOString().replace('T', ' ').substring(0, 19),
|
|
368
|
+
})),
|
|
369
|
+
});
|
|
370
|
+
await client.end();
|
|
371
|
+
return { success: true };
|
|
372
|
+
}
|
|
373
|
+
// Show migrations to run
|
|
374
|
+
output.writeln();
|
|
375
|
+
output.writeln(output.highlight(`Migrations to ${direction === 'up' ? 'apply' : 'rollback'}:`));
|
|
376
|
+
output.printTable({
|
|
377
|
+
columns: [
|
|
378
|
+
{ key: 'version', header: 'Version', width: 12 },
|
|
379
|
+
{ key: 'name', header: 'Name', width: 40 },
|
|
380
|
+
{ key: 'direction', header: 'Direction', width: 10 },
|
|
381
|
+
],
|
|
382
|
+
data: migrationsToRun.map(m => ({
|
|
383
|
+
version: m.version,
|
|
384
|
+
name: m.name,
|
|
385
|
+
direction: direction === 'up' ? output.success('UP') : output.warning('DOWN'),
|
|
386
|
+
})),
|
|
387
|
+
});
|
|
388
|
+
output.writeln();
|
|
389
|
+
// Dry run: show SQL
|
|
390
|
+
if (dryRun) {
|
|
391
|
+
for (const migration of migrationsToRun) {
|
|
392
|
+
const sql = direction === 'up' ? migration.up : migration.down;
|
|
393
|
+
const resolvedSql = sql.replace(/\{\{schema\}\}/g, config.schema);
|
|
394
|
+
output.writeln(output.bold(`-- Migration ${migration.version}: ${migration.name}`));
|
|
395
|
+
output.writeln(output.dim('-- Direction: ' + direction.toUpperCase()));
|
|
340
396
|
output.writeln();
|
|
341
|
-
output.writeln(
|
|
342
|
-
output.printTable({
|
|
343
|
-
columns: [
|
|
344
|
-
{ key: 'version', header: 'Version', width: 12 },
|
|
345
|
-
{ key: 'name', header: 'Name', width: 40 },
|
|
346
|
-
{ key: 'direction', header: 'Direction', width: 10 },
|
|
347
|
-
],
|
|
348
|
-
data: migrationsToRun.map(function (m) { return ({
|
|
349
|
-
version: m.version,
|
|
350
|
-
name: m.name,
|
|
351
|
-
direction: direction_1 === 'up' ? output.success('UP') : output.warning('DOWN')
|
|
352
|
-
}); })
|
|
353
|
-
});
|
|
397
|
+
output.writeln(resolvedSql);
|
|
354
398
|
output.writeln();
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
return [4 /*yield*/, client.end()];
|
|
367
|
-
case 20:
|
|
368
|
-
_c.sent();
|
|
369
|
-
return [2 /*return*/, { success: true, data: { dryRun: true, migrations: migrationsToRun.map(function (m) { return m.version; }) } }];
|
|
370
|
-
case 21:
|
|
371
|
-
if (!(ctx.interactive && !force)) return [3 /*break*/, 24];
|
|
372
|
-
return [4 /*yield*/, confirm({
|
|
373
|
-
message: "Run " + migrationsToRun.length + " migration(s)?",
|
|
374
|
-
"default": true
|
|
375
|
-
})];
|
|
376
|
-
case 22:
|
|
377
|
-
confirmRun = _c.sent();
|
|
378
|
-
if (!!confirmRun) return [3 /*break*/, 24];
|
|
399
|
+
}
|
|
400
|
+
await client.end();
|
|
401
|
+
return { success: true, data: { dryRun: true, migrations: migrationsToRun.map(m => m.version) } };
|
|
402
|
+
}
|
|
403
|
+
// Confirm before running
|
|
404
|
+
if (ctx.interactive && !force) {
|
|
405
|
+
const confirmRun = await confirm({
|
|
406
|
+
message: `Run ${migrationsToRun.length} migration(s)?`,
|
|
407
|
+
default: true,
|
|
408
|
+
});
|
|
409
|
+
if (!confirmRun) {
|
|
379
410
|
output.printInfo('Migration cancelled');
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
_c.label = 26;
|
|
394
|
-
case 26:
|
|
395
|
-
_c.trys.push([26, 34, , 36]);
|
|
396
|
-
sql = direction_1 === 'up' ? migration.up : migration.down;
|
|
397
|
-
resolvedSql = sql.replace(/\{\{schema\}\}/g, config.schema);
|
|
398
|
-
return [4 /*yield*/, client.query('BEGIN')];
|
|
399
|
-
case 27:
|
|
400
|
-
_c.sent();
|
|
401
|
-
// Execute migration SQL
|
|
402
|
-
return [4 /*yield*/, client.query(resolvedSql)];
|
|
403
|
-
case 28:
|
|
411
|
+
await client.end();
|
|
412
|
+
return { success: false, exitCode: 0 };
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
// Run migrations
|
|
416
|
+
const results = [];
|
|
417
|
+
for (const migration of migrationsToRun) {
|
|
418
|
+
spinner.setText(`Running migration ${migration.version}: ${migration.name}...`);
|
|
419
|
+
spinner.start();
|
|
420
|
+
try {
|
|
421
|
+
const sql = direction === 'up' ? migration.up : migration.down;
|
|
422
|
+
const resolvedSql = sql.replace(/\{\{schema\}\}/g, config.schema);
|
|
423
|
+
await client.query('BEGIN');
|
|
404
424
|
// Execute migration SQL
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
425
|
+
await client.query(resolvedSql);
|
|
426
|
+
// Update migrations table
|
|
427
|
+
if (direction === 'up') {
|
|
428
|
+
const checksum = calculateChecksum(resolvedSql);
|
|
429
|
+
await client.query(`
|
|
430
|
+
INSERT INTO ${config.schema}.migrations (version, name, checksum)
|
|
431
|
+
VALUES ($1, $2, $3)
|
|
432
|
+
ON CONFLICT (version) DO UPDATE SET applied_at = NOW()
|
|
433
|
+
`, [migration.version, migration.name, checksum]);
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
await client.query(`
|
|
437
|
+
DELETE FROM ${config.schema}.migrations WHERE version = $1
|
|
438
|
+
`, [migration.version]);
|
|
439
|
+
}
|
|
440
|
+
await client.query('COMMIT');
|
|
441
|
+
spinner.succeed(`Migration ${migration.version} ${direction === 'up' ? 'applied' : 'rolled back'}`);
|
|
420
442
|
results.push({ version: migration.version, success: true });
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
_c.sent();
|
|
427
|
-
spinner.fail("Migration " + migration.version + " failed");
|
|
428
|
-
errorMessage = error_1 instanceof Error ? error_1.message : String(error_1);
|
|
443
|
+
}
|
|
444
|
+
catch (error) {
|
|
445
|
+
await client.query('ROLLBACK');
|
|
446
|
+
spinner.fail(`Migration ${migration.version} failed`);
|
|
447
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
429
448
|
output.printError(errorMessage);
|
|
430
449
|
results.push({ version: migration.version, success: false, error: errorMessage });
|
|
431
450
|
if (!force) {
|
|
432
451
|
output.printWarning('Stopping migration due to error. Use --force to continue.');
|
|
433
|
-
|
|
452
|
+
break;
|
|
434
453
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
successful = results.filter(function (r) { return r.success; }).length;
|
|
445
|
-
failed = results.filter(function (r) { return !r.success; }).length;
|
|
446
|
-
if (failed === 0) {
|
|
447
|
-
output.printSuccess("All " + successful + " migration(s) completed successfully");
|
|
448
|
-
}
|
|
449
|
-
else {
|
|
450
|
-
output.printWarning(successful + " succeeded, " + failed + " failed");
|
|
451
|
-
}
|
|
452
|
-
return [2 /*return*/, {
|
|
453
|
-
success: failed === 0,
|
|
454
|
-
data: { results: results },
|
|
455
|
-
exitCode: failed > 0 ? 1 : 0
|
|
456
|
-
}];
|
|
457
|
-
case 39:
|
|
458
|
-
error_2 = _c.sent();
|
|
459
|
-
spinner.fail('Migration failed');
|
|
460
|
-
output.printError(error_2 instanceof Error ? error_2.message : String(error_2));
|
|
461
|
-
return [2 /*return*/, { success: false, exitCode: 1 }];
|
|
462
|
-
case 40: return [2 /*return*/];
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
await client.end();
|
|
457
|
+
// Summary
|
|
458
|
+
output.writeln();
|
|
459
|
+
const successful = results.filter(r => r.success).length;
|
|
460
|
+
const failed = results.filter(r => !r.success).length;
|
|
461
|
+
if (failed === 0) {
|
|
462
|
+
output.printSuccess(`All ${successful} migration(s) completed successfully`);
|
|
463
463
|
}
|
|
464
|
-
|
|
465
|
-
|
|
464
|
+
else {
|
|
465
|
+
output.printWarning(`${successful} succeeded, ${failed} failed`);
|
|
466
|
+
}
|
|
467
|
+
return {
|
|
468
|
+
success: failed === 0,
|
|
469
|
+
data: { results },
|
|
470
|
+
exitCode: failed > 0 ? 1 : 0,
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
catch (error) {
|
|
474
|
+
spinner.fail('Migration failed');
|
|
475
|
+
output.printError(error instanceof Error ? error.message : String(error));
|
|
476
|
+
return { success: false, exitCode: 1 };
|
|
477
|
+
}
|
|
478
|
+
},
|
|
466
479
|
};
|
|
467
480
|
export default migrateCommand;
|
|
468
481
|
//# sourceMappingURL=migrate.js.map
|