@claude-flow/cli 3.32.3 → 3.32.4
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/helpers/helpers.manifest.json +2 -2
- package/catalog-manifest.json +2 -2
- package/dist/src/agenticow/speculative-exploration.d.ts +148 -0
- package/dist/src/agenticow/speculative-exploration.js +218 -0
- package/dist/src/appliance/gguf-engine.d.ts +91 -0
- package/dist/src/appliance/gguf-engine.js +425 -0
- package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
- package/dist/src/appliance/ruvllm-bridge.js +292 -0
- package/dist/src/appliance/rvfa-builder.d.ts +44 -0
- package/dist/src/appliance/rvfa-builder.js +329 -0
- package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
- package/dist/src/appliance/rvfa-distribution.js +370 -0
- package/dist/src/appliance/rvfa-format.d.ts +111 -0
- package/dist/src/appliance/rvfa-format.js +393 -0
- package/dist/src/appliance/rvfa-runner.d.ts +69 -0
- package/dist/src/appliance/rvfa-runner.js +237 -0
- package/dist/src/appliance/rvfa-signing.d.ts +123 -0
- package/dist/src/appliance/rvfa-signing.js +347 -0
- package/dist/src/auth/client.d.ts +89 -0
- package/dist/src/auth/client.js +242 -0
- package/dist/src/auth/constants.d.ts +7 -0
- package/dist/src/auth/constants.js +7 -0
- package/dist/src/auth/scopes.d.ts +14 -0
- package/dist/src/auth/scopes.js +21 -0
- package/dist/src/auth/security-bridge.d.ts +36 -0
- package/dist/src/auth/security-bridge.js +42 -0
- package/dist/src/auth/session.d.ts +20 -0
- package/dist/src/auth/session.js +32 -0
- package/dist/src/auth/state.d.ts +19 -0
- package/dist/src/auth/state.js +53 -0
- package/dist/src/auth/types.d.ts +27 -0
- package/dist/src/auth/types.js +11 -0
- package/dist/src/autopilot-state.d.ts +77 -0
- package/dist/src/autopilot-state.js +271 -0
- package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +18 -0
- package/dist/src/benchmarks/gaia-agent-planning.smoke.js +253 -0
- package/dist/src/benchmarks/gaia-agent.d.ts +198 -0
- package/dist/src/benchmarks/gaia-agent.js +651 -0
- package/dist/src/benchmarks/gaia-causal-memory.d.ts +133 -0
- package/dist/src/benchmarks/gaia-causal-memory.js +281 -0
- package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +22 -0
- package/dist/src/benchmarks/gaia-causal-memory.smoke.js +300 -0
- package/dist/src/benchmarks/gaia-convergence.d.ts +138 -0
- package/dist/src/benchmarks/gaia-convergence.js +260 -0
- package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +19 -0
- package/dist/src/benchmarks/gaia-convergence.smoke.js +246 -0
- package/dist/src/benchmarks/gaia-critic.d.ts +123 -0
- package/dist/src/benchmarks/gaia-critic.js +312 -0
- package/dist/src/benchmarks/gaia-critic.smoke.d.ts +21 -0
- package/dist/src/benchmarks/gaia-critic.smoke.js +327 -0
- package/dist/src/benchmarks/gaia-decomposer.d.ts +125 -0
- package/dist/src/benchmarks/gaia-decomposer.js +350 -0
- package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +21 -0
- package/dist/src/benchmarks/gaia-decomposer.smoke.js +228 -0
- package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +27 -0
- package/dist/src/benchmarks/gaia-e2e-smoke.js +136 -0
- package/dist/src/benchmarks/gaia-extract.smoke.d.ts +45 -0
- package/dist/src/benchmarks/gaia-extract.smoke.js +242 -0
- package/dist/src/benchmarks/gaia-hardness/features.d.ts +46 -0
- package/dist/src/benchmarks/gaia-hardness/features.js +170 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +105 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.js +260 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +20 -0
- package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +235 -0
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +51 -0
- package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +179 -0
- package/dist/src/benchmarks/gaia-judge.d.ts +88 -0
- package/dist/src/benchmarks/gaia-judge.js +437 -0
- package/dist/src/benchmarks/gaia-loader.d.ts +87 -0
- package/dist/src/benchmarks/gaia-loader.js +326 -0
- package/dist/src/benchmarks/gaia-tools/file_read.d.ts +35 -0
- package/dist/src/benchmarks/gaia-tools/file_read.js +403 -0
- package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +126 -0
- package/dist/src/benchmarks/gaia-tools/grounded_query.js +225 -0
- package/dist/src/benchmarks/gaia-tools/index.d.ts +32 -0
- package/dist/src/benchmarks/gaia-tools/index.js +36 -0
- package/dist/src/benchmarks/gaia-tools/types.d.ts +62 -0
- package/dist/src/benchmarks/gaia-tools/types.js +12 -0
- package/dist/src/benchmarks/gaia-tools/web_search.d.ts +30 -0
- package/dist/src/benchmarks/gaia-tools/web_search.js +210 -0
- package/dist/src/benchmarks/gaia-voting.d.ts +88 -0
- package/dist/src/benchmarks/gaia-voting.js +297 -0
- package/dist/src/benchmarks/gaia-voting.smoke.d.ts +20 -0
- package/dist/src/benchmarks/gaia-voting.smoke.js +332 -0
- package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
- package/dist/src/benchmarks/pretrain/index.js +404 -0
- package/dist/src/business-pods/bbs-budget-tracker.d.ts +139 -0
- package/dist/src/business-pods/bbs-budget-tracker.js +358 -0
- package/dist/src/business-pods/domain-affinity-policy.d.ts +47 -0
- package/dist/src/business-pods/domain-affinity-policy.js +65 -0
- package/dist/src/business-pods/pod-schema.d.ts +96 -0
- package/dist/src/business-pods/pod-schema.js +225 -0
- package/dist/src/commands/advisor.d.ts +15 -0
- package/dist/src/commands/advisor.js +94 -0
- package/dist/src/commands/agent-wasm.d.ts +14 -0
- package/dist/src/commands/agent-wasm.js +333 -0
- package/dist/src/commands/agent.d.ts +8 -0
- package/dist/src/commands/agent.js +927 -0
- package/dist/src/commands/analyze.d.ts +19 -0
- package/dist/src/commands/analyze.js +2047 -0
- package/dist/src/commands/announcements.d.ts +17 -0
- package/dist/src/commands/announcements.js +0 -0
- package/dist/src/commands/appliance-advanced.d.ts +9 -0
- package/dist/src/commands/appliance-advanced.js +215 -0
- package/dist/src/commands/appliance.d.ts +8 -0
- package/dist/src/commands/appliance.js +404 -0
- package/dist/src/commands/auth.d.ts +15 -0
- package/dist/src/commands/auth.js +244 -0
- package/dist/src/commands/autopilot.d.ts +15 -0
- package/dist/src/commands/autopilot.js +407 -0
- package/dist/src/commands/benchmark.d.ts +10 -0
- package/dist/src/commands/benchmark.js +460 -0
- package/dist/src/commands/claims.d.ts +10 -0
- package/dist/src/commands/claims.js +620 -0
- package/dist/src/commands/cleanup.d.ts +13 -0
- package/dist/src/commands/cleanup.js +250 -0
- package/dist/src/commands/completions.d.ts +10 -0
- package/dist/src/commands/completions.js +539 -0
- package/dist/src/commands/config.d.ts +8 -0
- package/dist/src/commands/config.js +428 -0
- package/dist/src/commands/daemon.d.ts +59 -0
- package/dist/src/commands/daemon.js +1733 -0
- package/dist/src/commands/deployment.d.ts +10 -0
- package/dist/src/commands/deployment.js +672 -0
- package/dist/src/commands/doctor.d.ts +10 -0
- package/dist/src/commands/doctor.js +1902 -0
- package/dist/src/commands/eject.d.ts +33 -0
- package/dist/src/commands/eject.js +195 -0
- package/dist/src/commands/embeddings.d.ts +18 -0
- package/dist/src/commands/embeddings.js +1623 -0
- package/dist/src/commands/funnel.d.ts +18 -0
- package/dist/src/commands/funnel.js +302 -0
- package/dist/src/commands/gaia-bench.d.ts +40 -0
- package/dist/src/commands/gaia-bench.js +597 -0
- package/dist/src/commands/guidance.d.ts +8 -0
- package/dist/src/commands/guidance.js +556 -0
- package/dist/src/commands/hive-mind.d.ts +11 -0
- package/dist/src/commands/hive-mind.js +1319 -0
- package/dist/src/commands/hooks.d.ts +8 -0
- package/dist/src/commands/hooks.js +4606 -0
- package/dist/src/commands/index.d.ts +118 -0
- package/dist/src/commands/index.js +366 -0
- package/dist/src/commands/init.d.ts +13 -0
- package/dist/src/commands/init.js +1297 -0
- package/dist/src/commands/issues.d.ts +21 -0
- package/dist/src/commands/issues.js +567 -0
- package/dist/src/commands/mcp.d.ts +11 -0
- package/dist/src/commands/mcp.js +732 -0
- package/dist/src/commands/memory-backup.d.ts +11 -0
- package/dist/src/commands/memory-backup.js +46 -0
- package/dist/src/commands/memory-distill.d.ts +27 -0
- package/dist/src/commands/memory-distill.js +374 -0
- package/dist/src/commands/memory.d.ts +8 -0
- package/dist/src/commands/memory.js +1596 -0
- package/dist/src/commands/metaharness.d.ts +39 -0
- package/dist/src/commands/metaharness.js +215 -0
- package/dist/src/commands/migrate.d.ts +8 -0
- package/dist/src/commands/migrate.js +742 -0
- package/dist/src/commands/neural.d.ts +10 -0
- package/dist/src/commands/neural.js +4331 -0
- package/dist/src/commands/performance.d.ts +10 -0
- package/dist/src/commands/performance.js +583 -0
- package/dist/src/commands/plugins.d.ts +11 -0
- package/dist/src/commands/plugins.js +826 -0
- package/dist/src/commands/process.d.ts +10 -0
- package/dist/src/commands/process.js +694 -0
- package/dist/src/commands/progress.d.ts +11 -0
- package/dist/src/commands/progress.js +259 -0
- package/dist/src/commands/providers.d.ts +10 -0
- package/dist/src/commands/providers.js +502 -0
- package/dist/src/commands/proxy-lifecycle.d.ts +12 -0
- package/dist/src/commands/proxy-lifecycle.js +232 -0
- package/dist/src/commands/proxy.d.ts +21 -0
- package/dist/src/commands/proxy.js +398 -0
- package/dist/src/commands/route.d.ts +16 -0
- package/dist/src/commands/route.js +822 -0
- package/dist/src/commands/ruvector/backup.d.ts +11 -0
- package/dist/src/commands/ruvector/backup.js +747 -0
- package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
- package/dist/src/commands/ruvector/benchmark.js +490 -0
- package/dist/src/commands/ruvector/import.d.ts +18 -0
- package/dist/src/commands/ruvector/import.js +373 -0
- package/dist/src/commands/ruvector/index.d.ts +29 -0
- package/dist/src/commands/ruvector/index.js +129 -0
- package/dist/src/commands/ruvector/init.d.ts +11 -0
- package/dist/src/commands/ruvector/init.js +467 -0
- package/dist/src/commands/ruvector/migrate.d.ts +11 -0
- package/dist/src/commands/ruvector/migrate.js +498 -0
- package/dist/src/commands/ruvector/optimize.d.ts +11 -0
- package/dist/src/commands/ruvector/optimize.js +505 -0
- package/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
- package/dist/src/commands/ruvector/pg-utils.js +41 -0
- package/dist/src/commands/ruvector/setup.d.ts +18 -0
- package/dist/src/commands/ruvector/setup.js +765 -0
- package/dist/src/commands/ruvector/status.d.ts +11 -0
- package/dist/src/commands/ruvector/status.js +479 -0
- package/dist/src/commands/security.d.ts +10 -0
- package/dist/src/commands/security.js +1012 -0
- package/dist/src/commands/session.d.ts +8 -0
- package/dist/src/commands/session.js +757 -0
- package/dist/src/commands/settings.d.ts +19 -0
- package/dist/src/commands/settings.js +180 -0
- package/dist/src/commands/spinner.d.ts +16 -0
- package/dist/src/commands/spinner.js +329 -0
- package/dist/src/commands/start.d.ts +8 -0
- package/dist/src/commands/start.js +418 -0
- package/dist/src/commands/status.d.ts +8 -0
- package/dist/src/commands/status.js +608 -0
- package/dist/src/commands/swarm.d.ts +8 -0
- package/dist/src/commands/swarm.js +891 -0
- package/dist/src/commands/task.d.ts +8 -0
- package/dist/src/commands/task.js +675 -0
- package/dist/src/commands/transfer-store.d.ts +13 -0
- package/dist/src/commands/transfer-store.js +428 -0
- package/dist/src/commands/update.d.ts +8 -0
- package/dist/src/commands/update.js +276 -0
- package/dist/src/commands/verify.d.ts +19 -0
- package/dist/src/commands/verify.js +261 -0
- package/dist/src/commands/version.d.ts +42 -0
- package/dist/src/commands/version.js +106 -0
- package/dist/src/commands/workflow.d.ts +8 -0
- package/dist/src/commands/workflow.js +617 -0
- package/dist/src/config/harness-feedback-applier.d.ts +50 -0
- package/dist/src/config/harness-feedback-applier.js +122 -0
- package/dist/src/config/proven-config-refresh.d.ts +39 -0
- package/dist/src/config/proven-config-refresh.js +154 -0
- package/dist/src/config/proven-config-rvfa.d.ts +23 -0
- package/dist/src/config/proven-config-rvfa.js +73 -0
- package/dist/src/config/proven-config.d.ts +86 -0
- package/dist/src/config/proven-config.js +176 -0
- package/dist/src/config-adapter.d.ts +15 -0
- package/dist/src/config-adapter.js +186 -0
- package/dist/src/encryption/vault.d.ts +94 -0
- package/dist/src/encryption/vault.js +172 -0
- package/dist/src/fs-secure.d.ts +86 -0
- package/dist/src/fs-secure.js +133 -0
- package/dist/src/funnel/advisor-tip.d.ts +58 -0
- package/dist/src/funnel/advisor-tip.js +92 -0
- package/dist/src/funnel/attribution.d.ts +37 -0
- package/dist/src/funnel/attribution.js +101 -0
- package/dist/src/funnel/consent.d.ts +22 -0
- package/dist/src/funnel/consent.js +58 -0
- package/dist/src/funnel/credit-errors.d.ts +31 -0
- package/dist/src/funnel/credit-errors.js +88 -0
- package/dist/src/funnel/credit-notifier.d.ts +44 -0
- package/dist/src/funnel/credit-notifier.js +74 -0
- package/dist/src/funnel/disclosure.d.ts +47 -0
- package/dist/src/funnel/disclosure.js +109 -0
- package/dist/src/funnel/enrollment.d.ts +36 -0
- package/dist/src/funnel/enrollment.js +64 -0
- package/dist/src/funnel/environment.d.ts +17 -0
- package/dist/src/funnel/environment.js +39 -0
- package/dist/src/funnel/event-transport.d.ts +51 -0
- package/dist/src/funnel/event-transport.js +199 -0
- package/dist/src/funnel/events.d.ts +42 -0
- package/dist/src/funnel/events.js +150 -0
- package/dist/src/funnel/index.d.ts +21 -0
- package/dist/src/funnel/index.js +21 -0
- package/dist/src/funnel/insights.d.ts +50 -0
- package/dist/src/funnel/insights.js +120 -0
- package/dist/src/funnel/local-signals.d.ts +20 -0
- package/dist/src/funnel/local-signals.js +77 -0
- package/dist/src/funnel/message-transport.d.ts +51 -0
- package/dist/src/funnel/message-transport.js +149 -0
- package/dist/src/funnel/messages.d.ts +55 -0
- package/dist/src/funnel/messages.js +160 -0
- package/dist/src/funnel/payout.d.ts +40 -0
- package/dist/src/funnel/payout.js +60 -0
- package/dist/src/funnel/power-saver-notifier.d.ts +44 -0
- package/dist/src/funnel/power-saver-notifier.js +92 -0
- package/dist/src/funnel/precedence.d.ts +16 -0
- package/dist/src/funnel/precedence.js +85 -0
- package/dist/src/funnel/promo.d.ts +41 -0
- package/dist/src/funnel/promo.js +144 -0
- package/dist/src/funnel/rate-limit-notifier.d.ts +55 -0
- package/dist/src/funnel/rate-limit-notifier.js +102 -0
- package/dist/src/funnel/rotation.d.ts +19 -0
- package/dist/src/funnel/rotation.js +70 -0
- package/dist/src/funnel/state.d.ts +13 -0
- package/dist/src/funnel/state.js +52 -0
- package/dist/src/funnel/toggle-cooldown.d.ts +17 -0
- package/dist/src/funnel/toggle-cooldown.js +32 -0
- package/dist/src/funnel/types.d.ts +98 -0
- package/dist/src/funnel/types.js +26 -0
- package/dist/src/index.d.ts +81 -0
- package/dist/src/index.js +609 -0
- package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
- package/dist/src/infrastructure/in-memory-repositories.js +264 -0
- package/dist/src/init/claudemd-generator.d.ts +16 -0
- package/dist/src/init/claudemd-generator.js +368 -0
- package/dist/src/init/executor.d.ts +41 -0
- package/dist/src/init/executor.js +2142 -0
- package/dist/src/init/helper-refresh.d.ts +79 -0
- package/dist/src/init/helper-refresh.js +347 -0
- package/dist/src/init/helper-signing.d.ts +37 -0
- package/dist/src/init/helper-signing.js +67 -0
- package/dist/src/init/helpers-generator.d.ts +87 -0
- package/dist/src/init/helpers-generator.js +1456 -0
- package/dist/src/init/index.d.ts +13 -0
- package/dist/src/init/index.js +15 -0
- package/dist/src/init/mcp-generator.d.ts +26 -0
- package/dist/src/init/mcp-generator.js +126 -0
- package/dist/src/init/memory-package-resolver.d.ts +53 -0
- package/dist/src/init/memory-package-resolver.js +118 -0
- package/dist/src/init/settings-generator.d.ts +14 -0
- package/dist/src/init/settings-generator.js +462 -0
- package/dist/src/init/statusline-generator.d.ts +28 -0
- package/dist/src/init/statusline-generator.js +177 -0
- package/dist/src/init/types.d.ts +331 -0
- package/dist/src/init/types.js +276 -0
- package/dist/src/log-filters.d.ts +46 -0
- package/dist/src/log-filters.js +107 -0
- package/dist/src/mcp-client.d.ts +92 -0
- package/dist/src/mcp-client.js +397 -0
- package/dist/src/mcp-server.d.ts +163 -0
- package/dist/src/mcp-server.js +751 -0
- package/dist/src/mcp-tools/agent-execute-core.d.ts +115 -0
- package/dist/src/mcp-tools/agent-execute-core.js +587 -0
- package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
- package/dist/src/mcp-tools/agent-tools.js +837 -0
- package/dist/src/mcp-tools/agentbbs-tools.d.ts +28 -0
- package/dist/src/mcp-tools/agentbbs-tools.js +394 -0
- package/dist/src/mcp-tools/agentdb-tools.d.ts +35 -0
- package/dist/src/mcp-tools/agentdb-tools.js +1473 -0
- package/dist/src/mcp-tools/agenticow-loader.d.ts +59 -0
- package/dist/src/mcp-tools/agenticow-loader.js +105 -0
- package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +24 -0
- package/dist/src/mcp-tools/agenticow-speculate-tools.js +209 -0
- package/dist/src/mcp-tools/agenticow-tools.d.ts +36 -0
- package/dist/src/mcp-tools/agenticow-tools.js +360 -0
- package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
- package/dist/src/mcp-tools/analyze-tools.js +346 -0
- package/dist/src/mcp-tools/auto-install.d.ts +83 -0
- package/dist/src/mcp-tools/auto-install.js +131 -0
- package/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
- package/dist/src/mcp-tools/autopilot-tools.js +231 -0
- package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
- package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
- package/dist/src/mcp-tools/browser-session-tools.d.ts +27 -0
- package/dist/src/mcp-tools/browser-session-tools.js +398 -0
- package/dist/src/mcp-tools/browser-tools.d.ts +21 -0
- package/dist/src/mcp-tools/browser-tools.js +760 -0
- package/dist/src/mcp-tools/business-pod-tools.d.ts +20 -0
- package/dist/src/mcp-tools/business-pod-tools.js +169 -0
- package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
- package/dist/src/mcp-tools/claims-tools.js +863 -0
- package/dist/src/mcp-tools/config-tools.d.ts +8 -0
- package/dist/src/mcp-tools/config-tools.js +411 -0
- package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
- package/dist/src/mcp-tools/coordination-tools.js +729 -0
- package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
- package/dist/src/mcp-tools/daa-tools.js +534 -0
- package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
- package/dist/src/mcp-tools/embeddings-tools.js +904 -0
- package/dist/src/mcp-tools/github-tools.d.ts +9 -0
- package/dist/src/mcp-tools/github-tools.js +659 -0
- package/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
- package/dist/src/mcp-tools/guidance-tools.js +639 -0
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
- package/dist/src/mcp-tools/hive-mind-tools.js +953 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts +65 -0
- package/dist/src/mcp-tools/hooks-tools.js +4836 -0
- package/dist/src/mcp-tools/http-fetch-tools.d.ts +55 -0
- package/dist/src/mcp-tools/http-fetch-tools.js +329 -0
- package/dist/src/mcp-tools/index.d.ts +34 -0
- package/dist/src/mcp-tools/index.js +40 -0
- package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
- package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
- package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
- package/dist/src/mcp-tools/memory-tools.js +1330 -0
- package/dist/src/mcp-tools/metaharness-tools.d.ts +51 -0
- package/dist/src/mcp-tools/metaharness-tools.js +684 -0
- package/dist/src/mcp-tools/neural-tools.d.ts +54 -0
- package/dist/src/mcp-tools/neural-tools.js +1168 -0
- package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
- package/dist/src/mcp-tools/performance-tools.js +675 -0
- package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
- package/dist/src/mcp-tools/progress-tools.js +348 -0
- package/dist/src/mcp-tools/request-tracker.d.ts +17 -0
- package/dist/src/mcp-tools/request-tracker.js +27 -0
- package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
- package/dist/src/mcp-tools/ruvllm-tools.js +355 -0
- package/dist/src/mcp-tools/security-tools.d.ts +18 -0
- package/dist/src/mcp-tools/security-tools.js +556 -0
- package/dist/src/mcp-tools/session-tools.d.ts +8 -0
- package/dist/src/mcp-tools/session-tools.js +517 -0
- package/dist/src/mcp-tools/swarm-tools.d.ts +37 -0
- package/dist/src/mcp-tools/swarm-tools.js +390 -0
- package/dist/src/mcp-tools/system-tools.d.ts +13 -0
- package/dist/src/mcp-tools/system-tools.js +688 -0
- package/dist/src/mcp-tools/task-tools.d.ts +8 -0
- package/dist/src/mcp-tools/task-tools.js +487 -0
- package/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
- package/dist/src/mcp-tools/terminal-tools.js +306 -0
- package/dist/src/mcp-tools/testgen-tools.d.ts +26 -0
- package/dist/src/mcp-tools/testgen-tools.js +168 -0
- package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +31 -0
- package/dist/src/mcp-tools/tool-loop-guardrail.js +71 -0
- package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
- package/dist/src/mcp-tools/transfer-tools.js +447 -0
- package/dist/src/mcp-tools/types.d.ts +8 -0
- package/dist/src/mcp-tools/types.js +8 -0
- package/dist/src/mcp-tools/validate-input.d.ts +9 -0
- package/dist/src/mcp-tools/validate-input.js +9 -0
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts +13 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +840 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
- package/dist/src/mcp-tools/workflow-tools.js +884 -0
- package/dist/src/memory/bge-embedder.d.ts +25 -0
- package/dist/src/memory/bge-embedder.js +121 -0
- package/dist/src/memory/cross-encoder-rerank.d.ts +33 -0
- package/dist/src/memory/cross-encoder-rerank.js +123 -0
- package/dist/src/memory/embedding-policy.d.ts +21 -0
- package/dist/src/memory/embedding-policy.js +30 -0
- package/dist/src/memory/embedding-quantization.d.ts +62 -0
- package/dist/src/memory/embedding-quantization.js +156 -0
- package/dist/src/memory/ewc-consolidation.d.ts +305 -0
- package/dist/src/memory/ewc-consolidation.js +611 -0
- package/dist/src/memory/graph-edge-writer.d.ts +95 -0
- package/dist/src/memory/graph-edge-writer.js +217 -0
- package/dist/src/memory/hybrid-retrieval.d.ts +77 -0
- package/dist/src/memory/hybrid-retrieval.js +192 -0
- package/dist/src/memory/intelligence.d.ts +405 -0
- package/dist/src/memory/intelligence.js +1316 -0
- package/dist/src/memory/lucene-bm25.d.ts +19 -0
- package/dist/src/memory/lucene-bm25.js +308 -0
- package/dist/src/memory/memory-bridge.d.ts +537 -0
- package/dist/src/memory/memory-bridge.js +2460 -0
- package/dist/src/memory/memory-initializer.d.ts +556 -0
- package/dist/src/memory/memory-initializer.js +3021 -0
- package/dist/src/memory/neural-package-bridge.d.ts +48 -0
- package/dist/src/memory/neural-package-bridge.js +87 -0
- package/dist/src/memory/rabitq-index.d.ts +60 -0
- package/dist/src/memory/rabitq-index.js +242 -0
- package/dist/src/memory/sona-optimizer.d.ts +267 -0
- package/dist/src/memory/sona-optimizer.js +779 -0
- package/dist/src/memory/structured-distill.d.ts +48 -0
- package/dist/src/memory/structured-distill.js +125 -0
- package/dist/src/output.d.ts +9 -0
- package/dist/src/output.js +9 -0
- package/dist/src/parser.d.ts +89 -0
- package/dist/src/parser.js +516 -0
- package/dist/src/plugins/manager.d.ts +133 -0
- package/dist/src/plugins/manager.js +415 -0
- package/dist/src/plugins/store/discovery.d.ts +99 -0
- package/dist/src/plugins/store/discovery.js +1224 -0
- package/dist/src/plugins/store/index.d.ts +76 -0
- package/dist/src/plugins/store/index.js +141 -0
- package/dist/src/plugins/store/search.d.ts +46 -0
- package/dist/src/plugins/store/search.js +230 -0
- package/dist/src/plugins/store/types.d.ts +279 -0
- package/dist/src/plugins/store/types.js +7 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
- package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
- package/dist/src/plugins/tests/standalone-test.js +188 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/test-plugin-store.js +206 -0
- package/dist/src/production/circuit-breaker.d.ts +101 -0
- package/dist/src/production/circuit-breaker.js +241 -0
- package/dist/src/production/error-handler.d.ts +92 -0
- package/dist/src/production/error-handler.js +299 -0
- package/dist/src/production/index.d.ts +23 -0
- package/dist/src/production/index.js +18 -0
- package/dist/src/production/monitoring.d.ts +161 -0
- package/dist/src/production/monitoring.js +356 -0
- package/dist/src/production/rate-limiter.d.ts +80 -0
- package/dist/src/production/rate-limiter.js +201 -0
- package/dist/src/production/retry.d.ts +48 -0
- package/dist/src/production/retry.js +179 -0
- package/dist/src/prompt.d.ts +44 -0
- package/dist/src/prompt.js +501 -0
- package/dist/src/proxy/install.d.ts +29 -0
- package/dist/src/proxy/install.js +135 -0
- package/dist/src/proxy/lifecycle.d.ts +61 -0
- package/dist/src/proxy/lifecycle.js +249 -0
- package/dist/src/proxy/paths.d.ts +34 -0
- package/dist/src/proxy/paths.js +70 -0
- package/dist/src/proxy/release.d.ts +47 -0
- package/dist/src/proxy/release.js +138 -0
- package/dist/src/proxy/token-bridge.d.ts +5 -0
- package/dist/src/proxy/token-bridge.js +61 -0
- package/dist/src/proxy/verify.d.ts +44 -0
- package/dist/src/proxy/verify.js +68 -0
- package/dist/src/runtime/headless.d.ts +60 -0
- package/dist/src/runtime/headless.js +284 -0
- package/dist/src/runtime/parent-death-watchdog.d.ts +42 -0
- package/dist/src/runtime/parent-death-watchdog.js +70 -0
- package/dist/src/ruvector/agent-wasm.d.ts +228 -0
- package/dist/src/ruvector/agent-wasm.js +463 -0
- package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/dist/src/ruvector/ast-analyzer.js +277 -0
- package/dist/src/ruvector/codemods/engine.d.ts +45 -0
- package/dist/src/ruvector/codemods/engine.js +291 -0
- package/dist/src/ruvector/codemods/scope-analysis.d.ts +29 -0
- package/dist/src/ruvector/codemods/scope-analysis.js +162 -0
- package/dist/src/ruvector/coverage-router.d.ts +160 -0
- package/dist/src/ruvector/coverage-router.js +531 -0
- package/dist/src/ruvector/coverage-tools.d.ts +33 -0
- package/dist/src/ruvector/coverage-tools.js +157 -0
- package/dist/src/ruvector/diff-classifier.d.ts +175 -0
- package/dist/src/ruvector/diff-classifier.js +699 -0
- package/dist/src/ruvector/diskann-backend.d.ts +78 -0
- package/dist/src/ruvector/diskann-backend.js +310 -0
- package/dist/src/ruvector/enhanced-model-router.d.ts +172 -0
- package/dist/src/ruvector/enhanced-model-router.js +577 -0
- package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
- package/dist/src/ruvector/graph-analyzer.js +929 -0
- package/dist/src/ruvector/graph-backend.d.ts +79 -0
- package/dist/src/ruvector/graph-backend.js +220 -0
- package/dist/src/ruvector/index.d.ts +38 -0
- package/dist/src/ruvector/index.js +86 -0
- package/dist/src/ruvector/lora-adapter.d.ts +292 -0
- package/dist/src/ruvector/lora-adapter.js +710 -0
- package/dist/src/ruvector/model-prices.d.ts +50 -0
- package/dist/src/ruvector/model-prices.js +72 -0
- package/dist/src/ruvector/model-router.d.ts +408 -0
- package/dist/src/ruvector/model-router.js +1162 -0
- package/dist/src/ruvector/neural-router.d.ts +182 -0
- package/dist/src/ruvector/neural-router.js +825 -0
- package/dist/src/ruvector/output-verifier.d.ts +83 -0
- package/dist/src/ruvector/output-verifier.js +277 -0
- package/dist/src/ruvector/q-learning-router.d.ts +227 -0
- package/dist/src/ruvector/q-learning-router.js +721 -0
- package/dist/src/ruvector/router-calibrator.d.ts +65 -0
- package/dist/src/ruvector/router-calibrator.js +120 -0
- package/dist/src/ruvector/router-parallel-recorder.d.ts +127 -0
- package/dist/src/ruvector/router-parallel-recorder.js +183 -0
- package/dist/src/ruvector/router-trajectory.d.ts +194 -0
- package/dist/src/ruvector/router-trajectory.js +281 -0
- package/dist/src/ruvector/run-transcript-recorder.d.ts +154 -0
- package/dist/src/ruvector/run-transcript-recorder.js +209 -0
- package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
- package/dist/src/ruvector/ruvllm-wasm.js +379 -0
- package/dist/src/ruvector/semantic-router.d.ts +77 -0
- package/dist/src/ruvector/semantic-router.js +178 -0
- package/dist/src/ruvector/task-embedder.d.ts +56 -0
- package/dist/src/ruvector/task-embedder.js +237 -0
- package/dist/src/ruvector/trajectory-tree.d.ts +113 -0
- package/dist/src/ruvector/trajectory-tree.js +237 -0
- package/dist/src/ruvector/vector-db.d.ts +73 -0
- package/dist/src/ruvector/vector-db.js +301 -0
- package/dist/src/ruvector/wasm-embedder.d.ts +13 -0
- package/dist/src/ruvector/wasm-embedder.js +143 -0
- package/dist/src/security/builtin-aidefence.d.ts +34 -0
- package/dist/src/security/builtin-aidefence.js +86 -0
- package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/dist/src/services/agentic-flow-bridge.js +95 -0
- package/dist/src/services/ai-job-dedup.d.ts +61 -0
- package/dist/src/services/ai-job-dedup.js +136 -0
- package/dist/src/services/checkpoint-gate.d.ts +140 -0
- package/dist/src/services/checkpoint-gate.js +223 -0
- package/dist/src/services/claim-service.d.ts +204 -0
- package/dist/src/services/claim-service.js +818 -0
- package/dist/src/services/config-file-manager.d.ts +37 -0
- package/dist/src/services/config-file-manager.js +224 -0
- package/dist/src/services/container-worker-pool.d.ts +204 -0
- package/dist/src/services/container-worker-pool.js +589 -0
- package/dist/src/services/daemon-autostart.d.ts +17 -0
- package/dist/src/services/daemon-autostart.js +102 -0
- package/dist/src/services/distill-oracle.d.ts +190 -0
- package/dist/src/services/distill-oracle.js +349 -0
- package/dist/src/services/distill-tuning.d.ts +111 -0
- package/dist/src/services/distill-tuning.js +510 -0
- package/dist/src/services/evolve-proof.d.ts +253 -0
- package/dist/src/services/evolve-proof.js +343 -0
- package/dist/src/services/fable-harness.d.ts +208 -0
- package/dist/src/services/fable-harness.js +388 -0
- package/dist/src/services/git-workspace-identity.d.ts +42 -0
- package/dist/src/services/git-workspace-identity.js +99 -0
- package/dist/src/services/global-ai-budget.d.ts +135 -0
- package/dist/src/services/global-ai-budget.js +415 -0
- package/dist/src/services/harness-benchmark.d.ts +68 -0
- package/dist/src/services/harness-benchmark.js +94 -0
- package/dist/src/services/harness-canary.d.ts +60 -0
- package/dist/src/services/harness-canary.js +69 -0
- package/dist/src/services/harness-corpus-harvester.d.ts +51 -0
- package/dist/src/services/harness-corpus-harvester.js +74 -0
- package/dist/src/services/harness-flywheel-generations.d.ts +115 -0
- package/dist/src/services/harness-flywheel-generations.js +360 -0
- package/dist/src/services/harness-flywheel-runtime.d.ts +25 -0
- package/dist/src/services/harness-flywheel-runtime.js +92 -0
- package/dist/src/services/harness-flywheel.d.ts +48 -0
- package/dist/src/services/harness-flywheel.js +207 -0
- package/dist/src/services/harness-frozen-eval.d.ts +22 -0
- package/dist/src/services/harness-frozen-eval.js +66 -0
- package/dist/src/services/harness-hosts.d.ts +40 -0
- package/dist/src/services/harness-hosts.js +88 -0
- package/dist/src/services/harness-improvement-ledger.d.ts +63 -0
- package/dist/src/services/harness-improvement-ledger.js +101 -0
- package/dist/src/services/harness-loop.d.ts +53 -0
- package/dist/src/services/harness-loop.js +85 -0
- package/dist/src/services/harness-qualification.d.ts +66 -0
- package/dist/src/services/harness-qualification.js +143 -0
- package/dist/src/services/harness-replay.d.ts +37 -0
- package/dist/src/services/harness-replay.js +92 -0
- package/dist/src/services/harness-verify.d.ts +33 -0
- package/dist/src/services/harness-verify.js +26 -0
- package/dist/src/services/harness-worker.d.ts +23 -0
- package/dist/src/services/harness-worker.js +66 -0
- package/dist/src/services/headless-worker-executor.d.ts +358 -0
- package/dist/src/services/headless-worker-executor.js +1269 -0
- package/dist/src/services/index.d.ts +13 -0
- package/dist/src/services/index.js +11 -0
- package/dist/src/services/memory-backup.d.ts +53 -0
- package/dist/src/services/memory-backup.js +198 -0
- package/dist/src/services/memory-distillation.d.ts +41 -0
- package/dist/src/services/memory-distillation.js +277 -0
- package/dist/src/services/native-training.d.ts +68 -0
- package/dist/src/services/native-training.js +141 -0
- package/dist/src/services/registry-api.d.ts +58 -0
- package/dist/src/services/registry-api.js +146 -0
- package/dist/src/services/repo-supervisor.d.ts +70 -0
- package/dist/src/services/repo-supervisor.js +228 -0
- package/dist/src/services/ruvector-training.d.ts +222 -0
- package/dist/src/services/ruvector-training.js +693 -0
- package/dist/src/services/swarm-memory-branches.d.ts +135 -0
- package/dist/src/services/swarm-memory-branches.js +213 -0
- package/dist/src/services/weight-eft.d.ts +305 -0
- package/dist/src/services/weight-eft.js +296 -0
- package/dist/src/services/worker-daemon.d.ts +439 -0
- package/dist/src/services/worker-daemon.js +1865 -0
- package/dist/src/services/worker-queue.d.ts +194 -0
- package/dist/src/services/worker-queue.js +513 -0
- package/dist/src/services/workspace-lease.d.ts +55 -0
- package/dist/src/services/workspace-lease.js +191 -0
- package/dist/src/suggest.d.ts +53 -0
- package/dist/src/suggest.js +200 -0
- package/dist/src/transfer/anonymization/index.d.ts +25 -0
- package/dist/src/transfer/anonymization/index.js +175 -0
- package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
- package/dist/src/transfer/deploy-seraphine.js +205 -0
- package/dist/src/transfer/export.d.ts +25 -0
- package/dist/src/transfer/export.js +113 -0
- package/dist/src/transfer/index.d.ts +12 -0
- package/dist/src/transfer/index.js +31 -0
- package/dist/src/transfer/ipfs/client.d.ts +109 -0
- package/dist/src/transfer/ipfs/client.js +307 -0
- package/dist/src/transfer/ipfs/upload.d.ts +95 -0
- package/dist/src/transfer/ipfs/upload.js +413 -0
- package/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/dist/src/transfer/models/seraphine.js +373 -0
- package/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/dist/src/transfer/serialization/cfp.js +183 -0
- package/dist/src/transfer/storage/gcs.d.ts +82 -0
- package/dist/src/transfer/storage/gcs.js +272 -0
- package/dist/src/transfer/storage/index.d.ts +6 -0
- package/dist/src/transfer/storage/index.js +6 -0
- package/dist/src/transfer/store/discovery.d.ts +84 -0
- package/dist/src/transfer/store/discovery.js +382 -0
- package/dist/src/transfer/store/download.d.ts +70 -0
- package/dist/src/transfer/store/download.js +334 -0
- package/dist/src/transfer/store/index.d.ts +84 -0
- package/dist/src/transfer/store/index.js +153 -0
- package/dist/src/transfer/store/publish.d.ts +76 -0
- package/dist/src/transfer/store/publish.js +294 -0
- package/dist/src/transfer/store/registry.d.ts +58 -0
- package/dist/src/transfer/store/registry.js +285 -0
- package/dist/src/transfer/store/search.d.ts +54 -0
- package/dist/src/transfer/store/search.js +232 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
- package/dist/src/transfer/store/tests/standalone-test.js +190 -0
- package/dist/src/transfer/store/types.d.ts +193 -0
- package/dist/src/transfer/store/types.js +6 -0
- package/dist/src/transfer/test-seraphine.d.ts +6 -0
- package/dist/src/transfer/test-seraphine.js +105 -0
- package/dist/src/transfer/tests/test-store.d.ts +7 -0
- package/dist/src/transfer/tests/test-store.js +214 -0
- package/dist/src/transfer/types.d.ts +245 -0
- package/dist/src/transfer/types.js +6 -0
- package/dist/src/types.d.ts +13 -0
- package/dist/src/types.js +13 -0
- package/dist/src/update/checker.d.ts +34 -0
- package/dist/src/update/checker.js +191 -0
- package/dist/src/update/executor.d.ts +33 -0
- package/dist/src/update/executor.js +217 -0
- package/dist/src/update/index.d.ts +33 -0
- package/dist/src/update/index.js +64 -0
- package/dist/src/update/rate-limiter.d.ts +20 -0
- package/dist/src/update/rate-limiter.js +96 -0
- package/dist/src/update/validator.d.ts +17 -0
- package/dist/src/update/validator.js +123 -0
- package/package.json +1 -1
|
@@ -0,0 +1,609 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 CLI Main Entry Point
|
|
3
|
+
* Modernized CLI for RuFlo V3
|
|
4
|
+
*
|
|
5
|
+
* Created with ❤️ by ruv.io
|
|
6
|
+
*/
|
|
7
|
+
// MUST be the first import — installs console filter for the cosmetic
|
|
8
|
+
// "[AgentDB Patch] Controller index not found" warning before any
|
|
9
|
+
// agentic-flow / agentdb code can load. ES module imports are evaluated
|
|
10
|
+
// in source order, so this file runs its side effects before any other
|
|
11
|
+
// import in this module's import graph (including transitive imports of
|
|
12
|
+
// agentic-flow via commands/index.js).
|
|
13
|
+
import './log-filters.js';
|
|
14
|
+
import { readFileSync } from 'fs';
|
|
15
|
+
import { fileURLToPath } from 'url';
|
|
16
|
+
import { dirname, join } from 'path';
|
|
17
|
+
import { commandParser } from './parser.js';
|
|
18
|
+
import { output } from './output.js';
|
|
19
|
+
import { commands, getCommandsByCategory, getCommand, getCommandAsync, getCommandNames, getLazyCommandNames, hasCommand } from './commands/index.js';
|
|
20
|
+
import { suggestCommand } from './suggest.js';
|
|
21
|
+
import { runStartupUpdateCheck } from './update/index.js';
|
|
22
|
+
// Read version from package.json at runtime
|
|
23
|
+
function getPackageVersion() {
|
|
24
|
+
try {
|
|
25
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
26
|
+
const __dirname = dirname(__filename);
|
|
27
|
+
// Navigate from dist/src to package root
|
|
28
|
+
const pkgPath = join(__dirname, '..', '..', 'package.json');
|
|
29
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
30
|
+
return pkg.version || '3.0.0';
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return '3.0.0';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export const VERSION = getPackageVersion();
|
|
37
|
+
/**
|
|
38
|
+
* V3 CLI Application
|
|
39
|
+
*/
|
|
40
|
+
export class CLI {
|
|
41
|
+
name;
|
|
42
|
+
description;
|
|
43
|
+
version;
|
|
44
|
+
parser;
|
|
45
|
+
output;
|
|
46
|
+
interactive;
|
|
47
|
+
constructor(options = {}) {
|
|
48
|
+
this.name = options.name || 'ruflo';
|
|
49
|
+
this.description = options.description || 'RuFlo V3 - AI Agent Orchestration Platform';
|
|
50
|
+
this.version = options.version || VERSION;
|
|
51
|
+
this.parser = commandParser;
|
|
52
|
+
this.output = output;
|
|
53
|
+
this.interactive = options.interactive ?? process.stdin.isTTY ?? false;
|
|
54
|
+
// Register all core (synchronously loaded) commands with full definitions
|
|
55
|
+
for (const cmd of commands) {
|
|
56
|
+
this.parser.registerCommand(cmd);
|
|
57
|
+
}
|
|
58
|
+
// Register lazy command names so the parser can recognize them during
|
|
59
|
+
// argument resolution without importing their modules. Fix for #1596:
|
|
60
|
+
// prevents `daemon start` from being mis-routed to the `start` command.
|
|
61
|
+
for (const name of getLazyCommandNames()) {
|
|
62
|
+
this.parser.registerLazyCommandName(name);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Run the CLI with given arguments
|
|
67
|
+
*/
|
|
68
|
+
async run(args = process.argv.slice(2)) {
|
|
69
|
+
try {
|
|
70
|
+
// #1791.2 — If the user invoked a lazy command (e.g. `hive-mind task`),
|
|
71
|
+
// pre-load it BEFORE parsing so the parser can build scoped flag
|
|
72
|
+
// aliases for its subcommands. Without this, short flags defined on
|
|
73
|
+
// the lazy command's subcommand options (`-d` for description, etc.)
|
|
74
|
+
// never get into the alias map and silently fall through to global
|
|
75
|
+
// resolution — the user sees `[ERROR] Task description is required`
|
|
76
|
+
// even though they passed `-d "smoke"`.
|
|
77
|
+
for (const arg of args) {
|
|
78
|
+
if (arg.startsWith('-'))
|
|
79
|
+
continue;
|
|
80
|
+
if (this.parser.isLazyOnly(arg)) {
|
|
81
|
+
const cmd = await getCommandAsync(arg);
|
|
82
|
+
if (cmd)
|
|
83
|
+
this.parser.registerCommand(cmd);
|
|
84
|
+
}
|
|
85
|
+
break; // only the first non-flag positional is the command name
|
|
86
|
+
}
|
|
87
|
+
// Parse arguments
|
|
88
|
+
const parseResult = this.parser.parse(args);
|
|
89
|
+
const { command: commandPath, flags, positional } = parseResult;
|
|
90
|
+
// Handle global flags
|
|
91
|
+
if (flags.version || flags.V) {
|
|
92
|
+
this.showVersion();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (flags.noColor) {
|
|
96
|
+
this.output.setColorEnabled(false);
|
|
97
|
+
}
|
|
98
|
+
// Set verbosity level based on flags
|
|
99
|
+
if (flags.quiet) {
|
|
100
|
+
this.output.setVerbosity('quiet');
|
|
101
|
+
}
|
|
102
|
+
else if (flags.verbose) {
|
|
103
|
+
this.output.setVerbosity(process.env.DEBUG ? 'debug' : 'verbose');
|
|
104
|
+
}
|
|
105
|
+
// Verbose mode: show parsed arguments
|
|
106
|
+
if (this.output.isVerbose()) {
|
|
107
|
+
this.output.printDebug(`Command: ${commandPath.join(' ') || '(none)'}`);
|
|
108
|
+
this.output.printDebug(`Positional: [${positional.join(', ')}]`);
|
|
109
|
+
this.output.printDebug(`Flags: ${JSON.stringify(Object.fromEntries(Object.entries(flags).filter(([k]) => k !== '_')))}`);
|
|
110
|
+
this.output.printDebug(`CWD: ${process.cwd()}`);
|
|
111
|
+
}
|
|
112
|
+
// Run startup update check (non-blocking, silent on skip)
|
|
113
|
+
if (!flags.noUpdate && commandPath[0] !== 'update') {
|
|
114
|
+
this.checkForUpdatesOnStartup().catch(() => { });
|
|
115
|
+
}
|
|
116
|
+
// Version-stamped helper auto-refresh — propagate hook fixes to an already
|
|
117
|
+
// initialized project without a manual re-init. Skip for init/upgrade
|
|
118
|
+
// (they refresh explicitly). AWAITED (not fire-and-forget) so a fast
|
|
119
|
+
// command can't exit before the copy lands; the fast path is a single
|
|
120
|
+
// stamp read + string compare (sub-ms), and the copy runs at most once per
|
|
121
|
+
// version bump. Best-effort + silent — never blocks or fails a command.
|
|
122
|
+
if (commandPath[0] !== 'init' && commandPath[0] !== 'update') {
|
|
123
|
+
try {
|
|
124
|
+
const { autoRefreshHelpersIfStale } = await import('./init/helper-refresh.js');
|
|
125
|
+
// alsoRefreshGlobal:true — refresh ~/.claude/helpers too, not just
|
|
126
|
+
// <cwd>/.claude/helpers. Fixes the "promo row missing on remote
|
|
127
|
+
// installs" bug where Claude Code's global settings.json falls back
|
|
128
|
+
// to ~/.claude/helpers/statusline.cjs (executor.ts:460-462) and that
|
|
129
|
+
// file was frozen at whatever version was current when the user
|
|
130
|
+
// last ran `ruflo init` — pre-3.31.3 nothing refreshed it, so any
|
|
131
|
+
// helpers change (e.g. the 2026-07-13 Line-3 funnel row addition)
|
|
132
|
+
// never reached existing installs. Same forward-only semver.gte
|
|
133
|
+
// guard applies to the global pass.
|
|
134
|
+
const r = await autoRefreshHelpersIfStale(process.cwd(), { alsoRefreshGlobal: true });
|
|
135
|
+
if (r.blocked) {
|
|
136
|
+
// Integrity failure = potential on-disk tampering of hook code. Warn
|
|
137
|
+
// loudly (not silent) — the existing project helpers were left intact.
|
|
138
|
+
this.output.printWarning(`Skipped helper auto-refresh — ${r.blocked}. Reinstall @claude-flow/cli from a trusted source.`);
|
|
139
|
+
}
|
|
140
|
+
else if (r.refreshed && this.output.isVerbose()) {
|
|
141
|
+
this.output.printDebug(`Refreshed .claude/helpers (${r.from} → ${r.to})`);
|
|
142
|
+
}
|
|
143
|
+
if (r.global?.refreshed && this.output.isVerbose()) {
|
|
144
|
+
this.output.printDebug(`Refreshed ~/.claude/helpers (${r.global.from} → ${r.global.to})`);
|
|
145
|
+
}
|
|
146
|
+
else if (r.global?.blocked && r.global.blocked !== r.blocked) {
|
|
147
|
+
this.output.printWarning(`Skipped ~/.claude/helpers auto-refresh — ${r.global.blocked}.`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch { /* silent */ }
|
|
151
|
+
// ADR-177: adopt a signed proven-configuration champion if the package
|
|
152
|
+
// ships one newer than this project's stamp AND it is authentic +
|
|
153
|
+
// suitable for this environment. Sibling of the helper channel above —
|
|
154
|
+
// its own stamp + trust root; additive no-op when no champion ships.
|
|
155
|
+
try {
|
|
156
|
+
const { autoAdoptProvenConfigIfStale } = await import('./config/proven-config-refresh.js');
|
|
157
|
+
const a = await autoAdoptProvenConfigIfStale(process.cwd());
|
|
158
|
+
if (a.adopted && this.output.isVerbose()) {
|
|
159
|
+
this.output.printDebug(`Adopted proven config (${a.from} → ${a.to})`);
|
|
160
|
+
}
|
|
161
|
+
// Close the loop (ADR-176 phase 9): promote the adopted champion to the
|
|
162
|
+
// ACTIVE policy that consumers (neural_patterns retrieval, …) read. A
|
|
163
|
+
// no-op if nothing is adopted or it is already active; reversible.
|
|
164
|
+
const { applyChampion } = await import('./config/harness-feedback-applier.js');
|
|
165
|
+
const ap = applyChampion(process.cwd());
|
|
166
|
+
if (ap.applied && this.output.isVerbose()) {
|
|
167
|
+
this.output.printDebug(`Applied proven config to active policy (${ap.from ?? '(none)'} → ${ap.to})`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch { /* silent */ }
|
|
171
|
+
// Self-running daemon: ensure the background workers (distillation,
|
|
172
|
+
// backup, …) are actually firing without a manual `daemon start`.
|
|
173
|
+
// Single-instance (only spawns when none is alive; the spawned daemon
|
|
174
|
+
// re-checks its own lock), bounded (TTL/idle self-shutdown), opt-out via
|
|
175
|
+
// RUFLO_DAEMON_AUTOSTART=0. Skipped for `daemon` (no recursion). Detached
|
|
176
|
+
// + fire-and-forget, so it never blocks the command.
|
|
177
|
+
if (commandPath[0] !== 'daemon') {
|
|
178
|
+
try {
|
|
179
|
+
const { ensureDaemonRunning } = await import('./services/daemon-autostart.js');
|
|
180
|
+
const d = ensureDaemonRunning(process.cwd());
|
|
181
|
+
if (d.started && this.output.isVerbose())
|
|
182
|
+
this.output.printDebug('Started background daemon (auto)');
|
|
183
|
+
}
|
|
184
|
+
catch { /* silent */ }
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Handle lazy-loaded commands that weren't recognized by the parser
|
|
188
|
+
// If commandPath is empty but positional has a command name, check if it's lazy-loadable
|
|
189
|
+
if (commandPath.length === 0 && positional.length > 0 && !positional[0].startsWith('-')) {
|
|
190
|
+
const potentialCommand = positional[0];
|
|
191
|
+
if (hasCommand(potentialCommand)) {
|
|
192
|
+
// This is a lazy-loaded command, treat it as the command
|
|
193
|
+
commandPath.push(potentialCommand);
|
|
194
|
+
positional.shift();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// No command - show help or suggest correction
|
|
198
|
+
if (commandPath.length === 0 || flags.help || flags.h) {
|
|
199
|
+
if (commandPath.length > 0) {
|
|
200
|
+
// #1791.4 — pass the FULL command path so subcommands like
|
|
201
|
+
// `hive-mind spawn --help` render spawn's own options/examples
|
|
202
|
+
// instead of falling back to the parent's SUBCOMMANDS list.
|
|
203
|
+
await this.showCommandHelp(commandPath);
|
|
204
|
+
}
|
|
205
|
+
else if (positional.length > 0 && !positional[0].startsWith('-')) {
|
|
206
|
+
// First positional looks like an attempted command - suggest correction
|
|
207
|
+
const attemptedCommand = positional[0];
|
|
208
|
+
this.output.printError(`Unknown command: ${attemptedCommand}`);
|
|
209
|
+
const availableCommands = Array.from(new Set([...commands.map(c => c.name), ...getCommandNames()]));
|
|
210
|
+
const { message } = suggestCommand(attemptedCommand, availableCommands);
|
|
211
|
+
this.output.writeln(this.output.dim(` ${message}`));
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
await this.showHelp();
|
|
216
|
+
}
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
// Find and execute command
|
|
220
|
+
const commandName = commandPath[0];
|
|
221
|
+
// First check the parser's registry (for dynamically registered commands)
|
|
222
|
+
// Then fall back to the static registry, then try lazy loading
|
|
223
|
+
let command = this.parser.getCommand(commandName) || getCommand(commandName);
|
|
224
|
+
// If not found in sync registry, try lazy loading
|
|
225
|
+
if (!command && hasCommand(commandName)) {
|
|
226
|
+
command = await getCommandAsync(commandName);
|
|
227
|
+
}
|
|
228
|
+
if (!command) {
|
|
229
|
+
this.output.printError(`Unknown command: ${commandName}`);
|
|
230
|
+
// Smart suggestions - include lazy-loadable commands in suggestions
|
|
231
|
+
const availableCommands = Array.from(new Set([...commands.map(c => c.name), ...getCommandNames()]));
|
|
232
|
+
const { message } = suggestCommand(commandName, availableCommands);
|
|
233
|
+
this.output.writeln(this.output.dim(` ${message}`));
|
|
234
|
+
process.exit(1);
|
|
235
|
+
}
|
|
236
|
+
// Handle subcommand (supports nested subcommands)
|
|
237
|
+
let targetCommand = command;
|
|
238
|
+
let subcommandArgs = positional;
|
|
239
|
+
// Process command path (e.g., ['hooks', 'worker', 'list'])
|
|
240
|
+
// Note: When parser includes subcommand in commandPath, positional already excludes it
|
|
241
|
+
if (commandPath.length > 1 && command.subcommands) {
|
|
242
|
+
const subcommandName = commandPath[1];
|
|
243
|
+
const subcommand = command.subcommands.find(sc => sc.name === subcommandName || sc.aliases?.includes(subcommandName));
|
|
244
|
+
if (subcommand) {
|
|
245
|
+
targetCommand = subcommand;
|
|
246
|
+
// Parser already extracted subcommand from positional, so use as-is
|
|
247
|
+
subcommandArgs = positional;
|
|
248
|
+
// Check for nested subcommand (level 2)
|
|
249
|
+
if (commandPath.length > 2 && subcommand.subcommands) {
|
|
250
|
+
const nestedName = commandPath[2];
|
|
251
|
+
const nestedSubcommand = subcommand.subcommands.find(sc => sc.name === nestedName || sc.aliases?.includes(nestedName));
|
|
252
|
+
if (nestedSubcommand) {
|
|
253
|
+
targetCommand = nestedSubcommand;
|
|
254
|
+
// Parser already extracted nested subcommand too
|
|
255
|
+
subcommandArgs = positional;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else if (positional.length > 0 && command.subcommands) {
|
|
261
|
+
// Check if first positional is a subcommand
|
|
262
|
+
const subcommandName = positional[0];
|
|
263
|
+
const subcommand = command.subcommands.find(sc => sc.name === subcommandName || sc.aliases?.includes(subcommandName));
|
|
264
|
+
if (subcommand) {
|
|
265
|
+
targetCommand = subcommand;
|
|
266
|
+
subcommandArgs = positional.slice(1);
|
|
267
|
+
// Check for nested subcommand (level 2 from positional)
|
|
268
|
+
if (subcommandArgs.length > 0 && subcommand.subcommands) {
|
|
269
|
+
const nestedName = subcommandArgs[0];
|
|
270
|
+
const nestedSubcommand = subcommand.subcommands.find(sc => sc.name === nestedName || sc.aliases?.includes(nestedName));
|
|
271
|
+
if (nestedSubcommand) {
|
|
272
|
+
targetCommand = nestedSubcommand;
|
|
273
|
+
subcommandArgs = subcommandArgs.slice(1);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Validate flags
|
|
279
|
+
const validationErrors = this.parser.validateFlags(flags, targetCommand);
|
|
280
|
+
if (validationErrors.length > 0) {
|
|
281
|
+
for (const error of validationErrors) {
|
|
282
|
+
this.output.printError(error);
|
|
283
|
+
}
|
|
284
|
+
process.exit(1);
|
|
285
|
+
}
|
|
286
|
+
// Build context
|
|
287
|
+
const ctx = {
|
|
288
|
+
args: subcommandArgs,
|
|
289
|
+
flags,
|
|
290
|
+
config: await this.loadConfig(flags.config),
|
|
291
|
+
cwd: process.cwd(),
|
|
292
|
+
interactive: this.interactive && !flags.quiet
|
|
293
|
+
};
|
|
294
|
+
// Execute command
|
|
295
|
+
if (targetCommand.action) {
|
|
296
|
+
if (this.output.isVerbose()) {
|
|
297
|
+
this.output.printDebug(`Executing: ${targetCommand.name}`);
|
|
298
|
+
}
|
|
299
|
+
const startTime = Date.now();
|
|
300
|
+
const result = await targetCommand.action(ctx);
|
|
301
|
+
if (this.output.isVerbose()) {
|
|
302
|
+
this.output.printDebug(`Completed in ${Date.now() - startTime}ms`);
|
|
303
|
+
}
|
|
304
|
+
if (result && !result.success) {
|
|
305
|
+
process.exit(result.exitCode || 1);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
// No action - show command help (full path so nested subcommands work)
|
|
310
|
+
await this.showCommandHelp(commandPath);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
// Don't re-handle if this is a process.exit error (from mocked tests)
|
|
315
|
+
const errorMessage = error.message;
|
|
316
|
+
if (errorMessage && errorMessage.startsWith('process.exit:')) {
|
|
317
|
+
throw error; // Re-throw so tests can capture the exit code
|
|
318
|
+
}
|
|
319
|
+
this.handleError(error);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Show main help
|
|
324
|
+
*/
|
|
325
|
+
async showHelp() {
|
|
326
|
+
this.output.writeln();
|
|
327
|
+
this.output.writeln(this.output.bold(`${this.name} v${this.version}`));
|
|
328
|
+
this.output.writeln(this.output.dim(this.description));
|
|
329
|
+
this.output.writeln();
|
|
330
|
+
this.output.writeln(this.output.bold('USAGE:'));
|
|
331
|
+
this.output.writeln(` ${this.name} <command> [subcommand] [options]`);
|
|
332
|
+
this.output.writeln();
|
|
333
|
+
// PERF-03: Load all commands by category (lazy-loaded on demand)
|
|
334
|
+
const categories = await getCommandsByCategory();
|
|
335
|
+
// Primary Commands
|
|
336
|
+
this.output.writeln(this.output.bold('PRIMARY COMMANDS:'));
|
|
337
|
+
for (const cmd of categories.primary) {
|
|
338
|
+
if (cmd.hidden)
|
|
339
|
+
continue;
|
|
340
|
+
const name = cmd.name.padEnd(12);
|
|
341
|
+
this.output.writeln(` ${this.output.highlight(name)} ${cmd.description}`);
|
|
342
|
+
}
|
|
343
|
+
this.output.writeln();
|
|
344
|
+
// Advanced Commands
|
|
345
|
+
if (categories.advanced.length > 0) {
|
|
346
|
+
this.output.writeln(this.output.bold('ADVANCED COMMANDS:'));
|
|
347
|
+
for (const cmd of categories.advanced) {
|
|
348
|
+
if (cmd.hidden)
|
|
349
|
+
continue;
|
|
350
|
+
const name = cmd.name.padEnd(12);
|
|
351
|
+
this.output.writeln(` ${this.output.highlight(name)} ${cmd.description}`);
|
|
352
|
+
}
|
|
353
|
+
this.output.writeln();
|
|
354
|
+
}
|
|
355
|
+
// Utility Commands
|
|
356
|
+
if (categories.utility.length > 0) {
|
|
357
|
+
this.output.writeln(this.output.bold('UTILITY COMMANDS:'));
|
|
358
|
+
for (const cmd of categories.utility) {
|
|
359
|
+
if (cmd.hidden)
|
|
360
|
+
continue;
|
|
361
|
+
const name = cmd.name.padEnd(12);
|
|
362
|
+
this.output.writeln(` ${this.output.highlight(name)} ${cmd.description}`);
|
|
363
|
+
}
|
|
364
|
+
this.output.writeln();
|
|
365
|
+
}
|
|
366
|
+
// Analysis Commands
|
|
367
|
+
if (categories.analysis.length > 0) {
|
|
368
|
+
this.output.writeln(this.output.bold('ANALYSIS COMMANDS:'));
|
|
369
|
+
for (const cmd of categories.analysis) {
|
|
370
|
+
if (cmd.hidden)
|
|
371
|
+
continue;
|
|
372
|
+
const name = cmd.name.padEnd(12);
|
|
373
|
+
this.output.writeln(` ${this.output.highlight(name)} ${cmd.description}`);
|
|
374
|
+
}
|
|
375
|
+
this.output.writeln();
|
|
376
|
+
}
|
|
377
|
+
// Management Commands
|
|
378
|
+
if (categories.management.length > 0) {
|
|
379
|
+
this.output.writeln(this.output.bold('MANAGEMENT COMMANDS:'));
|
|
380
|
+
for (const cmd of categories.management) {
|
|
381
|
+
if (cmd.hidden)
|
|
382
|
+
continue;
|
|
383
|
+
const name = cmd.name.padEnd(12);
|
|
384
|
+
this.output.writeln(` ${this.output.highlight(name)} ${cmd.description}`);
|
|
385
|
+
}
|
|
386
|
+
this.output.writeln();
|
|
387
|
+
}
|
|
388
|
+
this.output.writeln(this.output.bold('GLOBAL OPTIONS:'));
|
|
389
|
+
for (const opt of this.parser.getGlobalOptions()) {
|
|
390
|
+
const flags = opt.short ? `-${opt.short}, --${opt.name}` : ` --${opt.name}`;
|
|
391
|
+
this.output.writeln(` ${flags.padEnd(25)} ${opt.description}`);
|
|
392
|
+
}
|
|
393
|
+
this.output.writeln();
|
|
394
|
+
this.output.writeln(this.output.bold('V3 FEATURES:'));
|
|
395
|
+
this.output.printList([
|
|
396
|
+
'15-agent hierarchical mesh coordination',
|
|
397
|
+
'AgentDB with HNSW indexing (150x-12,500x faster)',
|
|
398
|
+
'Flash Attention (2.49x-7.47x speedup)',
|
|
399
|
+
'Unified SwarmCoordinator engine',
|
|
400
|
+
'Event-sourced state management',
|
|
401
|
+
'Domain-Driven Design architecture'
|
|
402
|
+
]);
|
|
403
|
+
this.output.writeln();
|
|
404
|
+
this.output.writeln(this.output.bold('EXAMPLES:'));
|
|
405
|
+
this.output.writeln(` ${this.name} agent spawn -t coder # Spawn a coder agent`);
|
|
406
|
+
this.output.writeln(` ${this.name} swarm init --v3-mode # Initialize V3 swarm`);
|
|
407
|
+
this.output.writeln(` ${this.name} memory search -q "auth patterns" # Semantic search`);
|
|
408
|
+
this.output.writeln(` ${this.name} mcp start # Start MCP server`);
|
|
409
|
+
this.output.writeln();
|
|
410
|
+
this.output.writeln(this.output.dim(`Run "${this.name} <command> --help" for command help`));
|
|
411
|
+
this.output.writeln();
|
|
412
|
+
this.output.writeln(this.output.dim('Created with ❤️ by ruv.io'));
|
|
413
|
+
this.output.writeln();
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Show command-specific help.
|
|
417
|
+
*
|
|
418
|
+
* #1791.4 — accepts a FULL command path (e.g. ['hive-mind', 'spawn']) and
|
|
419
|
+
* walks subcommands so nested invocations show the leaf's own options /
|
|
420
|
+
* examples instead of always rendering the parent's SUBCOMMANDS list.
|
|
421
|
+
*/
|
|
422
|
+
async showCommandHelp(commandPathOrName) {
|
|
423
|
+
const commandPath = Array.isArray(commandPathOrName) ? commandPathOrName : [commandPathOrName];
|
|
424
|
+
if (commandPath.length === 0) {
|
|
425
|
+
await this.showHelp();
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
const rootName = commandPath[0];
|
|
429
|
+
// Try sync first, then lazy load
|
|
430
|
+
let command = getCommand(rootName);
|
|
431
|
+
if (!command && hasCommand(rootName)) {
|
|
432
|
+
command = await getCommandAsync(rootName);
|
|
433
|
+
}
|
|
434
|
+
if (!command) {
|
|
435
|
+
this.output.printError(`Unknown command: ${rootName}`);
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
// Walk into subcommands following the path so `hive-mind spawn --help`
|
|
439
|
+
// renders spawn's help, not hive-mind's parent help. We use a non-null
|
|
440
|
+
// local (`current`) instead of reassigning the optional `command` so
|
|
441
|
+
// TS can prove the value is defined for the rest of the function.
|
|
442
|
+
let current = command;
|
|
443
|
+
const titleParts = [current.name];
|
|
444
|
+
for (let i = 1; i < commandPath.length; i++) {
|
|
445
|
+
const subName = commandPath[i];
|
|
446
|
+
const sub = current.subcommands?.find(sc => sc.name === subName || sc.aliases?.includes(subName));
|
|
447
|
+
if (!sub)
|
|
448
|
+
break; // unknown leaf — fall back to last known
|
|
449
|
+
current = sub;
|
|
450
|
+
titleParts.push(sub.name);
|
|
451
|
+
}
|
|
452
|
+
this.output.writeln();
|
|
453
|
+
this.output.writeln(this.output.bold(`${this.name} ${titleParts.join(' ')}`));
|
|
454
|
+
this.output.writeln(current.description);
|
|
455
|
+
this.output.writeln();
|
|
456
|
+
// Subcommands
|
|
457
|
+
if (current.subcommands && current.subcommands.length > 0) {
|
|
458
|
+
this.output.writeln(this.output.bold('SUBCOMMANDS:'));
|
|
459
|
+
for (const sub of current.subcommands) {
|
|
460
|
+
if (sub.hidden)
|
|
461
|
+
continue;
|
|
462
|
+
const name = sub.name.padEnd(15);
|
|
463
|
+
const aliases = sub.aliases ? this.output.dim(` (${sub.aliases.join(', ')})`) : '';
|
|
464
|
+
this.output.writeln(` ${this.output.highlight(name)} ${sub.description}${aliases}`);
|
|
465
|
+
}
|
|
466
|
+
this.output.writeln();
|
|
467
|
+
}
|
|
468
|
+
// Options
|
|
469
|
+
if (current.options && current.options.length > 0) {
|
|
470
|
+
this.output.writeln(this.output.bold('OPTIONS:'));
|
|
471
|
+
for (const opt of current.options) {
|
|
472
|
+
const flags = opt.short ? `-${opt.short}, --${opt.name}` : ` --${opt.name}`;
|
|
473
|
+
const required = opt.required ? this.output.error(' (required)') : '';
|
|
474
|
+
const defaultVal = opt.default !== undefined ? this.output.dim(` [default: ${opt.default}]`) : '';
|
|
475
|
+
this.output.writeln(` ${flags.padEnd(25)} ${opt.description}${required}${defaultVal}`);
|
|
476
|
+
}
|
|
477
|
+
this.output.writeln();
|
|
478
|
+
}
|
|
479
|
+
// Examples
|
|
480
|
+
if (current.examples && current.examples.length > 0) {
|
|
481
|
+
this.output.writeln(this.output.bold('EXAMPLES:'));
|
|
482
|
+
for (const example of current.examples) {
|
|
483
|
+
this.output.writeln(` ${this.output.dim('$')} ${example.command}`);
|
|
484
|
+
this.output.writeln(` ${this.output.dim(example.description)}`);
|
|
485
|
+
}
|
|
486
|
+
this.output.writeln();
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Show version
|
|
491
|
+
*/
|
|
492
|
+
showVersion() {
|
|
493
|
+
this.output.writeln(`${this.name} v${this.version}`);
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Check for updates on startup (non-blocking)
|
|
497
|
+
* Shows notification if updates are available
|
|
498
|
+
*/
|
|
499
|
+
async checkForUpdatesOnStartup() {
|
|
500
|
+
try {
|
|
501
|
+
const result = await runStartupUpdateCheck({ autoUpdate: true });
|
|
502
|
+
// Show notifications for available updates that weren't auto-applied
|
|
503
|
+
if (result.checked && result.updatesAvailable.length > 0) {
|
|
504
|
+
const nonAutoUpdates = result.updatesAvailable.filter(u => !u.shouldAutoUpdate);
|
|
505
|
+
if (result.updatesApplied.length > 0) {
|
|
506
|
+
this.output.writeln(this.output.dim(`Auto-updated: ${result.updatesApplied.join(', ')}`));
|
|
507
|
+
}
|
|
508
|
+
if (nonAutoUpdates.length > 0) {
|
|
509
|
+
this.output.writeln(this.output.dim(`Updates available: ${nonAutoUpdates.map(u => `${u.package}@${u.latestVersion}`).join(', ')}`));
|
|
510
|
+
this.output.writeln(this.output.dim(`Run '${this.name} update check' for details`));
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
// Silently fail - don't interrupt CLI usage
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Load configuration file
|
|
520
|
+
*/
|
|
521
|
+
async loadConfig(configPath) {
|
|
522
|
+
try {
|
|
523
|
+
// Import config utilities
|
|
524
|
+
const { loadConfig: loadSystemConfig } = await import('@claude-flow/shared');
|
|
525
|
+
const { systemConfigToV3Config } = await import('./config-adapter.js');
|
|
526
|
+
// Load configuration
|
|
527
|
+
const loaded = await loadSystemConfig({
|
|
528
|
+
file: configPath,
|
|
529
|
+
paths: configPath ? undefined : [process.cwd()],
|
|
530
|
+
});
|
|
531
|
+
// Convert to V3Config format
|
|
532
|
+
const v3Config = systemConfigToV3Config(loaded.config);
|
|
533
|
+
// Log warnings if any
|
|
534
|
+
if (loaded.warnings && loaded.warnings.length > 0) {
|
|
535
|
+
for (const warning of loaded.warnings) {
|
|
536
|
+
this.output.printWarning(warning);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
return v3Config;
|
|
540
|
+
}
|
|
541
|
+
catch (error) {
|
|
542
|
+
// Config loading is optional - don't fail if it doesn't exist
|
|
543
|
+
if (process.env.DEBUG) {
|
|
544
|
+
this.output.writeln(this.output.dim(`Config loading failed: ${error.message}`));
|
|
545
|
+
}
|
|
546
|
+
return undefined;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* Handle errors
|
|
551
|
+
*/
|
|
552
|
+
handleError(error) {
|
|
553
|
+
if ('code' in error) {
|
|
554
|
+
// CLIError
|
|
555
|
+
const cliError = error;
|
|
556
|
+
this.output.printError(cliError.message);
|
|
557
|
+
if (cliError.details) {
|
|
558
|
+
this.output.writeln(this.output.dim(JSON.stringify(cliError.details, null, 2)));
|
|
559
|
+
}
|
|
560
|
+
process.exit(cliError.exitCode);
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
// Generic error
|
|
564
|
+
this.output.printError(error.message);
|
|
565
|
+
if (process.env.DEBUG) {
|
|
566
|
+
this.output.writeln();
|
|
567
|
+
this.output.writeln(this.output.dim(error.stack || ''));
|
|
568
|
+
}
|
|
569
|
+
process.exit(1);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
// =============================================================================
|
|
574
|
+
// Module Exports
|
|
575
|
+
// =============================================================================
|
|
576
|
+
// Types
|
|
577
|
+
export * from './types.js';
|
|
578
|
+
// Parser
|
|
579
|
+
export { CommandParser, commandParser } from './parser.js';
|
|
580
|
+
// Output
|
|
581
|
+
export { OutputFormatter, output, Progress, Spinner } from './output.js';
|
|
582
|
+
// Prompt
|
|
583
|
+
export * from './prompt.js';
|
|
584
|
+
// Commands (internal use)
|
|
585
|
+
export * from './commands/index.js';
|
|
586
|
+
// MCP Server management
|
|
587
|
+
export { MCPServerManager, createMCPServerManager, getServerManager, startMCPServer, stopMCPServer, getMCPServerStatus, } from './mcp-server.js';
|
|
588
|
+
// Memory & Intelligence (V3 Performance Features)
|
|
589
|
+
export { initializeMemoryDatabase, repairVectorIndexes, recoverMemoryDatabase, generateEmbedding, generateBatchEmbeddings, storeEntry, searchEntries, getHNSWIndex, addToHNSWIndex, searchHNSWIndex, getHNSWStatus, clearHNSWIndex, quantizeInt8, dequantizeInt8, quantizedCosineSim, getQuantizationStats,
|
|
590
|
+
// Flash Attention-style batch operations
|
|
591
|
+
batchCosineSim, softmaxAttention, topKIndices, flashAttentionSearch, } from './memory/memory-initializer.js';
|
|
592
|
+
export { initializeIntelligence, recordStep, recordTrajectory, findSimilarPatterns, getIntelligenceStats, getSonaCoordinator, getReasoningBank, clearIntelligence, benchmarkAdaptation,
|
|
593
|
+
// RL loop API
|
|
594
|
+
endTrajectoryWithVerdict, distillLearning,
|
|
595
|
+
// Pattern persistence API
|
|
596
|
+
getAllPatterns, getPatternsByType, flushPatterns, deletePattern, clearAllPatterns, getNeuralDataDir, getPersistenceStatus, } from './memory/intelligence.js';
|
|
597
|
+
// EWC++ Consolidation (Prevents Catastrophic Forgetting)
|
|
598
|
+
export { EWCConsolidator, getEWCConsolidator, resetEWCConsolidator, consolidatePatterns, recordPatternOutcome, getEWCStats, } from './memory/ewc-consolidation.js';
|
|
599
|
+
// SONA Optimizer (Adaptive Routing via Trajectory Learning)
|
|
600
|
+
export { SONAOptimizer, getSONAOptimizer, resetSONAOptimizer, processTrajectory, getSuggestion, getSONAStats, } from './memory/sona-optimizer.js';
|
|
601
|
+
// Production Hardening
|
|
602
|
+
export { ErrorHandler, withErrorHandling, } from './production/error-handler.js';
|
|
603
|
+
export { RateLimiter, createRateLimiter, } from './production/rate-limiter.js';
|
|
604
|
+
export { withRetry, makeRetryable, } from './production/retry.js';
|
|
605
|
+
export { CircuitBreaker, getCircuitBreaker, getAllCircuitStats, resetAllCircuits, } from './production/circuit-breaker.js';
|
|
606
|
+
export { MonitoringHooks, createMonitor, getMonitor, } from './production/monitoring.js';
|
|
607
|
+
// Default export
|
|
608
|
+
export default CLI;
|
|
609
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Repositories - CLI Infrastructure
|
|
3
|
+
*
|
|
4
|
+
* Lightweight in-memory implementations for CLI use.
|
|
5
|
+
*
|
|
6
|
+
* @module v3/cli/infrastructure
|
|
7
|
+
*/
|
|
8
|
+
import { Agent, AgentStatus, AgentRole } from '../../../swarm/src/domain/entities/agent.js';
|
|
9
|
+
import { Task, TaskStatus, TaskPriority } from '../../../swarm/src/domain/entities/task.js';
|
|
10
|
+
import { IAgentRepository, AgentQueryOptions, AgentStatistics } from '../../../swarm/src/domain/repositories/agent-repository.interface.js';
|
|
11
|
+
import { ITaskRepository, TaskQueryOptions, TaskStatistics } from '../../../swarm/src/domain/repositories/task-repository.interface.js';
|
|
12
|
+
/**
|
|
13
|
+
* In-Memory Agent Repository
|
|
14
|
+
*/
|
|
15
|
+
export declare class InMemoryAgentRepository implements IAgentRepository {
|
|
16
|
+
private agents;
|
|
17
|
+
private initialized;
|
|
18
|
+
initialize(): Promise<void>;
|
|
19
|
+
shutdown(): Promise<void>;
|
|
20
|
+
clear(): Promise<void>;
|
|
21
|
+
save(agent: Agent): Promise<void>;
|
|
22
|
+
findById(id: string): Promise<Agent | null>;
|
|
23
|
+
findByName(name: string): Promise<Agent | null>;
|
|
24
|
+
delete(id: string): Promise<boolean>;
|
|
25
|
+
exists(id: string): Promise<boolean>;
|
|
26
|
+
saveMany(agents: Agent[]): Promise<void>;
|
|
27
|
+
findByIds(ids: string[]): Promise<Agent[]>;
|
|
28
|
+
deleteMany(ids: string[]): Promise<number>;
|
|
29
|
+
findAll(options?: AgentQueryOptions): Promise<Agent[]>;
|
|
30
|
+
findByStatus(status: AgentStatus): Promise<Agent[]>;
|
|
31
|
+
findByRole(role: AgentRole): Promise<Agent[]>;
|
|
32
|
+
findByDomain(domain: string): Promise<Agent[]>;
|
|
33
|
+
findByParent(parentId: string): Promise<Agent[]>;
|
|
34
|
+
findByCapability(capability: string): Promise<Agent[]>;
|
|
35
|
+
findAvailable(): Promise<Agent[]>;
|
|
36
|
+
getStatistics(): Promise<AgentStatistics>;
|
|
37
|
+
count(options?: AgentQueryOptions): Promise<number>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* In-Memory Task Repository
|
|
41
|
+
*/
|
|
42
|
+
export declare class InMemoryTaskRepository implements ITaskRepository {
|
|
43
|
+
private tasks;
|
|
44
|
+
private initialized;
|
|
45
|
+
initialize(): Promise<void>;
|
|
46
|
+
shutdown(): Promise<void>;
|
|
47
|
+
clear(): Promise<void>;
|
|
48
|
+
save(task: Task): Promise<void>;
|
|
49
|
+
findById(id: string): Promise<Task | null>;
|
|
50
|
+
delete(id: string): Promise<boolean>;
|
|
51
|
+
exists(id: string): Promise<boolean>;
|
|
52
|
+
saveMany(tasks: Task[]): Promise<void>;
|
|
53
|
+
findByIds(ids: string[]): Promise<Task[]>;
|
|
54
|
+
deleteMany(ids: string[]): Promise<number>;
|
|
55
|
+
findAll(options?: TaskQueryOptions): Promise<Task[]>;
|
|
56
|
+
findByStatus(status: TaskStatus): Promise<Task[]>;
|
|
57
|
+
findByPriority(priority: TaskPriority): Promise<Task[]>;
|
|
58
|
+
findByAgent(agentId: string): Promise<Task[]>;
|
|
59
|
+
findPending(): Promise<Task[]>;
|
|
60
|
+
findQueued(): Promise<Task[]>;
|
|
61
|
+
findRunning(): Promise<Task[]>;
|
|
62
|
+
findTimedOut(): Promise<Task[]>;
|
|
63
|
+
getNextTask(agentCapabilities?: string[]): Promise<Task | null>;
|
|
64
|
+
getTaskQueue(limit?: number): Promise<Task[]>;
|
|
65
|
+
getStatistics(): Promise<TaskStatistics>;
|
|
66
|
+
count(options?: TaskQueryOptions): Promise<number>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=in-memory-repositories.d.ts.map
|