moflo 4.0.4 → 4.1.0
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/.claude/agents/MIGRATION_SUMMARY.md +221 -221
- package/.claude/agents/analysis/analyze-code-quality.md +178 -178
- package/.claude/agents/analysis/code-analyzer.md +209 -209
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +178 -178
- package/.claude/agents/architecture/system-design/arch-system-design.md +154 -154
- package/.claude/agents/base-template-generator.md +42 -42
- package/.claude/agents/consensus/byzantine-coordinator.md +62 -62
- package/.claude/agents/consensus/crdt-synchronizer.md +996 -996
- package/.claude/agents/consensus/gossip-coordinator.md +62 -62
- package/.claude/agents/consensus/performance-benchmarker.md +850 -850
- package/.claude/agents/consensus/quorum-manager.md +822 -822
- package/.claude/agents/consensus/raft-manager.md +62 -62
- package/.claude/agents/consensus/security-manager.md +621 -621
- package/.claude/agents/core/coder.md +265 -265
- package/.claude/agents/core/planner.md +167 -167
- package/.claude/agents/core/researcher.md +189 -189
- package/.claude/agents/core/reviewer.md +325 -325
- package/.claude/agents/core/tester.md +318 -318
- package/.claude/agents/custom/test-long-runner.md +44 -44
- package/.claude/agents/data/ml/data-ml-model.md +192 -192
- package/.claude/agents/development/backend/dev-backend-api.md +141 -141
- package/.claude/agents/development/dev-backend-api.md +344 -344
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +163 -163
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +173 -173
- package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
- package/.claude/agents/dual-mode/codex-worker.md +211 -211
- package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
- package/.claude/agents/flow-nexus/app-store.md +87 -87
- package/.claude/agents/flow-nexus/authentication.md +68 -68
- package/.claude/agents/flow-nexus/challenges.md +80 -80
- package/.claude/agents/flow-nexus/neural-network.md +87 -87
- package/.claude/agents/flow-nexus/payments.md +82 -82
- package/.claude/agents/flow-nexus/sandbox.md +75 -75
- package/.claude/agents/flow-nexus/swarm.md +75 -75
- package/.claude/agents/flow-nexus/user-tools.md +95 -95
- package/.claude/agents/flow-nexus/workflow.md +83 -83
- package/.claude/agents/github/code-review-swarm.md +537 -537
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +318 -318
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +190 -190
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +366 -366
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +634 -634
- package/.claude/agents/goal/agent.md +815 -815
- package/.claude/agents/goal/code-goal-planner.md +445 -445
- package/.claude/agents/goal/goal-planner.md +167 -167
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
- package/.claude/agents/hive-mind/scout-explorer.md +241 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
- package/.claude/agents/hive-mind/worker-specialist.md +216 -216
- package/.claude/agents/neural/safla-neural.md +73 -73
- package/.claude/agents/optimization/benchmark-suite.md +664 -664
- package/.claude/agents/optimization/load-balancer.md +430 -430
- package/.claude/agents/optimization/performance-monitor.md +671 -671
- package/.claude/agents/optimization/resource-allocator.md +673 -673
- package/.claude/agents/optimization/topology-optimizer.md +807 -807
- package/.claude/agents/payments/agentic-payments.md +126 -126
- package/.claude/agents/reasoning/agent.md +815 -815
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/sona/sona-learning-optimizer.md +74 -74
- package/.claude/agents/sparc/architecture.md +471 -471
- package/.claude/agents/sparc/pseudocode.md +317 -317
- package/.claude/agents/sparc/refinement.md +524 -524
- package/.claude/agents/sparc/specification.md +275 -275
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +224 -224
- package/.claude/agents/sublinear/consensus-coordinator.md +337 -337
- package/.claude/agents/sublinear/matrix-optimizer.md +184 -184
- package/.claude/agents/sublinear/pagerank-analyzer.md +298 -298
- package/.claude/agents/sublinear/performance-optimizer.md +367 -367
- package/.claude/agents/sublinear/trading-predictor.md +245 -245
- package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
- package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
- package/.claude/agents/swarm/mesh-coordinator.md +391 -391
- package/.claude/agents/templates/automation-smart-agent.md +204 -204
- package/.claude/agents/templates/coordinator-swarm-init.md +104 -104
- package/.claude/agents/templates/github-pr-manager.md +176 -176
- package/.claude/agents/templates/implementer-sparc-coder.md +258 -258
- package/.claude/agents/templates/memory-coordinator.md +186 -186
- package/.claude/agents/templates/migration-plan.md +745 -745
- package/.claude/agents/templates/orchestrator-task.md +138 -138
- package/.claude/agents/templates/performance-analyzer.md +198 -198
- package/.claude/agents/templates/sparc-coordinator.md +182 -182
- package/.claude/agents/testing/production-validator.md +394 -394
- package/.claude/agents/testing/tdd-london-swarm.md +243 -243
- package/.claude/agents/testing/unit/tdd-london-swarm.md +243 -243
- package/.claude/agents/testing/validation/production-validator.md +394 -394
- package/.claude/agents/v3/v3-integration-architect.md +345 -345
- package/.claude/agents/v3/v3-memory-specialist.md +317 -317
- package/.claude/agents/v3/v3-performance-engineer.md +396 -396
- package/.claude/agents/v3/v3-queen-coordinator.md +97 -97
- package/.claude/agents/v3/v3-security-architect.md +173 -173
- package/.claude/commands/agents/README.md +10 -10
- package/.claude/commands/agents/agent-capabilities.md +21 -21
- package/.claude/commands/agents/agent-coordination.md +28 -28
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/agents/agent-types.md +26 -26
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +53 -53
- package/.claude/commands/analysis/README.md +9 -9
- package/.claude/commands/analysis/bottleneck-detect.md +162 -162
- package/.claude/commands/analysis/performance-bottlenecks.md +58 -58
- package/.claude/commands/analysis/performance-report.md +25 -25
- package/.claude/commands/analysis/token-efficiency.md +44 -44
- package/.claude/commands/analysis/token-usage.md +25 -25
- package/.claude/commands/automation/README.md +9 -9
- package/.claude/commands/automation/auto-agent.md +122 -122
- package/.claude/commands/automation/self-healing.md +105 -105
- package/.claude/commands/automation/session-memory.md +89 -89
- package/.claude/commands/automation/smart-agents.md +72 -72
- package/.claude/commands/automation/smart-spawn.md +25 -25
- package/.claude/commands/automation/workflow-select.md +25 -25
- package/.claude/commands/claude-flow-help.md +103 -103
- package/.claude/commands/claude-flow-memory.md +107 -107
- package/.claude/commands/claude-flow-swarm.md +205 -205
- package/.claude/commands/coordination/README.md +9 -9
- package/.claude/commands/coordination/agent-spawn.md +25 -25
- package/.claude/commands/coordination/init.md +44 -44
- package/.claude/commands/coordination/orchestrate.md +43 -43
- package/.claude/commands/coordination/spawn.md +45 -45
- package/.claude/commands/coordination/swarm-init.md +85 -85
- package/.claude/commands/coordination/task-orchestrate.md +25 -25
- package/.claude/commands/flow-nexus/app-store.md +123 -123
- package/.claude/commands/flow-nexus/challenges.md +119 -119
- package/.claude/commands/flow-nexus/login-registration.md +64 -64
- package/.claude/commands/flow-nexus/neural-network.md +133 -133
- package/.claude/commands/flow-nexus/payments.md +115 -115
- package/.claude/commands/flow-nexus/sandbox.md +82 -82
- package/.claude/commands/flow-nexus/swarm.md +86 -86
- package/.claude/commands/flow-nexus/user-tools.md +151 -151
- package/.claude/commands/flow-nexus/workflow.md +114 -114
- package/.claude/commands/github/README.md +11 -11
- package/.claude/commands/github/code-review-swarm.md +513 -513
- package/.claude/commands/github/code-review.md +25 -25
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/issue-triage.md +25 -25
- package/.claude/commands/github/multi-repo-swarm.md +518 -518
- package/.claude/commands/github/pr-enhance.md +26 -26
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/project-board-sync.md +470 -470
- package/.claude/commands/github/release-manager.md +337 -337
- package/.claude/commands/github/release-swarm.md +543 -543
- package/.claude/commands/github/repo-analyze.md +25 -25
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/swarm-issue.md +481 -481
- package/.claude/commands/github/swarm-pr.md +284 -284
- package/.claude/commands/github/sync-coordinator.md +300 -300
- package/.claude/commands/github/workflow-automation.md +441 -441
- package/.claude/commands/hive-mind/README.md +17 -17
- package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-init.md +18 -18
- package/.claude/commands/hive-mind/hive-mind-memory.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-resume.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -21
- package/.claude/commands/hive-mind/hive-mind-status.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-stop.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -8
- package/.claude/commands/hive-mind/hive-mind.md +27 -27
- package/.claude/commands/hooks/README.md +11 -11
- package/.claude/commands/hooks/overview.md +57 -57
- package/.claude/commands/hooks/post-edit.md +117 -117
- package/.claude/commands/hooks/post-task.md +112 -112
- package/.claude/commands/hooks/pre-edit.md +113 -113
- package/.claude/commands/hooks/pre-task.md +111 -111
- package/.claude/commands/hooks/session-end.md +118 -118
- package/.claude/commands/hooks/setup.md +102 -102
- package/.claude/commands/memory/README.md +9 -9
- package/.claude/commands/memory/memory-persist.md +25 -25
- package/.claude/commands/memory/memory-search.md +25 -25
- package/.claude/commands/memory/memory-usage.md +25 -25
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/monitoring/README.md +9 -9
- package/.claude/commands/monitoring/agent-metrics.md +25 -25
- package/.claude/commands/monitoring/agents.md +44 -44
- package/.claude/commands/monitoring/real-time-view.md +25 -25
- package/.claude/commands/monitoring/status.md +46 -46
- package/.claude/commands/monitoring/swarm-monitor.md +25 -25
- package/.claude/commands/optimization/README.md +9 -9
- package/.claude/commands/optimization/auto-topology.md +61 -61
- package/.claude/commands/optimization/cache-manage.md +25 -25
- package/.claude/commands/optimization/parallel-execute.md +25 -25
- package/.claude/commands/optimization/parallel-execution.md +49 -49
- package/.claude/commands/optimization/topology-optimize.md +25 -25
- package/.claude/commands/pair/README.md +260 -260
- package/.claude/commands/pair/commands.md +545 -545
- package/.claude/commands/pair/config.md +509 -509
- package/.claude/commands/pair/examples.md +511 -511
- package/.claude/commands/pair/modes.md +347 -347
- package/.claude/commands/pair/session.md +406 -406
- package/.claude/commands/pair/start.md +208 -208
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/stream-chain/pipeline.md +120 -120
- package/.claude/commands/stream-chain/run.md +69 -69
- package/.claude/commands/swarm/README.md +15 -15
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/swarm-analysis.md +8 -8
- package/.claude/commands/swarm/swarm-background.md +8 -8
- package/.claude/commands/swarm/swarm-init.md +19 -19
- package/.claude/commands/swarm/swarm-modes.md +8 -8
- package/.claude/commands/swarm/swarm-monitor.md +8 -8
- package/.claude/commands/swarm/swarm-spawn.md +19 -19
- package/.claude/commands/swarm/swarm-status.md +8 -8
- package/.claude/commands/swarm/swarm-strategies.md +8 -8
- package/.claude/commands/swarm/swarm.md +27 -27
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/training/README.md +9 -9
- package/.claude/commands/training/model-update.md +25 -25
- package/.claude/commands/training/neural-patterns.md +73 -73
- package/.claude/commands/training/neural-train.md +25 -25
- package/.claude/commands/training/pattern-learn.md +25 -25
- package/.claude/commands/training/specialization.md +62 -62
- package/.claude/commands/truth/start.md +142 -142
- package/.claude/commands/verify/check.md +49 -49
- package/.claude/commands/verify/start.md +127 -127
- package/.claude/commands/workflows/README.md +9 -9
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/commands/workflows/workflow-create.md +25 -25
- package/.claude/commands/workflows/workflow-execute.md +25 -25
- package/.claude/commands/workflows/workflow-export.md +25 -25
- package/.claude/config/v3-dependency-optimization.json +265 -265
- package/.claude/config/v3-performance-targets.json +250 -250
- package/.claude/helpers/README.md +96 -96
- package/.claude/helpers/aggressive-microcompact.mjs +36 -36
- package/.claude/helpers/auto-memory-hook.mjs +363 -363
- package/.claude/helpers/context-persistence-hook.mjs +1979 -1979
- package/.claude/helpers/github-safe.js +106 -106
- package/.claude/helpers/learning-service.mjs +1144 -1144
- package/.claude/helpers/metrics-db.mjs +488 -488
- package/.claude/helpers/patch-aggressive-prune.mjs +184 -184
- package/.claude/mcp.json +12 -12
- package/.claude/settings.json +2 -2
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -550
- package/.claude/skills/agentdb-learning/SKILL.md +545 -545
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -339
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -509
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -339
- package/.claude/skills/agentic-jujutsu/SKILL.md +645 -645
- package/.claude/skills/dual-mode/README.md +71 -71
- package/.claude/skills/dual-mode/dual-collect.md +103 -103
- package/.claude/skills/dual-mode/dual-coordinate.md +85 -85
- package/.claude/skills/dual-mode/dual-spawn.md +81 -81
- package/.claude/skills/flow-nexus-neural/SKILL.md +738 -738
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -1157
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -610
- package/.claude/skills/github-code-review/SKILL.md +1 -1
- package/.claude/skills/github-multi-repo/SKILL.md +2 -2
- package/.claude/skills/github-project-management/SKILL.md +1 -1
- package/.claude/skills/github-release-management/SKILL.md +2 -2
- package/.claude/skills/github-workflow-automation/SKILL.md +1 -1
- package/.claude/skills/hive-mind-advanced/SKILL.md +4 -4
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/pair-programming/SKILL.md +1202 -1202
- package/.claude/skills/performance-analysis/SKILL.md +563 -563
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -446
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -201
- package/.claude/skills/skill-builder/SKILL.md +910 -910
- package/.claude/skills/sparc-methodology/SKILL.md +2 -2
- package/.claude/skills/stream-chain/SKILL.md +563 -563
- package/.claude/skills/swarm-advanced/SKILL.md +4 -4
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -179
- package/.claude/skills/v3-cli-modernization/SKILL.md +871 -871
- package/.claude/skills/v3-core-implementation/SKILL.md +796 -796
- package/.claude/skills/v3-ddd-architecture/SKILL.md +441 -441
- package/.claude/skills/v3-integration-deep/SKILL.md +240 -240
- package/.claude/skills/v3-mcp-optimization/SKILL.md +776 -776
- package/.claude/skills/v3-memory-unification/SKILL.md +173 -173
- package/.claude/skills/v3-performance-optimization/SKILL.md +389 -389
- package/.claude/skills/v3-security-overhaul/SKILL.md +81 -81
- package/.claude/skills/v3-swarm-coordination/SKILL.md +339 -339
- package/.claude/skills/verification-quality/SKILL.md +649 -649
- package/.claude/skills/worker-benchmarks/skill.md +135 -135
- package/.claude/skills/worker-integration/skill.md +154 -154
- package/.claude/statusline.mjs +109 -109
- package/.claude-plugin/README.md +6 -6
- package/.claude-plugin/docs/INSTALLATION.md +4 -4
- package/.claude-plugin/docs/PLUGIN_SUMMARY.md +5 -5
- package/.claude-plugin/docs/QUICKSTART.md +1 -1
- package/.claude-plugin/docs/STRUCTURE.md +128 -128
- package/.claude-plugin/hooks/hooks.json +74 -74
- package/.claude-plugin/marketplace.json +5 -5
- package/.claude-plugin/plugin.json +4 -4
- package/README.md +148 -148
- package/bin/cli.js +12 -12
- package/bin/npx-repair.js +7 -7
- package/bin/npx-safe-launch.js +9 -9
- package/package.json +115 -114
- package/v3/@claude-flow/cli/README.md +5 -5
- package/v3/@claude-flow/cli/bin/cli.js +156 -156
- package/v3/@claude-flow/cli/bin/mcp-server.js +189 -189
- package/v3/@claude-flow/cli/dist/src/commands/analyze.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/analyze.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/claims.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/claims.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/completions.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/completions.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/config.js +36 -2
- package/v3/@claude-flow/cli/dist/src/commands/daemon.js +54 -7
- package/v3/@claude-flow/cli/dist/src/commands/deployment.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/deployment.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +30 -112
- package/v3/@claude-flow/cli/dist/src/commands/init.js +6 -1
- package/v3/@claude-flow/cli/dist/src/commands/memory.js +30 -30
- package/v3/@claude-flow/cli/dist/src/commands/neural.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/neural.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/orc.js +1 -0
- package/v3/@claude-flow/cli/dist/src/commands/performance.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/performance.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/plugins.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/plugins.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/providers.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/providers.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/route.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/route.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +23 -23
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +29 -29
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +113 -113
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +97 -97
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +51 -51
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +36 -36
- package/v3/@claude-flow/cli/dist/src/commands/security.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/security.js +2 -2
- package/v3/@claude-flow/cli/dist/src/config/moflo-config.d.ts +13 -1
- package/v3/@claude-flow/cli/dist/src/config/moflo-config.js +93 -41
- package/v3/@claude-flow/cli/dist/src/index.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/index.js +2 -2
- package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +2 -2
- package/v3/@claude-flow/cli/dist/src/init/executor.js +3 -3
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +640 -640
- package/v3/@claude-flow/cli/dist/src/init/moflo-init.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/init/moflo-init.js +101 -20
- package/v3/@claude-flow/cli/dist/src/init/settings-generator.js +2 -2
- package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +783 -783
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +30 -13
- package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js +1 -1
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +61 -61
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +2212 -2263
- package/v3/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.js +1 -1
- package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.js +1 -1
- package/v3/@claude-flow/cli/dist/src/services/agent-router.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/services/agent-router.js +86 -7
- package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/v3/@claude-flow/cli/dist/src/services/index.d.ts +1 -3
- package/v3/@claude-flow/cli/dist/src/services/index.js +1 -2
- package/v3/@claude-flow/cli/dist/src/services/learning-service.js +54 -54
- package/v3/@claude-flow/cli/dist/src/services/ruvector-training.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/services/ruvector-training.js +1 -1
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +24 -3
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +123 -12
- package/v3/@claude-flow/cli/dist/src/services/workflow-gate.d.ts +1 -0
- package/v3/@claude-flow/cli/dist/src/services/workflow-gate.js +20 -5
- package/v3/@claude-flow/cli/dist/src/suggest.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/suggest.js +1 -1
- package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +23 -23
- package/v3/@claude-flow/cli/package.json +6 -6
- package/v3/@claude-flow/guidance/README.md +6 -6
- package/v3/@claude-flow/guidance/package.json +1 -1
- package/v3/@claude-flow/memory/README.md +1 -1
- package/v3/@claude-flow/shared/README.md +1 -1
- package/v3/@claude-flow/shared/package.json +42 -42
- package/v3/README.md +3 -3
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* V3 CLI Providers Command
|
|
3
3
|
* Manage AI providers, models, and configurations
|
|
4
4
|
*
|
|
5
|
-
* Created with ❤️ by
|
|
5
|
+
* Created with ❤️ by motailz.com
|
|
6
6
|
*/
|
|
7
7
|
import { output } from '../output.js';
|
|
8
8
|
// List subcommand
|
|
@@ -224,7 +224,7 @@ export const providersCommand = {
|
|
|
224
224
|
'Agentic Flow (optimized ONNX with SIMD)',
|
|
225
225
|
]);
|
|
226
226
|
output.writeln();
|
|
227
|
-
output.writeln(output.dim('Created with ❤️ by
|
|
227
|
+
output.writeln(output.dim('Created with ❤️ by motailz.com'));
|
|
228
228
|
return { success: true };
|
|
229
229
|
},
|
|
230
230
|
};
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Confidence scoring
|
|
9
9
|
* - Learning from feedback
|
|
10
10
|
*
|
|
11
|
-
* Created with love by
|
|
11
|
+
* Created with love by motailz.com
|
|
12
12
|
*/
|
|
13
13
|
import { output } from '../output.js';
|
|
14
14
|
import { createQLearningRouter, isRuvectorAvailable, } from '../ruvector/index.js';
|
|
@@ -181,10 +181,10 @@ const backupSubcommand = {
|
|
|
181
181
|
tables = tablesFilter.split(',').map(t => t.trim());
|
|
182
182
|
}
|
|
183
183
|
else {
|
|
184
|
-
const tablesResult = await client.query(`
|
|
185
|
-
SELECT table_name FROM information_schema.tables
|
|
186
|
-
WHERE table_schema = $1 AND table_type = 'BASE TABLE'
|
|
187
|
-
ORDER BY table_name
|
|
184
|
+
const tablesResult = await client.query(`
|
|
185
|
+
SELECT table_name FROM information_schema.tables
|
|
186
|
+
WHERE table_schema = $1 AND table_type = 'BASE TABLE'
|
|
187
|
+
ORDER BY table_name
|
|
188
188
|
`, [config.schema]);
|
|
189
189
|
tables = tablesResult.rows.map(r => r.table_name);
|
|
190
190
|
}
|
|
@@ -208,16 +208,16 @@ const backupSubcommand = {
|
|
|
208
208
|
spinner.setText(`Exporting ${tableName}...`);
|
|
209
209
|
spinner.start();
|
|
210
210
|
// Get columns
|
|
211
|
-
const columnsResult = await client.query(`
|
|
212
|
-
SELECT column_name, data_type
|
|
213
|
-
FROM information_schema.columns
|
|
214
|
-
WHERE table_schema = $1 AND table_name = $2
|
|
215
|
-
ORDER BY ordinal_position
|
|
211
|
+
const columnsResult = await client.query(`
|
|
212
|
+
SELECT column_name, data_type
|
|
213
|
+
FROM information_schema.columns
|
|
214
|
+
WHERE table_schema = $1 AND table_name = $2
|
|
215
|
+
ORDER BY ordinal_position
|
|
216
216
|
`, [config.schema, tableName]);
|
|
217
217
|
const columns = columnsResult.rows.map(r => r.column_name);
|
|
218
218
|
// Get data
|
|
219
|
-
const dataResult = await client.query(`
|
|
220
|
-
SELECT * FROM ${config.schema}.${tableName}
|
|
219
|
+
const dataResult = await client.query(`
|
|
220
|
+
SELECT * FROM ${config.schema}.${tableName}
|
|
221
221
|
`);
|
|
222
222
|
backupData.tables.push({
|
|
223
223
|
name: tableName,
|
|
@@ -232,14 +232,14 @@ const backupSubcommand = {
|
|
|
232
232
|
if (includeIndexes) {
|
|
233
233
|
spinner.setText('Exporting index definitions...');
|
|
234
234
|
spinner.start();
|
|
235
|
-
const indexResult = await client.query(`
|
|
236
|
-
SELECT pg_get_indexdef(i.oid) as indexdef
|
|
237
|
-
FROM pg_index idx
|
|
238
|
-
JOIN pg_class i ON i.oid = idx.indexrelid
|
|
239
|
-
JOIN pg_class t ON t.oid = idx.indrelid
|
|
240
|
-
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
241
|
-
WHERE n.nspname = $1
|
|
242
|
-
AND NOT idx.indisprimary
|
|
235
|
+
const indexResult = await client.query(`
|
|
236
|
+
SELECT pg_get_indexdef(i.oid) as indexdef
|
|
237
|
+
FROM pg_index idx
|
|
238
|
+
JOIN pg_class i ON i.oid = idx.indexrelid
|
|
239
|
+
JOIN pg_class t ON t.oid = idx.indrelid
|
|
240
|
+
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
241
|
+
WHERE n.nspname = $1
|
|
242
|
+
AND NOT idx.indisprimary
|
|
243
243
|
`, [config.schema]);
|
|
244
244
|
backupData.indexes = indexResult.rows.map(r => r.indexdef);
|
|
245
245
|
spinner.succeed(`Exported ${backupData.indexes.length} index definitions`);
|
|
@@ -565,10 +565,10 @@ const restoreSubcommand = {
|
|
|
565
565
|
return typeof val === 'object' ? JSON.stringify(val) : val;
|
|
566
566
|
});
|
|
567
567
|
try {
|
|
568
|
-
await client.query(`
|
|
569
|
-
INSERT INTO ${config.schema}.${table.name} (${columns.join(', ')})
|
|
570
|
-
VALUES (${values.join(', ')})
|
|
571
|
-
ON CONFLICT DO NOTHING
|
|
568
|
+
await client.query(`
|
|
569
|
+
INSERT INTO ${config.schema}.${table.name} (${columns.join(', ')})
|
|
570
|
+
VALUES (${values.join(', ')})
|
|
571
|
+
ON CONFLICT DO NOTHING
|
|
572
572
|
`, params);
|
|
573
573
|
restoredRows++;
|
|
574
574
|
}
|
|
@@ -229,12 +229,12 @@ export const benchmarkCommand = {
|
|
|
229
229
|
const benchmarkTable = `${config.schema}.benchmark_${Date.now()}`;
|
|
230
230
|
spinner.setText('Creating benchmark table...');
|
|
231
231
|
spinner.start();
|
|
232
|
-
await client.query(`
|
|
233
|
-
CREATE TABLE ${benchmarkTable} (
|
|
234
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
235
|
-
embedding vector(${dimensions}),
|
|
236
|
-
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
237
|
-
)
|
|
232
|
+
await client.query(`
|
|
233
|
+
CREATE TABLE ${benchmarkTable} (
|
|
234
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
235
|
+
embedding vector(${dimensions}),
|
|
236
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
237
|
+
)
|
|
238
238
|
`);
|
|
239
239
|
spinner.succeed('Benchmark table created');
|
|
240
240
|
// Insert vectors
|
|
@@ -250,9 +250,9 @@ export const benchmarkCommand = {
|
|
|
250
250
|
const vector = generateRandomVector(dimensions);
|
|
251
251
|
batchVectors.push(`('[${vector.join(',')}]')`);
|
|
252
252
|
}
|
|
253
|
-
await client.query(`
|
|
254
|
-
INSERT INTO ${benchmarkTable} (embedding)
|
|
255
|
-
VALUES ${batchVectors.join(',')}
|
|
253
|
+
await client.query(`
|
|
254
|
+
INSERT INTO ${benchmarkTable} (embedding)
|
|
255
|
+
VALUES ${batchVectors.join(',')}
|
|
256
256
|
`);
|
|
257
257
|
insertedCount = batchEnd;
|
|
258
258
|
spinner.setText(`Inserting vectors... ${insertedCount.toLocaleString()}/${numVectors.toLocaleString()}`);
|
|
@@ -273,21 +273,21 @@ export const benchmarkCommand = {
|
|
|
273
273
|
const metricOp = metric === 'cosine' ? 'vector_cosine_ops' :
|
|
274
274
|
metric === 'l2' ? 'vector_l2_ops' : 'vector_ip_ops';
|
|
275
275
|
if (indexType === 'hnsw') {
|
|
276
|
-
await client.query(`
|
|
277
|
-
CREATE INDEX idx_benchmark_hnsw
|
|
278
|
-
ON ${benchmarkTable}
|
|
279
|
-
USING hnsw (embedding ${metricOp})
|
|
280
|
-
WITH (m = 16, ef_construction = 64)
|
|
276
|
+
await client.query(`
|
|
277
|
+
CREATE INDEX idx_benchmark_hnsw
|
|
278
|
+
ON ${benchmarkTable}
|
|
279
|
+
USING hnsw (embedding ${metricOp})
|
|
280
|
+
WITH (m = 16, ef_construction = 64)
|
|
281
281
|
`);
|
|
282
282
|
}
|
|
283
283
|
else if (indexType === 'ivfflat') {
|
|
284
284
|
// Need to train IVFFlat with existing data
|
|
285
285
|
const lists = Math.max(100, Math.floor(numVectors / 1000));
|
|
286
|
-
await client.query(`
|
|
287
|
-
CREATE INDEX idx_benchmark_ivfflat
|
|
288
|
-
ON ${benchmarkTable}
|
|
289
|
-
USING ivfflat (embedding ${metricOp})
|
|
290
|
-
WITH (lists = ${lists})
|
|
286
|
+
await client.query(`
|
|
287
|
+
CREATE INDEX idx_benchmark_ivfflat
|
|
288
|
+
ON ${benchmarkTable}
|
|
289
|
+
USING ivfflat (embedding ${metricOp})
|
|
290
|
+
WITH (lists = ${lists})
|
|
291
291
|
`);
|
|
292
292
|
}
|
|
293
293
|
const indexDuration = Date.now() - indexStart;
|
|
@@ -310,11 +310,11 @@ export const benchmarkCommand = {
|
|
|
310
310
|
for (let q = 0; q < numQueries; q++) {
|
|
311
311
|
const queryVector = generateRandomVector(dimensions);
|
|
312
312
|
const queryStart = Date.now();
|
|
313
|
-
await client.query(`
|
|
314
|
-
SELECT id, embedding ${distanceOp} '[${queryVector.join(',')}]' as distance
|
|
315
|
-
FROM ${benchmarkTable}
|
|
316
|
-
ORDER BY embedding ${distanceOp} '[${queryVector.join(',')}]'
|
|
317
|
-
LIMIT ${topK}
|
|
313
|
+
await client.query(`
|
|
314
|
+
SELECT id, embedding ${distanceOp} '[${queryVector.join(',')}]' as distance
|
|
315
|
+
FROM ${benchmarkTable}
|
|
316
|
+
ORDER BY embedding ${distanceOp} '[${queryVector.join(',')}]'
|
|
317
|
+
LIMIT ${topK}
|
|
318
318
|
`);
|
|
319
319
|
queryLatencies.push(Date.now() - queryStart);
|
|
320
320
|
if (q % 10 === 0) {
|
|
@@ -344,11 +344,11 @@ export const benchmarkCommand = {
|
|
|
344
344
|
// Get memory usage
|
|
345
345
|
spinner.setText('Analyzing memory usage...');
|
|
346
346
|
spinner.start();
|
|
347
|
-
const sizeResult = await client.query(`
|
|
348
|
-
SELECT
|
|
349
|
-
pg_relation_size('${benchmarkTable}') as table_size,
|
|
350
|
-
pg_total_relation_size('${benchmarkTable}') as total_size,
|
|
351
|
-
pg_indexes_size('${benchmarkTable}') as index_size
|
|
347
|
+
const sizeResult = await client.query(`
|
|
348
|
+
SELECT
|
|
349
|
+
pg_relation_size('${benchmarkTable}') as table_size,
|
|
350
|
+
pg_total_relation_size('${benchmarkTable}') as total_size,
|
|
351
|
+
pg_indexes_size('${benchmarkTable}') as index_size
|
|
352
352
|
`);
|
|
353
353
|
const tableSize = parseInt(sizeResult.rows[0].table_size, 10);
|
|
354
354
|
const totalSize = parseInt(sizeResult.rows[0].total_size, 10);
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* npx claude-flow ruvector import --from-memory
|
|
8
8
|
* npx claude-flow ruvector import --input data.json --batch-size 100
|
|
9
9
|
*
|
|
10
|
-
* Created with care by
|
|
10
|
+
* Created with care by motailz.com
|
|
11
11
|
*/
|
|
12
12
|
import { output } from '../../output.js';
|
|
13
13
|
import * as fs from 'fs';
|
|
@@ -204,8 +204,8 @@ export const initCommand = {
|
|
|
204
204
|
// Check pgvector extension
|
|
205
205
|
spinner.setText('Checking pgvector extension...');
|
|
206
206
|
spinner.start();
|
|
207
|
-
const extensionResult = await client.query(`
|
|
208
|
-
SELECT extversion FROM pg_extension WHERE extname = 'vector'
|
|
207
|
+
const extensionResult = await client.query(`
|
|
208
|
+
SELECT extversion FROM pg_extension WHERE extname = 'vector'
|
|
209
209
|
`);
|
|
210
210
|
if (extensionResult.rows.length === 0) {
|
|
211
211
|
spinner.succeed('pgvector not installed, attempting to create...');
|
|
@@ -239,153 +239,153 @@ export const initCommand = {
|
|
|
239
239
|
spinner.setText('Creating RuVector tables...');
|
|
240
240
|
spinner.start();
|
|
241
241
|
// Vector embeddings table
|
|
242
|
-
await client.query(`
|
|
243
|
-
CREATE TABLE IF NOT EXISTS ${config.schema}.embeddings (
|
|
244
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
245
|
-
key VARCHAR(512) NOT NULL,
|
|
246
|
-
namespace VARCHAR(128) NOT NULL DEFAULT 'default',
|
|
247
|
-
content TEXT,
|
|
248
|
-
embedding vector(${dimensions}),
|
|
249
|
-
metadata JSONB DEFAULT '{}',
|
|
250
|
-
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
251
|
-
updated_at TIMESTAMPTZ DEFAULT NOW(),
|
|
252
|
-
UNIQUE(key, namespace)
|
|
253
|
-
)
|
|
242
|
+
await client.query(`
|
|
243
|
+
CREATE TABLE IF NOT EXISTS ${config.schema}.embeddings (
|
|
244
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
245
|
+
key VARCHAR(512) NOT NULL,
|
|
246
|
+
namespace VARCHAR(128) NOT NULL DEFAULT 'default',
|
|
247
|
+
content TEXT,
|
|
248
|
+
embedding vector(${dimensions}),
|
|
249
|
+
metadata JSONB DEFAULT '{}',
|
|
250
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
251
|
+
updated_at TIMESTAMPTZ DEFAULT NOW(),
|
|
252
|
+
UNIQUE(key, namespace)
|
|
253
|
+
)
|
|
254
254
|
`);
|
|
255
255
|
// Attention patterns table
|
|
256
|
-
await client.query(`
|
|
257
|
-
CREATE TABLE IF NOT EXISTS ${config.schema}.attention_patterns (
|
|
258
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
259
|
-
pattern_name VARCHAR(256) NOT NULL,
|
|
260
|
-
query_embedding vector(${dimensions}),
|
|
261
|
-
key_embedding vector(${dimensions}),
|
|
262
|
-
value_embedding vector(${dimensions}),
|
|
263
|
-
attention_weights JSONB,
|
|
264
|
-
context TEXT,
|
|
265
|
-
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
266
|
-
)
|
|
256
|
+
await client.query(`
|
|
257
|
+
CREATE TABLE IF NOT EXISTS ${config.schema}.attention_patterns (
|
|
258
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
259
|
+
pattern_name VARCHAR(256) NOT NULL,
|
|
260
|
+
query_embedding vector(${dimensions}),
|
|
261
|
+
key_embedding vector(${dimensions}),
|
|
262
|
+
value_embedding vector(${dimensions}),
|
|
263
|
+
attention_weights JSONB,
|
|
264
|
+
context TEXT,
|
|
265
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
266
|
+
)
|
|
267
267
|
`);
|
|
268
268
|
// GNN adjacency table
|
|
269
|
-
await client.query(`
|
|
270
|
-
CREATE TABLE IF NOT EXISTS ${config.schema}.gnn_edges (
|
|
271
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
272
|
-
source_id UUID NOT NULL,
|
|
273
|
-
target_id UUID NOT NULL,
|
|
274
|
-
edge_type VARCHAR(64) NOT NULL DEFAULT 'related',
|
|
275
|
-
weight FLOAT DEFAULT 1.0,
|
|
276
|
-
metadata JSONB DEFAULT '{}',
|
|
277
|
-
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
278
|
-
UNIQUE(source_id, target_id, edge_type)
|
|
279
|
-
)
|
|
269
|
+
await client.query(`
|
|
270
|
+
CREATE TABLE IF NOT EXISTS ${config.schema}.gnn_edges (
|
|
271
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
272
|
+
source_id UUID NOT NULL,
|
|
273
|
+
target_id UUID NOT NULL,
|
|
274
|
+
edge_type VARCHAR(64) NOT NULL DEFAULT 'related',
|
|
275
|
+
weight FLOAT DEFAULT 1.0,
|
|
276
|
+
metadata JSONB DEFAULT '{}',
|
|
277
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
278
|
+
UNIQUE(source_id, target_id, edge_type)
|
|
279
|
+
)
|
|
280
280
|
`);
|
|
281
281
|
// Hyperbolic embeddings table (Poincare ball)
|
|
282
|
-
await client.query(`
|
|
283
|
-
CREATE TABLE IF NOT EXISTS ${config.schema}.hyperbolic_embeddings (
|
|
284
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
285
|
-
entity_id UUID NOT NULL,
|
|
286
|
-
embedding vector(${dimensions}),
|
|
287
|
-
curvature FLOAT DEFAULT -1.0,
|
|
288
|
-
hierarchy_level INTEGER DEFAULT 0,
|
|
289
|
-
parent_id UUID,
|
|
290
|
-
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
291
|
-
)
|
|
282
|
+
await client.query(`
|
|
283
|
+
CREATE TABLE IF NOT EXISTS ${config.schema}.hyperbolic_embeddings (
|
|
284
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
285
|
+
entity_id UUID NOT NULL,
|
|
286
|
+
embedding vector(${dimensions}),
|
|
287
|
+
curvature FLOAT DEFAULT -1.0,
|
|
288
|
+
hierarchy_level INTEGER DEFAULT 0,
|
|
289
|
+
parent_id UUID,
|
|
290
|
+
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
291
|
+
)
|
|
292
292
|
`);
|
|
293
293
|
// Migrations tracking table
|
|
294
|
-
await client.query(`
|
|
295
|
-
CREATE TABLE IF NOT EXISTS ${config.schema}.migrations (
|
|
296
|
-
id SERIAL PRIMARY KEY,
|
|
297
|
-
version VARCHAR(64) NOT NULL UNIQUE,
|
|
298
|
-
name VARCHAR(256) NOT NULL,
|
|
299
|
-
applied_at TIMESTAMPTZ DEFAULT NOW(),
|
|
300
|
-
checksum VARCHAR(64)
|
|
301
|
-
)
|
|
294
|
+
await client.query(`
|
|
295
|
+
CREATE TABLE IF NOT EXISTS ${config.schema}.migrations (
|
|
296
|
+
id SERIAL PRIMARY KEY,
|
|
297
|
+
version VARCHAR(64) NOT NULL UNIQUE,
|
|
298
|
+
name VARCHAR(256) NOT NULL,
|
|
299
|
+
applied_at TIMESTAMPTZ DEFAULT NOW(),
|
|
300
|
+
checksum VARCHAR(64)
|
|
301
|
+
)
|
|
302
302
|
`);
|
|
303
303
|
// RuVector metadata table
|
|
304
|
-
await client.query(`
|
|
305
|
-
CREATE TABLE IF NOT EXISTS ${config.schema}.metadata (
|
|
306
|
-
key VARCHAR(128) PRIMARY KEY,
|
|
307
|
-
value JSONB NOT NULL,
|
|
308
|
-
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
309
|
-
)
|
|
304
|
+
await client.query(`
|
|
305
|
+
CREATE TABLE IF NOT EXISTS ${config.schema}.metadata (
|
|
306
|
+
key VARCHAR(128) PRIMARY KEY,
|
|
307
|
+
value JSONB NOT NULL,
|
|
308
|
+
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
309
|
+
)
|
|
310
310
|
`);
|
|
311
311
|
// Store initialization metadata
|
|
312
|
-
await client.query(`
|
|
313
|
-
INSERT INTO ${config.schema}.metadata (key, value)
|
|
314
|
-
VALUES ('ruvector_version', '"1.0.0"')
|
|
315
|
-
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value, updated_at = NOW()
|
|
312
|
+
await client.query(`
|
|
313
|
+
INSERT INTO ${config.schema}.metadata (key, value)
|
|
314
|
+
VALUES ('ruvector_version', '"1.0.0"')
|
|
315
|
+
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value, updated_at = NOW()
|
|
316
316
|
`);
|
|
317
|
-
await client.query(`
|
|
318
|
-
INSERT INTO ${config.schema}.metadata (key, value)
|
|
319
|
-
VALUES ('dimensions', '${dimensions}')
|
|
320
|
-
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value, updated_at = NOW()
|
|
317
|
+
await client.query(`
|
|
318
|
+
INSERT INTO ${config.schema}.metadata (key, value)
|
|
319
|
+
VALUES ('dimensions', '${dimensions}')
|
|
320
|
+
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value, updated_at = NOW()
|
|
321
321
|
`);
|
|
322
|
-
await client.query(`
|
|
323
|
-
INSERT INTO ${config.schema}.metadata (key, value)
|
|
324
|
-
VALUES ('initialized_at', '"${new Date().toISOString()}"')
|
|
325
|
-
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value, updated_at = NOW()
|
|
322
|
+
await client.query(`
|
|
323
|
+
INSERT INTO ${config.schema}.metadata (key, value)
|
|
324
|
+
VALUES ('initialized_at', '"${new Date().toISOString()}"')
|
|
325
|
+
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value, updated_at = NOW()
|
|
326
326
|
`);
|
|
327
327
|
spinner.succeed('RuVector tables created');
|
|
328
328
|
// Create indexes
|
|
329
329
|
spinner.setText(`Creating ${indexType.toUpperCase()} indexes...`);
|
|
330
330
|
spinner.start();
|
|
331
331
|
if (indexType === 'hnsw') {
|
|
332
|
-
await client.query(`
|
|
333
|
-
CREATE INDEX IF NOT EXISTS idx_embeddings_vector_hnsw
|
|
334
|
-
ON ${config.schema}.embeddings
|
|
335
|
-
USING hnsw (embedding vector_cosine_ops)
|
|
336
|
-
WITH (m = 16, ef_construction = 64)
|
|
332
|
+
await client.query(`
|
|
333
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_vector_hnsw
|
|
334
|
+
ON ${config.schema}.embeddings
|
|
335
|
+
USING hnsw (embedding vector_cosine_ops)
|
|
336
|
+
WITH (m = 16, ef_construction = 64)
|
|
337
337
|
`);
|
|
338
|
-
await client.query(`
|
|
339
|
-
CREATE INDEX IF NOT EXISTS idx_attention_query_hnsw
|
|
340
|
-
ON ${config.schema}.attention_patterns
|
|
341
|
-
USING hnsw (query_embedding vector_cosine_ops)
|
|
342
|
-
WITH (m = 16, ef_construction = 64)
|
|
338
|
+
await client.query(`
|
|
339
|
+
CREATE INDEX IF NOT EXISTS idx_attention_query_hnsw
|
|
340
|
+
ON ${config.schema}.attention_patterns
|
|
341
|
+
USING hnsw (query_embedding vector_cosine_ops)
|
|
342
|
+
WITH (m = 16, ef_construction = 64)
|
|
343
343
|
`);
|
|
344
|
-
await client.query(`
|
|
345
|
-
CREATE INDEX IF NOT EXISTS idx_hyperbolic_embedding_hnsw
|
|
346
|
-
ON ${config.schema}.hyperbolic_embeddings
|
|
347
|
-
USING hnsw (embedding vector_cosine_ops)
|
|
348
|
-
WITH (m = 16, ef_construction = 64)
|
|
344
|
+
await client.query(`
|
|
345
|
+
CREATE INDEX IF NOT EXISTS idx_hyperbolic_embedding_hnsw
|
|
346
|
+
ON ${config.schema}.hyperbolic_embeddings
|
|
347
|
+
USING hnsw (embedding vector_cosine_ops)
|
|
348
|
+
WITH (m = 16, ef_construction = 64)
|
|
349
349
|
`);
|
|
350
350
|
}
|
|
351
351
|
else {
|
|
352
352
|
// IVFFlat indexes
|
|
353
|
-
await client.query(`
|
|
354
|
-
CREATE INDEX IF NOT EXISTS idx_embeddings_vector_ivfflat
|
|
355
|
-
ON ${config.schema}.embeddings
|
|
356
|
-
USING ivfflat (embedding vector_cosine_ops)
|
|
357
|
-
WITH (lists = 100)
|
|
353
|
+
await client.query(`
|
|
354
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_vector_ivfflat
|
|
355
|
+
ON ${config.schema}.embeddings
|
|
356
|
+
USING ivfflat (embedding vector_cosine_ops)
|
|
357
|
+
WITH (lists = 100)
|
|
358
358
|
`);
|
|
359
|
-
await client.query(`
|
|
360
|
-
CREATE INDEX IF NOT EXISTS idx_attention_query_ivfflat
|
|
361
|
-
ON ${config.schema}.attention_patterns
|
|
362
|
-
USING ivfflat (query_embedding vector_cosine_ops)
|
|
363
|
-
WITH (lists = 100)
|
|
359
|
+
await client.query(`
|
|
360
|
+
CREATE INDEX IF NOT EXISTS idx_attention_query_ivfflat
|
|
361
|
+
ON ${config.schema}.attention_patterns
|
|
362
|
+
USING ivfflat (query_embedding vector_cosine_ops)
|
|
363
|
+
WITH (lists = 100)
|
|
364
364
|
`);
|
|
365
365
|
}
|
|
366
366
|
// Additional standard indexes
|
|
367
|
-
await client.query(`
|
|
368
|
-
CREATE INDEX IF NOT EXISTS idx_embeddings_namespace
|
|
369
|
-
ON ${config.schema}.embeddings (namespace)
|
|
367
|
+
await client.query(`
|
|
368
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_namespace
|
|
369
|
+
ON ${config.schema}.embeddings (namespace)
|
|
370
370
|
`);
|
|
371
|
-
await client.query(`
|
|
372
|
-
CREATE INDEX IF NOT EXISTS idx_embeddings_key
|
|
373
|
-
ON ${config.schema}.embeddings (key)
|
|
371
|
+
await client.query(`
|
|
372
|
+
CREATE INDEX IF NOT EXISTS idx_embeddings_key
|
|
373
|
+
ON ${config.schema}.embeddings (key)
|
|
374
374
|
`);
|
|
375
|
-
await client.query(`
|
|
376
|
-
CREATE INDEX IF NOT EXISTS idx_gnn_source
|
|
377
|
-
ON ${config.schema}.gnn_edges (source_id)
|
|
375
|
+
await client.query(`
|
|
376
|
+
CREATE INDEX IF NOT EXISTS idx_gnn_source
|
|
377
|
+
ON ${config.schema}.gnn_edges (source_id)
|
|
378
378
|
`);
|
|
379
|
-
await client.query(`
|
|
380
|
-
CREATE INDEX IF NOT EXISTS idx_gnn_target
|
|
381
|
-
ON ${config.schema}.gnn_edges (target_id)
|
|
379
|
+
await client.query(`
|
|
380
|
+
CREATE INDEX IF NOT EXISTS idx_gnn_target
|
|
381
|
+
ON ${config.schema}.gnn_edges (target_id)
|
|
382
382
|
`);
|
|
383
383
|
spinner.succeed(`${indexType.toUpperCase()} indexes created`);
|
|
384
384
|
// Record initial migration
|
|
385
|
-
await client.query(`
|
|
386
|
-
INSERT INTO ${config.schema}.migrations (version, name)
|
|
387
|
-
VALUES ('1.0.0', 'Initial RuVector setup')
|
|
388
|
-
ON CONFLICT (version) DO NOTHING
|
|
385
|
+
await client.query(`
|
|
386
|
+
INSERT INTO ${config.schema}.migrations (version, name)
|
|
387
|
+
VALUES ('1.0.0', 'Initial RuVector setup')
|
|
388
|
+
ON CONFLICT (version) DO NOTHING
|
|
389
389
|
`);
|
|
390
390
|
await client.end();
|
|
391
391
|
output.writeln();
|