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
|
@@ -17,116 +17,116 @@ const MIGRATIONS = [
|
|
|
17
17
|
{
|
|
18
18
|
version: '1.1.0',
|
|
19
19
|
name: 'Add full-text search',
|
|
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;
|
|
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
28
|
`,
|
|
29
|
-
down: `
|
|
30
|
-
DROP INDEX IF EXISTS {{schema}}.idx_embeddings_content_fts;
|
|
31
|
-
ALTER TABLE {{schema}}.embeddings DROP COLUMN IF EXISTS search_vector;
|
|
29
|
+
down: `
|
|
30
|
+
DROP INDEX IF EXISTS {{schema}}.idx_embeddings_content_fts;
|
|
31
|
+
ALTER TABLE {{schema}}.embeddings DROP COLUMN IF EXISTS search_vector;
|
|
32
32
|
`,
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
version: '1.2.0',
|
|
36
36
|
name: 'Add embedding statistics',
|
|
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);
|
|
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
49
|
`,
|
|
50
|
-
down: `
|
|
51
|
-
DROP TABLE IF EXISTS {{schema}}.embedding_stats;
|
|
50
|
+
down: `
|
|
51
|
+
DROP TABLE IF EXISTS {{schema}}.embedding_stats;
|
|
52
52
|
`,
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
version: '1.3.0',
|
|
56
56
|
name: 'Add query cache',
|
|
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);
|
|
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
74
|
`,
|
|
75
|
-
down: `
|
|
76
|
-
DROP TABLE IF EXISTS {{schema}}.query_cache;
|
|
75
|
+
down: `
|
|
76
|
+
DROP TABLE IF EXISTS {{schema}}.query_cache;
|
|
77
77
|
`,
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
version: '1.4.0',
|
|
81
81
|
name: 'Add batch operations support',
|
|
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);
|
|
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
98
|
`,
|
|
99
|
-
down: `
|
|
100
|
-
DROP TABLE IF EXISTS {{schema}}.batch_jobs;
|
|
99
|
+
down: `
|
|
100
|
+
DROP TABLE IF EXISTS {{schema}}.batch_jobs;
|
|
101
101
|
`,
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
104
|
version: '1.5.0',
|
|
105
105
|
name: 'Add neural pattern learning',
|
|
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);
|
|
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
127
|
`,
|
|
128
|
-
down: `
|
|
129
|
-
DROP TABLE IF EXISTS {{schema}}.neural_patterns;
|
|
128
|
+
down: `
|
|
129
|
+
DROP TABLE IF EXISTS {{schema}}.neural_patterns;
|
|
130
130
|
`,
|
|
131
131
|
},
|
|
132
132
|
];
|
|
@@ -287,8 +287,8 @@ export const migrateCommand = {
|
|
|
287
287
|
// Check if schema and migrations table exist
|
|
288
288
|
spinner.setText('Checking migration status...');
|
|
289
289
|
spinner.start();
|
|
290
|
-
const schemaExists = await client.query(`
|
|
291
|
-
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
|
|
290
|
+
const schemaExists = await client.query(`
|
|
291
|
+
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
|
|
292
292
|
`, [config.schema]);
|
|
293
293
|
if (schemaExists.rows.length === 0) {
|
|
294
294
|
spinner.fail(`Schema "${config.schema}" not found`);
|
|
@@ -297,10 +297,10 @@ export const migrateCommand = {
|
|
|
297
297
|
return { success: false, exitCode: 1 };
|
|
298
298
|
}
|
|
299
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
|
|
300
|
+
const appliedResult = await client.query(`
|
|
301
|
+
SELECT version, name, applied_at, checksum
|
|
302
|
+
FROM ${config.schema}.migrations
|
|
303
|
+
ORDER BY version ASC
|
|
304
304
|
`);
|
|
305
305
|
const appliedVersions = new Set(appliedResult.rows.map(r => r.version));
|
|
306
306
|
spinner.succeed(`Found ${appliedVersions.size} applied migrations`);
|
|
@@ -426,15 +426,15 @@ export const migrateCommand = {
|
|
|
426
426
|
// Update migrations table
|
|
427
427
|
if (direction === 'up') {
|
|
428
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()
|
|
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
433
|
`, [migration.version, migration.name, checksum]);
|
|
434
434
|
}
|
|
435
435
|
else {
|
|
436
|
-
await client.query(`
|
|
437
|
-
DELETE FROM ${config.schema}.migrations WHERE version = $1
|
|
436
|
+
await client.query(`
|
|
437
|
+
DELETE FROM ${config.schema}.migrations WHERE version = $1
|
|
438
438
|
`, [migration.version]);
|
|
439
439
|
}
|
|
440
440
|
await client.query('COMMIT');
|
|
@@ -145,8 +145,8 @@ export const optimizeCommand = {
|
|
|
145
145
|
await client.connect();
|
|
146
146
|
spinner.succeed('Connected to PostgreSQL');
|
|
147
147
|
// Check schema exists
|
|
148
|
-
const schemaResult = await client.query(`
|
|
149
|
-
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
|
|
148
|
+
const schemaResult = await client.query(`
|
|
149
|
+
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
|
|
150
150
|
`, [config.schema]);
|
|
151
151
|
if (schemaResult.rows.length === 0) {
|
|
152
152
|
output.printError(`Schema "${config.schema}" not found`);
|
|
@@ -157,9 +157,9 @@ export const optimizeCommand = {
|
|
|
157
157
|
if (runVacuum) {
|
|
158
158
|
spinner.setText('Running VACUUM ANALYZE...');
|
|
159
159
|
spinner.start();
|
|
160
|
-
const tables = await client.query(`
|
|
161
|
-
SELECT table_name FROM information_schema.tables
|
|
162
|
-
WHERE table_schema = $1 AND table_type = 'BASE TABLE'
|
|
160
|
+
const tables = await client.query(`
|
|
161
|
+
SELECT table_name FROM information_schema.tables
|
|
162
|
+
WHERE table_schema = $1 AND table_type = 'BASE TABLE'
|
|
163
163
|
`, [config.schema]);
|
|
164
164
|
for (const row of tables.rows) {
|
|
165
165
|
await client.query(`VACUUM ANALYZE ${config.schema}.${row.table_name}`);
|
|
@@ -182,17 +182,17 @@ export const optimizeCommand = {
|
|
|
182
182
|
// Analyze table statistics
|
|
183
183
|
spinner.setText('Analyzing table statistics...');
|
|
184
184
|
spinner.start();
|
|
185
|
-
const tableStatsResult = await client.query(`
|
|
186
|
-
SELECT
|
|
187
|
-
relname as table_name,
|
|
188
|
-
n_live_tup as live_rows,
|
|
189
|
-
n_dead_tup as dead_rows,
|
|
190
|
-
last_vacuum,
|
|
191
|
-
last_autovacuum,
|
|
192
|
-
last_analyze,
|
|
193
|
-
last_autoanalyze
|
|
194
|
-
FROM pg_stat_user_tables
|
|
195
|
-
WHERE schemaname = $1
|
|
185
|
+
const tableStatsResult = await client.query(`
|
|
186
|
+
SELECT
|
|
187
|
+
relname as table_name,
|
|
188
|
+
n_live_tup as live_rows,
|
|
189
|
+
n_dead_tup as dead_rows,
|
|
190
|
+
last_vacuum,
|
|
191
|
+
last_autovacuum,
|
|
192
|
+
last_analyze,
|
|
193
|
+
last_autoanalyze
|
|
194
|
+
FROM pg_stat_user_tables
|
|
195
|
+
WHERE schemaname = $1
|
|
196
196
|
`, [config.schema]);
|
|
197
197
|
for (const row of tableStatsResult.rows) {
|
|
198
198
|
const deadRatio = row.live_rows > 0 ? row.dead_rows / row.live_rows : 0;
|
|
@@ -223,25 +223,25 @@ export const optimizeCommand = {
|
|
|
223
223
|
// Analyze indexes
|
|
224
224
|
spinner.setText('Analyzing index health...');
|
|
225
225
|
spinner.start();
|
|
226
|
-
const indexStatsResult = await client.query(`
|
|
227
|
-
SELECT
|
|
228
|
-
i.relname as index_name,
|
|
229
|
-
t.relname as table_name,
|
|
230
|
-
am.amname as index_type,
|
|
231
|
-
pg_relation_size(i.oid) as index_size,
|
|
232
|
-
idx.indisvalid as is_valid,
|
|
233
|
-
idx.indisready as is_ready,
|
|
234
|
-
idx.indislive as is_live,
|
|
235
|
-
pg_stat_user_indexes.idx_scan as scans,
|
|
236
|
-
pg_stat_user_indexes.idx_tup_read as tuples_read,
|
|
237
|
-
pg_stat_user_indexes.idx_tup_fetch as tuples_fetched
|
|
238
|
-
FROM pg_index idx
|
|
239
|
-
JOIN pg_class i ON i.oid = idx.indexrelid
|
|
240
|
-
JOIN pg_class t ON t.oid = idx.indrelid
|
|
241
|
-
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
242
|
-
JOIN pg_am am ON am.oid = i.relam
|
|
243
|
-
LEFT JOIN pg_stat_user_indexes ON pg_stat_user_indexes.indexrelid = i.oid
|
|
244
|
-
WHERE n.nspname = $1
|
|
226
|
+
const indexStatsResult = await client.query(`
|
|
227
|
+
SELECT
|
|
228
|
+
i.relname as index_name,
|
|
229
|
+
t.relname as table_name,
|
|
230
|
+
am.amname as index_type,
|
|
231
|
+
pg_relation_size(i.oid) as index_size,
|
|
232
|
+
idx.indisvalid as is_valid,
|
|
233
|
+
idx.indisready as is_ready,
|
|
234
|
+
idx.indislive as is_live,
|
|
235
|
+
pg_stat_user_indexes.idx_scan as scans,
|
|
236
|
+
pg_stat_user_indexes.idx_tup_read as tuples_read,
|
|
237
|
+
pg_stat_user_indexes.idx_tup_fetch as tuples_fetched
|
|
238
|
+
FROM pg_index idx
|
|
239
|
+
JOIN pg_class i ON i.oid = idx.indexrelid
|
|
240
|
+
JOIN pg_class t ON t.oid = idx.indrelid
|
|
241
|
+
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
242
|
+
JOIN pg_am am ON am.oid = i.relam
|
|
243
|
+
LEFT JOIN pg_stat_user_indexes ON pg_stat_user_indexes.indexrelid = i.oid
|
|
244
|
+
WHERE n.nspname = $1
|
|
245
245
|
`, [config.schema]);
|
|
246
246
|
for (const row of indexStatsResult.rows) {
|
|
247
247
|
// Check for invalid indexes
|
|
@@ -277,11 +277,11 @@ export const optimizeCommand = {
|
|
|
277
277
|
const vectorIndexes = indexStatsResult.rows.filter(r => r.index_type === 'hnsw' || r.index_type === 'ivfflat');
|
|
278
278
|
for (const idx of vectorIndexes) {
|
|
279
279
|
// Get index options
|
|
280
|
-
const optionsResult = await client.query(`
|
|
281
|
-
SELECT reloptions FROM pg_class
|
|
282
|
-
WHERE relname = $1 AND relnamespace = (
|
|
283
|
-
SELECT oid FROM pg_namespace WHERE nspname = $2
|
|
284
|
-
)
|
|
280
|
+
const optionsResult = await client.query(`
|
|
281
|
+
SELECT reloptions FROM pg_class
|
|
282
|
+
WHERE relname = $1 AND relnamespace = (
|
|
283
|
+
SELECT oid FROM pg_namespace WHERE nspname = $2
|
|
284
|
+
)
|
|
285
285
|
`, [idx.index_name, config.schema]);
|
|
286
286
|
const options = optionsResult.rows[0]?.reloptions || [];
|
|
287
287
|
if (idx.index_type === 'hnsw') {
|
|
@@ -291,8 +291,8 @@ export const optimizeCommand = {
|
|
|
291
291
|
const mValue = m ? parseInt(m.split('=')[1], 10) : 16;
|
|
292
292
|
const efValue = efConstruction ? parseInt(efConstruction.split('=')[1], 10) : 64;
|
|
293
293
|
// Get table row count
|
|
294
|
-
const countResult = await client.query(`
|
|
295
|
-
SELECT count(*) as cnt FROM ${config.schema}.${idx.table_name}
|
|
294
|
+
const countResult = await client.query(`
|
|
295
|
+
SELECT count(*) as cnt FROM ${config.schema}.${idx.table_name}
|
|
296
296
|
`);
|
|
297
297
|
const rowCount = parseInt(countResult.rows[0].cnt, 10);
|
|
298
298
|
// Recommend higher ef_construction for large datasets
|
|
@@ -323,8 +323,8 @@ export const optimizeCommand = {
|
|
|
323
323
|
const lists = options.find((o) => o.startsWith('lists='));
|
|
324
324
|
const listsValue = lists ? parseInt(lists.split('=')[1], 10) : 100;
|
|
325
325
|
// Get table row count
|
|
326
|
-
const countResult = await client.query(`
|
|
327
|
-
SELECT count(*) as cnt FROM ${config.schema}.${idx.table_name}
|
|
326
|
+
const countResult = await client.query(`
|
|
327
|
+
SELECT count(*) as cnt FROM ${config.schema}.${idx.table_name}
|
|
328
328
|
`);
|
|
329
329
|
const rowCount = parseInt(countResult.rows[0].cnt, 10);
|
|
330
330
|
// Recommended lists = sqrt(n)
|
|
@@ -345,13 +345,13 @@ export const optimizeCommand = {
|
|
|
345
345
|
// Check memory settings
|
|
346
346
|
spinner.setText('Checking PostgreSQL settings...');
|
|
347
347
|
spinner.start();
|
|
348
|
-
const settingsResult = await client.query(`
|
|
349
|
-
SELECT name, setting, unit, context
|
|
350
|
-
FROM pg_settings
|
|
351
|
-
WHERE name IN (
|
|
352
|
-
'shared_buffers', 'effective_cache_size', 'work_mem',
|
|
353
|
-
'maintenance_work_mem', 'max_parallel_workers_per_gather'
|
|
354
|
-
)
|
|
348
|
+
const settingsResult = await client.query(`
|
|
349
|
+
SELECT name, setting, unit, context
|
|
350
|
+
FROM pg_settings
|
|
351
|
+
WHERE name IN (
|
|
352
|
+
'shared_buffers', 'effective_cache_size', 'work_mem',
|
|
353
|
+
'maintenance_work_mem', 'max_parallel_workers_per_gather'
|
|
354
|
+
)
|
|
355
355
|
`);
|
|
356
356
|
const settings = {};
|
|
357
357
|
for (const row of settingsResult.rows) {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* npx claude-flow ruvector setup --output /path/to/dir
|
|
8
8
|
* npx claude-flow ruvector setup --print # Print to stdout only
|
|
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';
|
|
@@ -646,7 +646,7 @@ docker-compose up -d
|
|
|
646
646
|
|
|
647
647
|
## Learn More
|
|
648
648
|
- [RuVector Docker Hub](https://hub.docker.com/r/ruvnet/ruvector-postgres)
|
|
649
|
-
- [Claude-Flow Documentation](https://github.com/
|
|
649
|
+
- [Claude-Flow Documentation](https://github.com/eric-cielo/moflo)
|
|
650
650
|
`;
|
|
651
651
|
/**
|
|
652
652
|
* RuVector Setup command - outputs Docker files and SQL
|
|
@@ -175,8 +175,8 @@ export const statusCommand = {
|
|
|
175
175
|
if (!jsonOutput)
|
|
176
176
|
spinner.setText('Checking pgvector extension...');
|
|
177
177
|
spinner.start();
|
|
178
|
-
const extensionResult = await client.query(`
|
|
179
|
-
SELECT extversion FROM pg_extension WHERE extname = 'vector'
|
|
178
|
+
const extensionResult = await client.query(`
|
|
179
|
+
SELECT extversion FROM pg_extension WHERE extname = 'vector'
|
|
180
180
|
`);
|
|
181
181
|
if (extensionResult.rows.length === 0) {
|
|
182
182
|
statusData.pgvector = { installed: false };
|
|
@@ -197,8 +197,8 @@ export const statusCommand = {
|
|
|
197
197
|
if (!jsonOutput)
|
|
198
198
|
spinner.setText(`Checking schema "${config.schema}"...`);
|
|
199
199
|
spinner.start();
|
|
200
|
-
const schemaResult = await client.query(`
|
|
201
|
-
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
|
|
200
|
+
const schemaResult = await client.query(`
|
|
201
|
+
SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1
|
|
202
202
|
`, [config.schema]);
|
|
203
203
|
if (schemaResult.rows.length === 0) {
|
|
204
204
|
statusData.ruvector = { initialized: false };
|
|
@@ -219,8 +219,8 @@ export const statusCommand = {
|
|
|
219
219
|
spinner.setText('Loading RuVector metadata...');
|
|
220
220
|
spinner.start();
|
|
221
221
|
try {
|
|
222
|
-
const metadataResult = await client.query(`
|
|
223
|
-
SELECT key, value FROM ${config.schema}.metadata
|
|
222
|
+
const metadataResult = await client.query(`
|
|
223
|
+
SELECT key, value FROM ${config.schema}.metadata
|
|
224
224
|
`);
|
|
225
225
|
const metadata = {};
|
|
226
226
|
for (const row of metadataResult.rows) {
|
|
@@ -244,23 +244,23 @@ export const statusCommand = {
|
|
|
244
244
|
if (!jsonOutput)
|
|
245
245
|
spinner.setText('Gathering table statistics...');
|
|
246
246
|
spinner.start();
|
|
247
|
-
const tablesResult = await client.query(`
|
|
248
|
-
SELECT
|
|
249
|
-
t.table_name,
|
|
250
|
-
pg_relation_size(quote_ident(t.table_schema) || '.' || quote_ident(t.table_name)) as table_size,
|
|
251
|
-
pg_total_relation_size(quote_ident(t.table_schema) || '.' || quote_ident(t.table_name)) as total_size,
|
|
252
|
-
(SELECT count(*) FROM ${config.schema}.embeddings) as row_count
|
|
253
|
-
FROM information_schema.tables t
|
|
254
|
-
WHERE t.table_schema = $1
|
|
255
|
-
ORDER BY t.table_name
|
|
247
|
+
const tablesResult = await client.query(`
|
|
248
|
+
SELECT
|
|
249
|
+
t.table_name,
|
|
250
|
+
pg_relation_size(quote_ident(t.table_schema) || '.' || quote_ident(t.table_name)) as table_size,
|
|
251
|
+
pg_total_relation_size(quote_ident(t.table_schema) || '.' || quote_ident(t.table_name)) as total_size,
|
|
252
|
+
(SELECT count(*) FROM ${config.schema}.embeddings) as row_count
|
|
253
|
+
FROM information_schema.tables t
|
|
254
|
+
WHERE t.table_schema = $1
|
|
255
|
+
ORDER BY t.table_name
|
|
256
256
|
`, [config.schema]);
|
|
257
257
|
const tableStats = [];
|
|
258
258
|
for (const row of tablesResult.rows) {
|
|
259
259
|
// Get row count for each table
|
|
260
260
|
let rowCount = 0;
|
|
261
261
|
try {
|
|
262
|
-
const countResult = await client.query(`
|
|
263
|
-
SELECT count(*) as cnt FROM ${config.schema}.${row.table_name}
|
|
262
|
+
const countResult = await client.query(`
|
|
263
|
+
SELECT count(*) as cnt FROM ${config.schema}.${row.table_name}
|
|
264
264
|
`);
|
|
265
265
|
rowCount = parseInt(countResult.rows[0].cnt, 10);
|
|
266
266
|
}
|
|
@@ -282,21 +282,21 @@ export const statusCommand = {
|
|
|
282
282
|
if (!jsonOutput)
|
|
283
283
|
spinner.setText('Gathering index information...');
|
|
284
284
|
spinner.start();
|
|
285
|
-
const indexResult = await client.query(`
|
|
286
|
-
SELECT
|
|
287
|
-
i.relname as index_name,
|
|
288
|
-
t.relname as table_name,
|
|
289
|
-
am.amname as index_type,
|
|
290
|
-
pg_relation_size(i.oid) as index_size,
|
|
291
|
-
idx.indisvalid as is_valid,
|
|
292
|
-
idx.indisunique as is_unique
|
|
293
|
-
FROM pg_index idx
|
|
294
|
-
JOIN pg_class i ON i.oid = idx.indexrelid
|
|
295
|
-
JOIN pg_class t ON t.oid = idx.indrelid
|
|
296
|
-
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
297
|
-
JOIN pg_am am ON am.oid = i.relam
|
|
298
|
-
WHERE n.nspname = $1
|
|
299
|
-
ORDER BY t.relname, i.relname
|
|
285
|
+
const indexResult = await client.query(`
|
|
286
|
+
SELECT
|
|
287
|
+
i.relname as index_name,
|
|
288
|
+
t.relname as table_name,
|
|
289
|
+
am.amname as index_type,
|
|
290
|
+
pg_relation_size(i.oid) as index_size,
|
|
291
|
+
idx.indisvalid as is_valid,
|
|
292
|
+
idx.indisunique as is_unique
|
|
293
|
+
FROM pg_index idx
|
|
294
|
+
JOIN pg_class i ON i.oid = idx.indexrelid
|
|
295
|
+
JOIN pg_class t ON t.oid = idx.indrelid
|
|
296
|
+
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
297
|
+
JOIN pg_am am ON am.oid = i.relam
|
|
298
|
+
WHERE n.nspname = $1
|
|
299
|
+
ORDER BY t.relname, i.relname
|
|
300
300
|
`, [config.schema]);
|
|
301
301
|
statusData.indexes = indexResult.rows.map(row => ({
|
|
302
302
|
name: row.index_name,
|
|
@@ -314,10 +314,10 @@ export const statusCommand = {
|
|
|
314
314
|
spinner.setText('Checking migration status...');
|
|
315
315
|
spinner.start();
|
|
316
316
|
try {
|
|
317
|
-
const migrationsResult = await client.query(`
|
|
318
|
-
SELECT version, name, applied_at
|
|
319
|
-
FROM ${config.schema}.migrations
|
|
320
|
-
ORDER BY version ASC
|
|
317
|
+
const migrationsResult = await client.query(`
|
|
318
|
+
SELECT version, name, applied_at
|
|
319
|
+
FROM ${config.schema}.migrations
|
|
320
|
+
ORDER BY version ASC
|
|
321
321
|
`);
|
|
322
322
|
statusData.migrations = migrationsResult.rows.map(row => ({
|
|
323
323
|
version: row.version,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* V3 CLI Security Command
|
|
3
3
|
* Security scanning, CVE detection, threat modeling, vulnerability management
|
|
4
4
|
*
|
|
5
|
-
* Created with ❤️ by
|
|
5
|
+
* Created with ❤️ by motailz.com
|
|
6
6
|
*/
|
|
7
7
|
import type { Command } from '../types.js';
|
|
8
8
|
export declare const securityCommand: Command;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* V3 CLI Security Command
|
|
3
3
|
* Security scanning, CVE detection, threat modeling, vulnerability management
|
|
4
4
|
*
|
|
5
|
-
* Created with ❤️ by
|
|
5
|
+
* Created with ❤️ by motailz.com
|
|
6
6
|
*/
|
|
7
7
|
import { output } from '../output.js';
|
|
8
8
|
// Scan subcommand
|
|
@@ -568,7 +568,7 @@ export const securityCommand = {
|
|
|
568
568
|
output.writeln();
|
|
569
569
|
output.writeln('Use --help with subcommands for more info');
|
|
570
570
|
output.writeln();
|
|
571
|
-
output.writeln(output.dim('Created with ❤️ by
|
|
571
|
+
output.writeln(output.dim('Created with ❤️ by motailz.com'));
|
|
572
572
|
return { success: true };
|
|
573
573
|
},
|
|
574
574
|
};
|
|
@@ -21,13 +21,25 @@ export interface MofloConfig {
|
|
|
21
21
|
guidance: boolean;
|
|
22
22
|
code_map: boolean;
|
|
23
23
|
};
|
|
24
|
+
memory: {
|
|
25
|
+
backend: 'sql.js' | 'agentdb' | 'json';
|
|
26
|
+
embedding_model: string;
|
|
27
|
+
namespace: string;
|
|
28
|
+
};
|
|
29
|
+
hooks: {
|
|
30
|
+
pre_edit: boolean;
|
|
31
|
+
gate: boolean;
|
|
32
|
+
stop_hook: boolean;
|
|
33
|
+
session_restore: boolean;
|
|
34
|
+
};
|
|
24
35
|
models: {
|
|
25
36
|
default: string;
|
|
26
37
|
review: string;
|
|
27
38
|
};
|
|
28
39
|
}
|
|
29
40
|
/**
|
|
30
|
-
* Load moflo
|
|
41
|
+
* Load moflo config from the given directory (or cwd).
|
|
42
|
+
* Tries moflo.yaml first, then moflo.config.json.
|
|
31
43
|
* Returns defaults merged with file contents.
|
|
32
44
|
*/
|
|
33
45
|
export declare function loadMofloConfig(projectRoot?: string): MofloConfig;
|