@aigentic/claude-flow 3.7.0-alpha.69
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 +222 -0
- package/.claude/agents/analysis/analyze-code-quality.md +58 -0
- package/.claude/agents/analysis/code-analyzer.md +189 -0
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +58 -0
- package/.claude/agents/architecture/arch-system-design.md +157 -0
- package/.claude/agents/architecture/system-design/arch-system-design.md +36 -0
- package/.claude/agents/base-template-generator.md +41 -0
- package/.claude/agents/browser/browser-agent.yaml +182 -0
- package/.claude/agents/consensus/byzantine-coordinator.md +43 -0
- package/.claude/agents/consensus/crdt-synchronizer.md +977 -0
- package/.claude/agents/consensus/gossip-coordinator.md +43 -0
- package/.claude/agents/consensus/performance-benchmarker.md +831 -0
- package/.claude/agents/consensus/quorum-manager.md +803 -0
- package/.claude/agents/consensus/raft-manager.md +43 -0
- package/.claude/agents/consensus/security-manager.md +602 -0
- package/.claude/agents/core/coder.md +255 -0
- package/.claude/agents/core/planner.md +152 -0
- package/.claude/agents/core/researcher.md +174 -0
- package/.claude/agents/core/reviewer.md +309 -0
- package/.claude/agents/core/tester.md +300 -0
- package/.claude/agents/custom/test-long-runner.md +43 -0
- package/.claude/agents/data/data-ml-model.md +445 -0
- package/.claude/agents/data/ml/data-ml-model.md +76 -0
- package/.claude/agents/database-specialist.md +9 -0
- package/.claude/agents/development/backend/dev-backend-api.md +29 -0
- package/.claude/agents/development/dev-backend-api.md +178 -0
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +52 -0
- package/.claude/agents/devops/ops-cicd-github.md +165 -0
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +63 -0
- package/.claude/agents/documentation/docs-api-openapi.md +355 -0
- package/.claude/agents/dual-mode/codex-coordinator.md +206 -0
- package/.claude/agents/dual-mode/codex-worker.md +190 -0
- package/.claude/agents/dual-mode/dual-orchestrator.md +253 -0
- package/.claude/agents/flow-nexus/app-store.md +88 -0
- package/.claude/agents/flow-nexus/authentication.md +69 -0
- package/.claude/agents/flow-nexus/challenges.md +81 -0
- package/.claude/agents/flow-nexus/neural-network.md +88 -0
- package/.claude/agents/flow-nexus/payments.md +83 -0
- package/.claude/agents/flow-nexus/sandbox.md +76 -0
- package/.claude/agents/flow-nexus/swarm.md +76 -0
- package/.claude/agents/flow-nexus/user-tools.md +96 -0
- package/.claude/agents/flow-nexus/workflow.md +84 -0
- package/.claude/agents/github/code-review-swarm.md +521 -0
- package/.claude/agents/github/github-modes.md +154 -0
- package/.claude/agents/github/issue-tracker.md +299 -0
- package/.claude/agents/github/multi-repo-swarm.md +525 -0
- package/.claude/agents/github/pr-manager.md +163 -0
- package/.claude/agents/github/project-board-sync.md +478 -0
- package/.claude/agents/github/release-manager.md +336 -0
- package/.claude/agents/github/release-swarm.md +551 -0
- package/.claude/agents/github/repo-architect.md +365 -0
- package/.claude/agents/github/swarm-issue.md +548 -0
- package/.claude/agents/github/swarm-pr.md +399 -0
- package/.claude/agents/github/sync-coordinator.md +423 -0
- package/.claude/agents/github/workflow-automation.md +605 -0
- package/.claude/agents/goal/agent.md +817 -0
- package/.claude/agents/goal/code-goal-planner.md +445 -0
- package/.claude/agents/goal/goal-planner.md +168 -0
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -0
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -0
- package/.claude/agents/hive-mind/scout-explorer.md +241 -0
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -0
- package/.claude/agents/hive-mind/worker-specialist.md +216 -0
- package/.claude/agents/neural/safla-neural.md +74 -0
- package/.claude/agents/optimization/benchmark-suite.md +663 -0
- package/.claude/agents/optimization/load-balancer.md +429 -0
- package/.claude/agents/optimization/performance-monitor.md +670 -0
- package/.claude/agents/optimization/resource-allocator.md +672 -0
- package/.claude/agents/optimization/topology-optimizer.md +806 -0
- package/.claude/agents/payments/agentic-payments.md +126 -0
- package/.claude/agents/project-coordinator.md +8 -0
- package/.claude/agents/python-specialist.md +9 -0
- package/.claude/agents/reasoning/agent.md +817 -0
- package/.claude/agents/reasoning/goal-planner.md +73 -0
- package/.claude/agents/security-auditor.md +9 -0
- package/.claude/agents/sona/sona-learning-optimizer.md +65 -0
- package/.claude/agents/sparc/architecture.md +453 -0
- package/.claude/agents/sparc/pseudocode.md +299 -0
- package/.claude/agents/sparc/refinement.md +504 -0
- package/.claude/agents/sparc/specification.md +258 -0
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +88 -0
- package/.claude/agents/specialized/spec-mobile-react-native.md +227 -0
- package/.claude/agents/sublinear/consensus-coordinator.md +338 -0
- package/.claude/agents/sublinear/matrix-optimizer.md +185 -0
- package/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
- package/.claude/agents/sublinear/performance-optimizer.md +368 -0
- package/.claude/agents/sublinear/trading-predictor.md +246 -0
- package/.claude/agents/swarm/adaptive-coordinator.md +364 -0
- package/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
- package/.claude/agents/swarm/mesh-coordinator.md +363 -0
- package/.claude/agents/templates/automation-smart-agent.md +185 -0
- package/.claude/agents/templates/base-template-generator.md +289 -0
- package/.claude/agents/templates/coordinator-swarm-init.md +83 -0
- package/.claude/agents/templates/github-pr-manager.md +155 -0
- package/.claude/agents/templates/implementer-sparc-coder.md +243 -0
- package/.claude/agents/templates/memory-coordinator.md +163 -0
- package/.claude/agents/templates/migration-plan.md +724 -0
- package/.claude/agents/templates/orchestrator-task.md +120 -0
- package/.claude/agents/templates/performance-analyzer.md +179 -0
- package/.claude/agents/templates/sparc-coordinator.md +163 -0
- package/.claude/agents/testing/production-validator.md +373 -0
- package/.claude/agents/testing/tdd-london-swarm.md +222 -0
- package/.claude/agents/testing/unit/tdd-london-swarm.md +222 -0
- package/.claude/agents/testing/validation/production-validator.md +373 -0
- package/.claude/agents/typescript-specialist.md +9 -0
- package/.claude/agents/v3/adr-architect.md +184 -0
- package/.claude/agents/v3/aidefence-guardian.md +282 -0
- package/.claude/agents/v3/claims-authorizer.md +208 -0
- package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -0
- package/.claude/agents/v3/database-specialist.md +9 -0
- package/.claude/agents/v3/ddd-domain-expert.md +220 -0
- package/.claude/agents/v3/injection-analyst.md +236 -0
- package/.claude/agents/v3/memory-specialist.md +995 -0
- package/.claude/agents/v3/performance-engineer.md +1233 -0
- package/.claude/agents/v3/pii-detector.md +151 -0
- package/.claude/agents/v3/project-coordinator.md +8 -0
- package/.claude/agents/v3/python-specialist.md +9 -0
- package/.claude/agents/v3/reasoningbank-learner.md +213 -0
- package/.claude/agents/v3/security-architect-aidefence.md +410 -0
- package/.claude/agents/v3/security-architect.md +867 -0
- package/.claude/agents/v3/security-auditor.md +771 -0
- package/.claude/agents/v3/sparc-orchestrator.md +182 -0
- package/.claude/agents/v3/swarm-memory-manager.md +157 -0
- package/.claude/agents/v3/test-architect.md +9 -0
- package/.claude/agents/v3/typescript-specialist.md +9 -0
- package/.claude/agents/v3/v3-integration-architect.md +312 -0
- package/.claude/agents/v3/v3-memory-specialist.md +281 -0
- package/.claude/agents/v3/v3-performance-engineer.md +363 -0
- package/.claude/agents/v3/v3-queen-coordinator.md +63 -0
- package/.claude/agents/v3/v3-security-architect.md +140 -0
- package/.claude/checkpoints/1767754460.json +8 -0
- package/.claude/commands/agents/README.md +10 -0
- package/.claude/commands/agents/agent-capabilities.md +21 -0
- package/.claude/commands/agents/agent-coordination.md +28 -0
- package/.claude/commands/agents/agent-spawning.md +28 -0
- package/.claude/commands/agents/agent-types.md +26 -0
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
- package/.claude/commands/analysis/README.md +9 -0
- package/.claude/commands/analysis/bottleneck-detect.md +162 -0
- package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
- package/.claude/commands/analysis/performance-report.md +25 -0
- package/.claude/commands/analysis/token-efficiency.md +45 -0
- package/.claude/commands/analysis/token-usage.md +25 -0
- package/.claude/commands/automation/README.md +9 -0
- package/.claude/commands/automation/auto-agent.md +122 -0
- package/.claude/commands/automation/self-healing.md +106 -0
- package/.claude/commands/automation/session-memory.md +90 -0
- package/.claude/commands/automation/smart-agents.md +73 -0
- package/.claude/commands/automation/smart-spawn.md +25 -0
- package/.claude/commands/automation/workflow-select.md +25 -0
- package/.claude/commands/claude-flow-help.md +103 -0
- package/.claude/commands/claude-flow-memory.md +107 -0
- package/.claude/commands/claude-flow-swarm.md +205 -0
- package/.claude/commands/coordination/README.md +9 -0
- package/.claude/commands/coordination/agent-spawn.md +25 -0
- package/.claude/commands/coordination/init.md +44 -0
- package/.claude/commands/coordination/orchestrate.md +43 -0
- package/.claude/commands/coordination/spawn.md +45 -0
- package/.claude/commands/coordination/swarm-init.md +85 -0
- package/.claude/commands/coordination/task-orchestrate.md +25 -0
- package/.claude/commands/flow-nexus/app-store.md +124 -0
- package/.claude/commands/flow-nexus/challenges.md +120 -0
- package/.claude/commands/flow-nexus/login-registration.md +65 -0
- package/.claude/commands/flow-nexus/neural-network.md +134 -0
- package/.claude/commands/flow-nexus/payments.md +116 -0
- package/.claude/commands/flow-nexus/sandbox.md +83 -0
- package/.claude/commands/flow-nexus/swarm.md +87 -0
- package/.claude/commands/flow-nexus/user-tools.md +152 -0
- package/.claude/commands/flow-nexus/workflow.md +115 -0
- package/.claude/commands/github/README.md +11 -0
- package/.claude/commands/github/code-review-swarm.md +514 -0
- package/.claude/commands/github/code-review.md +25 -0
- package/.claude/commands/github/github-modes.md +147 -0
- package/.claude/commands/github/github-swarm.md +121 -0
- package/.claude/commands/github/issue-tracker.md +292 -0
- package/.claude/commands/github/issue-triage.md +25 -0
- package/.claude/commands/github/multi-repo-swarm.md +519 -0
- package/.claude/commands/github/pr-enhance.md +26 -0
- package/.claude/commands/github/pr-manager.md +170 -0
- package/.claude/commands/github/project-board-sync.md +471 -0
- package/.claude/commands/github/release-manager.md +338 -0
- package/.claude/commands/github/release-swarm.md +544 -0
- package/.claude/commands/github/repo-analyze.md +25 -0
- package/.claude/commands/github/repo-architect.md +367 -0
- package/.claude/commands/github/swarm-issue.md +482 -0
- package/.claude/commands/github/swarm-pr.md +285 -0
- package/.claude/commands/github/sync-coordinator.md +301 -0
- package/.claude/commands/github/workflow-automation.md +442 -0
- package/.claude/commands/hive-mind/README.md +17 -0
- package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
- package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
- package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
- package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
- package/.claude/commands/hive-mind/hive-mind.md +27 -0
- package/.claude/commands/hooks/README.md +11 -0
- package/.claude/commands/hooks/overview.md +58 -0
- package/.claude/commands/hooks/post-edit.md +117 -0
- package/.claude/commands/hooks/post-task.md +112 -0
- package/.claude/commands/hooks/pre-edit.md +113 -0
- package/.claude/commands/hooks/pre-task.md +111 -0
- package/.claude/commands/hooks/session-end.md +118 -0
- package/.claude/commands/hooks/setup.md +103 -0
- package/.claude/commands/memory/README.md +9 -0
- package/.claude/commands/memory/memory-persist.md +25 -0
- package/.claude/commands/memory/memory-search.md +25 -0
- package/.claude/commands/memory/memory-usage.md +25 -0
- package/.claude/commands/memory/neural.md +47 -0
- package/.claude/commands/monitoring/README.md +9 -0
- package/.claude/commands/monitoring/agent-metrics.md +25 -0
- package/.claude/commands/monitoring/agents.md +44 -0
- package/.claude/commands/monitoring/real-time-view.md +25 -0
- package/.claude/commands/monitoring/status.md +46 -0
- package/.claude/commands/monitoring/swarm-monitor.md +25 -0
- package/.claude/commands/optimization/README.md +9 -0
- package/.claude/commands/optimization/auto-topology.md +62 -0
- package/.claude/commands/optimization/cache-manage.md +25 -0
- package/.claude/commands/optimization/parallel-execute.md +25 -0
- package/.claude/commands/optimization/parallel-execution.md +50 -0
- package/.claude/commands/optimization/topology-optimize.md +25 -0
- package/.claude/commands/pair/README.md +261 -0
- package/.claude/commands/pair/commands.md +546 -0
- package/.claude/commands/pair/config.md +510 -0
- package/.claude/commands/pair/examples.md +512 -0
- package/.claude/commands/pair/modes.md +348 -0
- package/.claude/commands/pair/session.md +407 -0
- package/.claude/commands/pair/start.md +209 -0
- package/.claude/commands/sparc/analyzer.md +52 -0
- package/.claude/commands/sparc/architect.md +53 -0
- package/.claude/commands/sparc/ask.md +97 -0
- package/.claude/commands/sparc/batch-executor.md +54 -0
- package/.claude/commands/sparc/code.md +89 -0
- package/.claude/commands/sparc/coder.md +54 -0
- package/.claude/commands/sparc/debug.md +83 -0
- package/.claude/commands/sparc/debugger.md +54 -0
- package/.claude/commands/sparc/designer.md +53 -0
- package/.claude/commands/sparc/devops.md +109 -0
- package/.claude/commands/sparc/docs-writer.md +80 -0
- package/.claude/commands/sparc/documenter.md +54 -0
- package/.claude/commands/sparc/innovator.md +54 -0
- package/.claude/commands/sparc/integration.md +83 -0
- package/.claude/commands/sparc/mcp.md +117 -0
- package/.claude/commands/sparc/memory-manager.md +54 -0
- package/.claude/commands/sparc/optimizer.md +54 -0
- package/.claude/commands/sparc/orchestrator.md +132 -0
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
- package/.claude/commands/sparc/researcher.md +54 -0
- package/.claude/commands/sparc/reviewer.md +54 -0
- package/.claude/commands/sparc/security-review.md +80 -0
- package/.claude/commands/sparc/sparc-modes.md +174 -0
- package/.claude/commands/sparc/sparc.md +111 -0
- package/.claude/commands/sparc/spec-pseudocode.md +80 -0
- package/.claude/commands/sparc/supabase-admin.md +348 -0
- package/.claude/commands/sparc/swarm-coordinator.md +54 -0
- package/.claude/commands/sparc/tdd.md +54 -0
- package/.claude/commands/sparc/tester.md +54 -0
- package/.claude/commands/sparc/tutorial.md +79 -0
- package/.claude/commands/sparc/workflow-manager.md +54 -0
- package/.claude/commands/sparc.md +166 -0
- package/.claude/commands/stream-chain/pipeline.md +121 -0
- package/.claude/commands/stream-chain/run.md +70 -0
- package/.claude/commands/swarm/README.md +15 -0
- package/.claude/commands/swarm/analysis.md +95 -0
- package/.claude/commands/swarm/development.md +96 -0
- package/.claude/commands/swarm/examples.md +168 -0
- package/.claude/commands/swarm/maintenance.md +102 -0
- package/.claude/commands/swarm/optimization.md +117 -0
- package/.claude/commands/swarm/research.md +136 -0
- package/.claude/commands/swarm/swarm-analysis.md +8 -0
- package/.claude/commands/swarm/swarm-background.md +8 -0
- package/.claude/commands/swarm/swarm-init.md +19 -0
- package/.claude/commands/swarm/swarm-modes.md +8 -0
- package/.claude/commands/swarm/swarm-monitor.md +8 -0
- package/.claude/commands/swarm/swarm-spawn.md +19 -0
- package/.claude/commands/swarm/swarm-status.md +8 -0
- package/.claude/commands/swarm/swarm-strategies.md +8 -0
- package/.claude/commands/swarm/swarm.md +27 -0
- package/.claude/commands/swarm/testing.md +131 -0
- package/.claude/commands/training/README.md +9 -0
- package/.claude/commands/training/model-update.md +25 -0
- package/.claude/commands/training/neural-patterns.md +74 -0
- package/.claude/commands/training/neural-train.md +25 -0
- package/.claude/commands/training/pattern-learn.md +25 -0
- package/.claude/commands/training/specialization.md +63 -0
- package/.claude/commands/truth/start.md +143 -0
- package/.claude/commands/verify/check.md +50 -0
- package/.claude/commands/verify/start.md +128 -0
- package/.claude/commands/workflows/README.md +9 -0
- package/.claude/commands/workflows/development.md +78 -0
- package/.claude/commands/workflows/research.md +63 -0
- package/.claude/commands/workflows/workflow-create.md +25 -0
- package/.claude/commands/workflows/workflow-execute.md +25 -0
- package/.claude/commands/workflows/workflow-export.md +25 -0
- package/.claude/config/v3-dependency-optimization.json +266 -0
- package/.claude/config/v3-performance-targets.json +251 -0
- package/.claude/helpers/README.md +97 -0
- package/.claude/helpers/adr-compliance.sh +186 -0
- package/.claude/helpers/aggressive-microcompact.mjs +36 -0
- package/.claude/helpers/auto-commit.sh +178 -0
- package/.claude/helpers/auto-memory-hook.mjs +564 -0
- package/.claude/helpers/checkpoint-manager.sh +251 -0
- package/.claude/helpers/context-persistence-hook.mjs +1979 -0
- package/.claude/helpers/daemon-manager.sh +252 -0
- package/.claude/helpers/ddd-tracker.sh +144 -0
- package/.claude/helpers/github-safe.js +106 -0
- package/.claude/helpers/github-setup.sh +28 -0
- package/.claude/helpers/guidance-hook.sh +13 -0
- package/.claude/helpers/guidance-hooks.sh +102 -0
- package/.claude/helpers/health-monitor.sh +108 -0
- package/.claude/helpers/hook-handler.cjs +269 -0
- package/.claude/helpers/intelligence.cjs +230 -0
- package/.claude/helpers/learning-hooks.sh +329 -0
- package/.claude/helpers/learning-optimizer.sh +127 -0
- package/.claude/helpers/learning-service.mjs +1144 -0
- package/.claude/helpers/memory.cjs +84 -0
- package/.claude/helpers/memory.js +83 -0
- package/.claude/helpers/metrics-db.mjs +488 -0
- package/.claude/helpers/patch-aggressive-prune.mjs +184 -0
- package/.claude/helpers/pattern-consolidator.sh +86 -0
- package/.claude/helpers/perf-worker.sh +160 -0
- package/.claude/helpers/post-commit +16 -0
- package/.claude/helpers/pre-commit +26 -0
- package/.claude/helpers/quick-start.sh +19 -0
- package/.claude/helpers/router.cjs +62 -0
- package/.claude/helpers/router.js +66 -0
- package/.claude/helpers/security-scanner.sh +127 -0
- package/.claude/helpers/session.cjs +125 -0
- package/.claude/helpers/session.js +135 -0
- package/.claude/helpers/setup-mcp.sh +18 -0
- package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
- package/.claude/helpers/statusline-hook.sh +21 -0
- package/.claude/helpers/statusline.cjs +878 -0
- package/.claude/helpers/statusline.js +352 -0
- package/.claude/helpers/swarm-comms.sh +353 -0
- package/.claude/helpers/swarm-hooks.sh +761 -0
- package/.claude/helpers/swarm-monitor.sh +211 -0
- package/.claude/helpers/sync-v3-metrics.sh +245 -0
- package/.claude/helpers/update-v3-progress.sh +166 -0
- package/.claude/helpers/v3-quick-status.sh +58 -0
- package/.claude/helpers/v3.sh +111 -0
- package/.claude/helpers/validate-v3-config.sh +216 -0
- package/.claude/helpers/worker-manager.sh +170 -0
- package/.claude/mcp.json +13 -0
- package/.claude/scheduled_tasks.lock +1 -0
- package/.claude/settings.json +285 -0
- package/.claude/settings.json.bak +526 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
- package/.claude/skills/agentdb-learning/SKILL.md +545 -0
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
- package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
- package/.claude/skills/browser/SKILL.md +204 -0
- package/.claude/skills/dual-mode/README.md +71 -0
- package/.claude/skills/dual-mode/dual-collect.md +103 -0
- package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
- package/.claude/skills/dual-mode/dual-spawn.md +81 -0
- package/.claude/skills/flow-nexus-neural/SKILL.md +727 -0
- package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -0
- package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -0
- package/.claude/skills/github-code-review/SKILL.md +1125 -0
- package/.claude/skills/github-multi-repo/SKILL.md +862 -0
- package/.claude/skills/github-project-management/SKILL.md +1263 -0
- package/.claude/skills/github-release-management/SKILL.md +1064 -0
- package/.claude/skills/github-workflow-automation/SKILL.md +1047 -0
- package/.claude/skills/hive-mind-advanced/SKILL.md +709 -0
- package/.claude/skills/hooks-automation/SKILL.md +1201 -0
- package/.claude/skills/pair-programming/SKILL.md +1202 -0
- package/.claude/skills/performance-analysis/SKILL.md +560 -0
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/.claude/skills/skill-builder/SKILL.md +910 -0
- package/.claude/skills/sparc-methodology/SKILL.md +1106 -0
- package/.claude/skills/stream-chain/SKILL.md +560 -0
- package/.claude/skills/swarm-advanced/SKILL.md +970 -0
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
- package/.claude/skills/v3-cli-modernization/SKILL.md +872 -0
- package/.claude/skills/v3-core-implementation/SKILL.md +797 -0
- package/.claude/skills/v3-ddd-architecture/SKILL.md +442 -0
- package/.claude/skills/v3-integration-deep/SKILL.md +241 -0
- package/.claude/skills/v3-mcp-optimization/SKILL.md +777 -0
- package/.claude/skills/v3-memory-unification/SKILL.md +174 -0
- package/.claude/skills/v3-performance-optimization/SKILL.md +390 -0
- package/.claude/skills/v3-security-overhaul/SKILL.md +82 -0
- package/.claude/skills/v3-swarm-coordination/SKILL.md +340 -0
- package/.claude/skills/verification-quality/SKILL.md +691 -0
- package/.claude/skills/worker-benchmarks/SKILL.md +129 -0
- package/.claude/skills/worker-integration/SKILL.md +147 -0
- package/.claude/statusline-command.sh +176 -0
- package/.claude/statusline.mjs +109 -0
- package/.claude/statusline.sh +431 -0
- package/.claude-plugin/README.md +720 -0
- package/.claude-plugin/docs/INSTALLATION.md +261 -0
- package/.claude-plugin/docs/PLUGIN_SUMMARY.md +361 -0
- package/.claude-plugin/docs/QUICKSTART.md +361 -0
- package/.claude-plugin/docs/STRUCTURE.md +128 -0
- package/.claude-plugin/hooks/hooks.json +75 -0
- package/.claude-plugin/marketplace.json +170 -0
- package/.claude-plugin/plugin.json +71 -0
- package/.claude-plugin/scripts/install.sh +234 -0
- package/.claude-plugin/scripts/ruflo-hook.sh +33 -0
- package/.claude-plugin/scripts/uninstall.sh +36 -0
- package/.claude-plugin/scripts/verify.sh +108 -0
- package/LICENSE +21 -0
- package/README.md +410 -0
- package/bin/cli.js +11 -0
- package/bin/npx-repair.js +7 -0
- package/bin/npx-safe-launch.js +9 -0
- package/package.json +159 -0
- package/v3/@claude-flow/cli/README.md +410 -0
- package/v3/@claude-flow/cli/bin/cli.js +233 -0
- package/v3/@claude-flow/cli/bin/mcp-server.js +224 -0
- package/v3/@claude-flow/cli/bin/preinstall.cjs +2 -0
- package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.d.ts +91 -0
- package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.js +425 -0
- package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
- package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.js +292 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.d.ts +44 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.js +329 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.d.ts +97 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.js +370 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.d.ts +111 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.js +393 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.d.ts +69 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.js +237 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.d.ts +123 -0
- package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.js +347 -0
- package/v3/@claude-flow/cli/dist/src/autopilot-state.d.ts +77 -0
- package/v3/@claude-flow/cli/dist/src/autopilot-state.js +271 -0
- package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.d.ts +58 -0
- package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.js +404 -0
- package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.js +333 -0
- package/v3/@claude-flow/cli/dist/src/commands/agent.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/agent.js +927 -0
- package/v3/@claude-flow/cli/dist/src/commands/analyze.d.ts +19 -0
- package/v3/@claude-flow/cli/dist/src/commands/analyze.js +2048 -0
- package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.js +215 -0
- package/v3/@claude-flow/cli/dist/src/commands/appliance.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/appliance.js +404 -0
- package/v3/@claude-flow/cli/dist/src/commands/autopilot.d.ts +15 -0
- package/v3/@claude-flow/cli/dist/src/commands/autopilot.js +362 -0
- package/v3/@claude-flow/cli/dist/src/commands/benchmark.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/benchmark.js +460 -0
- package/v3/@claude-flow/cli/dist/src/commands/claims.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/claims.js +620 -0
- package/v3/@claude-flow/cli/dist/src/commands/cleanup.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/commands/cleanup.js +250 -0
- package/v3/@claude-flow/cli/dist/src/commands/completions.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/completions.js +539 -0
- package/v3/@claude-flow/cli/dist/src/commands/config.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/config.js +430 -0
- package/v3/@claude-flow/cli/dist/src/commands/daemon.d.ts +28 -0
- package/v3/@claude-flow/cli/dist/src/commands/daemon.js +1093 -0
- package/v3/@claude-flow/cli/dist/src/commands/deployment.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/deployment.js +672 -0
- package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +885 -0
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.d.ts +18 -0
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +1623 -0
- package/v3/@claude-flow/cli/dist/src/commands/guidance.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/guidance.js +556 -0
- package/v3/@claude-flow/cli/dist/src/commands/hive-mind.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +1297 -0
- package/v3/@claude-flow/cli/dist/src/commands/hooks.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +4499 -0
- package/v3/@claude-flow/cli/dist/src/commands/index.d.ts +118 -0
- package/v3/@claude-flow/cli/dist/src/commands/index.js +344 -0
- package/v3/@claude-flow/cli/dist/src/commands/init.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/init.js +997 -0
- package/v3/@claude-flow/cli/dist/src/commands/issues.d.ts +21 -0
- package/v3/@claude-flow/cli/dist/src/commands/issues.js +567 -0
- package/v3/@claude-flow/cli/dist/src/commands/mcp.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/mcp.js +718 -0
- package/v3/@claude-flow/cli/dist/src/commands/memory.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/memory.js +1456 -0
- package/v3/@claude-flow/cli/dist/src/commands/migrate.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/migrate.js +742 -0
- package/v3/@claude-flow/cli/dist/src/commands/neural.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/neural.js +1531 -0
- package/v3/@claude-flow/cli/dist/src/commands/performance.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/performance.js +583 -0
- package/v3/@claude-flow/cli/dist/src/commands/plugins.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/plugins.js +826 -0
- package/v3/@claude-flow/cli/dist/src/commands/process.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/process.js +694 -0
- package/v3/@claude-flow/cli/dist/src/commands/progress.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/progress.js +259 -0
- package/v3/@claude-flow/cli/dist/src/commands/providers.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/providers.js +502 -0
- package/v3/@claude-flow/cli/dist/src/commands/route.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/commands/route.js +813 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +747 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +490 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +18 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +373 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +29 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.js +129 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +467 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +498 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +505 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/pg-utils.js +41 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +18 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +765 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +479 -0
- package/v3/@claude-flow/cli/dist/src/commands/security.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/security.js +920 -0
- package/v3/@claude-flow/cli/dist/src/commands/session.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/session.js +757 -0
- package/v3/@claude-flow/cli/dist/src/commands/start.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/start.js +418 -0
- package/v3/@claude-flow/cli/dist/src/commands/status.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/status.js +591 -0
- package/v3/@claude-flow/cli/dist/src/commands/swarm.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/swarm.js +887 -0
- package/v3/@claude-flow/cli/dist/src/commands/task.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/task.js +675 -0
- package/v3/@claude-flow/cli/dist/src/commands/transfer-store.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/commands/transfer-store.js +428 -0
- package/v3/@claude-flow/cli/dist/src/commands/update.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/update.js +276 -0
- package/v3/@claude-flow/cli/dist/src/commands/verify.d.ts +19 -0
- package/v3/@claude-flow/cli/dist/src/commands/verify.js +261 -0
- package/v3/@claude-flow/cli/dist/src/commands/workflow.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/workflow.js +617 -0
- package/v3/@claude-flow/cli/dist/src/config-adapter.d.ts +15 -0
- package/v3/@claude-flow/cli/dist/src/config-adapter.js +186 -0
- package/v3/@claude-flow/cli/dist/src/encryption/vault.d.ts +94 -0
- package/v3/@claude-flow/cli/dist/src/encryption/vault.js +172 -0
- package/v3/@claude-flow/cli/dist/src/fs-secure.d.ts +67 -0
- package/v3/@claude-flow/cli/dist/src/fs-secure.js +74 -0
- package/v3/@claude-flow/cli/dist/src/index.d.ts +81 -0
- package/v3/@claude-flow/cli/dist/src/index.js +538 -0
- package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
- package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.js +264 -0
- package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +363 -0
- package/v3/@claude-flow/cli/dist/src/init/executor.d.ts +41 -0
- package/v3/@claude-flow/cli/dist/src/init/executor.js +1904 -0
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.d.ts +60 -0
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +1185 -0
- package/v3/@claude-flow/cli/dist/src/init/index.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/init/index.js +15 -0
- package/v3/@claude-flow/cli/dist/src/init/mcp-generator.d.ts +26 -0
- package/v3/@claude-flow/cli/dist/src/init/mcp-generator.js +116 -0
- package/v3/@claude-flow/cli/dist/src/init/settings-generator.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/init/settings-generator.js +456 -0
- package/v3/@claude-flow/cli/dist/src/init/statusline-generator.d.ts +28 -0
- package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +937 -0
- package/v3/@claude-flow/cli/dist/src/init/types.d.ts +308 -0
- package/v3/@claude-flow/cli/dist/src/init/types.js +263 -0
- package/v3/@claude-flow/cli/dist/src/log-filters.d.ts +22 -0
- package/v3/@claude-flow/cli/dist/src/log-filters.js +36 -0
- package/v3/@claude-flow/cli/dist/src/mcp-client.d.ts +92 -0
- package/v3/@claude-flow/cli/dist/src/mcp-client.js +287 -0
- package/v3/@claude-flow/cli/dist/src/mcp-server.d.ts +163 -0
- package/v3/@claude-flow/cli/dist/src/mcp-server.js +732 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-execute-core.d.ts +92 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-execute-core.js +328 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.js +716 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.d.ts +33 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +867 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.js +346 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/auto-install.d.ts +83 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/auto-install.js +131 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/autopilot-tools.js +231 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-session-tools.d.ts +23 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-session-tools.js +324 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-tools.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-tools.js +757 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.d.ts +12 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.js +863 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.js +411 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.js +729 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/daa-tools.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/daa-tools.js +534 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.js +904 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/github-tools.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/github-tools.js +659 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/guidance-tools.js +639 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.js +953 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.d.ts +46 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +3939 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/index.d.ts +27 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/index.js +26 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/managed-agent-tools.js +357 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +1240 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.js +793 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.js +675 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.js +348 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/request-tracker.d.ts +17 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/request-tracker.js +27 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/ruvllm-tools.js +339 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.d.ts +18 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js +556 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.js +517 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.js +388 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.js +674 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.js +487 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/terminal-tools.js +306 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/transfer-tools.js +447 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/types.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/types.js +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/validate-input.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/validate-input.js +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/wasm-agent-tools.js +291 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.js +884 -0
- package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.d.ts +295 -0
- package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.js +601 -0
- package/v3/@claude-flow/cli/dist/src/memory/intelligence.d.ts +357 -0
- package/v3/@claude-flow/cli/dist/src/memory/intelligence.js +1200 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +492 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +2101 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.d.ts +420 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +2376 -0
- package/v3/@claude-flow/cli/dist/src/memory/neural-package-bridge.d.ts +48 -0
- package/v3/@claude-flow/cli/dist/src/memory/neural-package-bridge.js +87 -0
- package/v3/@claude-flow/cli/dist/src/memory/rabitq-index.d.ts +60 -0
- package/v3/@claude-flow/cli/dist/src/memory/rabitq-index.js +242 -0
- package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.d.ts +267 -0
- package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.js +779 -0
- package/v3/@claude-flow/cli/dist/src/output.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/output.js +9 -0
- package/v3/@claude-flow/cli/dist/src/parser.d.ts +69 -0
- package/v3/@claude-flow/cli/dist/src/parser.js +473 -0
- package/v3/@claude-flow/cli/dist/src/plugins/manager.d.ts +133 -0
- package/v3/@claude-flow/cli/dist/src/plugins/manager.js +402 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.d.ts +91 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.js +1202 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/index.d.ts +76 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/index.js +141 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/search.d.ts +46 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/search.js +230 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/types.d.ts +274 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/types.js +7 -0
- package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
- package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.js +126 -0
- package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.d.ts +12 -0
- package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.js +188 -0
- package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
- package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.js +206 -0
- package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.d.ts +101 -0
- package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.js +241 -0
- package/v3/@claude-flow/cli/dist/src/production/error-handler.d.ts +92 -0
- package/v3/@claude-flow/cli/dist/src/production/error-handler.js +299 -0
- package/v3/@claude-flow/cli/dist/src/production/index.d.ts +23 -0
- package/v3/@claude-flow/cli/dist/src/production/index.js +18 -0
- package/v3/@claude-flow/cli/dist/src/production/monitoring.d.ts +161 -0
- package/v3/@claude-flow/cli/dist/src/production/monitoring.js +356 -0
- package/v3/@claude-flow/cli/dist/src/production/rate-limiter.d.ts +80 -0
- package/v3/@claude-flow/cli/dist/src/production/rate-limiter.js +201 -0
- package/v3/@claude-flow/cli/dist/src/production/retry.d.ts +48 -0
- package/v3/@claude-flow/cli/dist/src/production/retry.js +179 -0
- package/v3/@claude-flow/cli/dist/src/prompt.d.ts +44 -0
- package/v3/@claude-flow/cli/dist/src/prompt.js +501 -0
- package/v3/@claude-flow/cli/dist/src/runtime/headless.d.ts +60 -0
- package/v3/@claude-flow/cli/dist/src/runtime/headless.js +284 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.d.ts +193 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.js +354 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.js +277 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.d.ts +160 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.js +531 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.d.ts +33 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.js +157 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.d.ts +175 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.js +699 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/diskann-backend.d.ts +78 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/diskann-backend.js +310 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.js +529 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.d.ts +187 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.js +929 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/graph-backend.d.ts +79 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/graph-backend.js +220 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/index.d.ts +38 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/index.js +82 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.d.ts +240 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.js +550 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/model-router.d.ts +241 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/model-router.js +608 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.d.ts +211 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.js +681 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.js +367 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.d.ts +77 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.js +178 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.d.ts +73 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.js +264 -0
- package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.js +95 -0
- package/v3/@claude-flow/cli/dist/src/services/claim-service.d.ts +204 -0
- package/v3/@claude-flow/cli/dist/src/services/claim-service.js +818 -0
- package/v3/@claude-flow/cli/dist/src/services/config-file-manager.d.ts +37 -0
- package/v3/@claude-flow/cli/dist/src/services/config-file-manager.js +233 -0
- package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
- package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.js +583 -0
- package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.d.ts +310 -0
- package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +1058 -0
- package/v3/@claude-flow/cli/dist/src/services/index.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/services/index.js +11 -0
- package/v3/@claude-flow/cli/dist/src/services/registry-api.d.ts +58 -0
- package/v3/@claude-flow/cli/dist/src/services/registry-api.js +146 -0
- package/v3/@claude-flow/cli/dist/src/services/ruvector-training.d.ts +222 -0
- package/v3/@claude-flow/cli/dist/src/services/ruvector-training.js +688 -0
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +323 -0
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +1323 -0
- package/v3/@claude-flow/cli/dist/src/services/worker-queue.d.ts +194 -0
- package/v3/@claude-flow/cli/dist/src/services/worker-queue.js +513 -0
- package/v3/@claude-flow/cli/dist/src/suggest.d.ts +53 -0
- package/v3/@claude-flow/cli/dist/src/suggest.js +200 -0
- package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.d.ts +25 -0
- package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.js +175 -0
- package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +205 -0
- package/v3/@claude-flow/cli/dist/src/transfer/export.d.ts +25 -0
- package/v3/@claude-flow/cli/dist/src/transfer/export.js +113 -0
- package/v3/@claude-flow/cli/dist/src/transfer/index.d.ts +12 -0
- package/v3/@claude-flow/cli/dist/src/transfer/index.js +31 -0
- package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.d.ts +109 -0
- package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.js +307 -0
- package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.d.ts +95 -0
- package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.js +413 -0
- package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.js +373 -0
- package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.js +183 -0
- package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.d.ts +82 -0
- package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.js +272 -0
- package/v3/@claude-flow/cli/dist/src/transfer/storage/index.d.ts +6 -0
- package/v3/@claude-flow/cli/dist/src/transfer/storage/index.js +6 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.d.ts +84 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.js +382 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/download.d.ts +70 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/download.js +334 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/index.d.ts +84 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/index.js +153 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/publish.d.ts +76 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/publish.js +294 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/registry.d.ts +58 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/registry.js +285 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/search.d.ts +54 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/search.js +232 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.js +190 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/types.d.ts +193 -0
- package/v3/@claude-flow/cli/dist/src/transfer/store/types.js +6 -0
- package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.d.ts +6 -0
- package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.js +105 -0
- package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.d.ts +7 -0
- package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.js +214 -0
- package/v3/@claude-flow/cli/dist/src/transfer/types.d.ts +245 -0
- package/v3/@claude-flow/cli/dist/src/transfer/types.js +6 -0
- package/v3/@claude-flow/cli/dist/src/types.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/types.js +13 -0
- package/v3/@claude-flow/cli/dist/src/update/checker.d.ts +34 -0
- package/v3/@claude-flow/cli/dist/src/update/checker.js +191 -0
- package/v3/@claude-flow/cli/dist/src/update/executor.d.ts +33 -0
- package/v3/@claude-flow/cli/dist/src/update/executor.js +217 -0
- package/v3/@claude-flow/cli/dist/src/update/index.d.ts +33 -0
- package/v3/@claude-flow/cli/dist/src/update/index.js +64 -0
- package/v3/@claude-flow/cli/dist/src/update/rate-limiter.d.ts +20 -0
- package/v3/@claude-flow/cli/dist/src/update/rate-limiter.js +96 -0
- package/v3/@claude-flow/cli/dist/src/update/validator.d.ts +17 -0
- package/v3/@claude-flow/cli/dist/src/update/validator.js +123 -0
- package/v3/@claude-flow/cli/package.json +133 -0
- package/v3/@claude-flow/guidance/README.md +1195 -0
- package/v3/@claude-flow/guidance/package.json +198 -0
- package/v3/@claude-flow/shared/README.md +323 -0
- package/v3/@claude-flow/shared/package.json +43 -0
- package/v3/README.md +493 -0
|
@@ -0,0 +1,716 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent MCP Tools for CLI
|
|
3
|
+
*
|
|
4
|
+
* Tool definitions for agent lifecycle management with file persistence.
|
|
5
|
+
* Includes model routing integration for intelligent model selection.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
9
|
+
import { getProjectCwd } from './types.js';
|
|
10
|
+
import { validateIdentifier, validateText, validateAgentSpawn } from './validate-input.js';
|
|
11
|
+
import { executeAgentTask } from './agent-execute-core.js';
|
|
12
|
+
// Storage paths
|
|
13
|
+
const STORAGE_DIR = '.claude-flow';
|
|
14
|
+
const AGENT_DIR = 'agents';
|
|
15
|
+
const AGENT_FILE = 'store.json';
|
|
16
|
+
// #1916: hive-mind_spawn writes its workers to `.claude-flow/agents.json`
|
|
17
|
+
// (a *different* file from the canonical `.claude-flow/agents/store.json`
|
|
18
|
+
// used here). agent_status / agent_list / agent_logs merge that store so a
|
|
19
|
+
// hive-spawned worker is resolvable instead of returning `not_found`.
|
|
20
|
+
const HIVE_AGENT_FILE = 'agents.json';
|
|
21
|
+
function getAgentDir() {
|
|
22
|
+
return join(getProjectCwd(), STORAGE_DIR, AGENT_DIR);
|
|
23
|
+
}
|
|
24
|
+
function getAgentPath() {
|
|
25
|
+
return join(getAgentDir(), AGENT_FILE);
|
|
26
|
+
}
|
|
27
|
+
function ensureAgentDir() {
|
|
28
|
+
const dir = getAgentDir();
|
|
29
|
+
if (!existsSync(dir)) {
|
|
30
|
+
mkdirSync(dir, { recursive: true });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function loadAgentStore() {
|
|
34
|
+
try {
|
|
35
|
+
const path = getAgentPath();
|
|
36
|
+
if (existsSync(path)) {
|
|
37
|
+
const data = readFileSync(path, 'utf-8');
|
|
38
|
+
return JSON.parse(data);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Return empty store on error
|
|
43
|
+
}
|
|
44
|
+
return { agents: {}, version: '3.0.0' };
|
|
45
|
+
}
|
|
46
|
+
function saveAgentStore(store) {
|
|
47
|
+
ensureAgentDir();
|
|
48
|
+
writeFileSync(getAgentPath(), JSON.stringify(store, null, 2), 'utf-8');
|
|
49
|
+
}
|
|
50
|
+
// #1916: read hive-mind-spawned workers from `.claude-flow/agents.json`.
|
|
51
|
+
function getHiveAgentPath() {
|
|
52
|
+
return join(getProjectCwd(), STORAGE_DIR, HIVE_AGENT_FILE);
|
|
53
|
+
}
|
|
54
|
+
function loadHiveAgents() {
|
|
55
|
+
try {
|
|
56
|
+
const path = getHiveAgentPath();
|
|
57
|
+
if (existsSync(path)) {
|
|
58
|
+
const data = JSON.parse(readFileSync(path, 'utf-8'));
|
|
59
|
+
if (data && typeof data.agents === 'object' && data.agents) {
|
|
60
|
+
return data.agents;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Ignore — hive store is optional/best-effort.
|
|
66
|
+
}
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* #1916: merged view of every tracked agent — the canonical agent store
|
|
71
|
+
* plus hive-mind-spawned workers. On an id collision the canonical record
|
|
72
|
+
* wins (it carries model-routing + lastResult that the hive store omits).
|
|
73
|
+
*/
|
|
74
|
+
function loadAllAgents() {
|
|
75
|
+
return { ...loadHiveAgents(), ...loadAgentStore().agents };
|
|
76
|
+
}
|
|
77
|
+
// Default model mappings for agent types (can be overridden)
|
|
78
|
+
const AGENT_TYPE_MODEL_DEFAULTS = {
|
|
79
|
+
// Complex agents → opus
|
|
80
|
+
'architect': 'opus',
|
|
81
|
+
'security-architect': 'opus',
|
|
82
|
+
'system-architect': 'opus',
|
|
83
|
+
'core-architect': 'opus',
|
|
84
|
+
// Medium complexity → sonnet
|
|
85
|
+
'coder': 'sonnet',
|
|
86
|
+
'reviewer': 'sonnet',
|
|
87
|
+
'researcher': 'sonnet',
|
|
88
|
+
'tester': 'sonnet',
|
|
89
|
+
'analyst': 'sonnet',
|
|
90
|
+
// Simple/fast agents → haiku
|
|
91
|
+
'formatter': 'haiku',
|
|
92
|
+
'linter': 'haiku',
|
|
93
|
+
'documenter': 'haiku',
|
|
94
|
+
};
|
|
95
|
+
// Lazy-loaded model router
|
|
96
|
+
let modelRouterInstance = null;
|
|
97
|
+
async function getModelRouter() {
|
|
98
|
+
if (!modelRouterInstance) {
|
|
99
|
+
try {
|
|
100
|
+
const { getModelRouter } = await import('../ruvector/model-router.js');
|
|
101
|
+
modelRouterInstance = getModelRouter();
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
// Log but don't fail - model router is optional
|
|
105
|
+
console.error('[agent-tools] Model router load failed:', e.message);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return modelRouterInstance;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Determine model for agent based on (ADR-026 3-tier routing):
|
|
112
|
+
* 1. Explicit model in config
|
|
113
|
+
* 2. Enhanced task-based routing with Agent Booster AST (if task provided)
|
|
114
|
+
* 3. Agent type defaults
|
|
115
|
+
* 4. Fallback to sonnet
|
|
116
|
+
*/
|
|
117
|
+
async function determineAgentModel(agentType, config, task) {
|
|
118
|
+
// 1. Explicit model in config
|
|
119
|
+
if (config.model && ['haiku', 'sonnet', 'opus', 'inherit'].includes(config.model)) {
|
|
120
|
+
return { model: config.model, routedBy: 'explicit' };
|
|
121
|
+
}
|
|
122
|
+
// 2. Enhanced task-based routing with Agent Booster AST
|
|
123
|
+
if (task) {
|
|
124
|
+
try {
|
|
125
|
+
// Try enhanced router first (includes Agent Booster detection)
|
|
126
|
+
const { getEnhancedModelRouter } = await import('../ruvector/enhanced-model-router.js');
|
|
127
|
+
const enhancedRouter = getEnhancedModelRouter();
|
|
128
|
+
const routeResult = await enhancedRouter.route(task, { filePath: config.filePath });
|
|
129
|
+
if (routeResult.tier === 1 && routeResult.canSkipLLM) {
|
|
130
|
+
// Agent Booster can handle this task
|
|
131
|
+
return {
|
|
132
|
+
model: 'haiku', // Use haiku as fallback if AB fails
|
|
133
|
+
routedBy: 'agent-booster',
|
|
134
|
+
canSkipLLM: true,
|
|
135
|
+
agentBoosterIntent: routeResult.agentBoosterIntent?.type,
|
|
136
|
+
tier: 1,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
model: routeResult.model,
|
|
141
|
+
routedBy: 'router',
|
|
142
|
+
tier: routeResult.tier,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
// Enhanced router not available, try basic router
|
|
147
|
+
const router = await getModelRouter();
|
|
148
|
+
if (router) {
|
|
149
|
+
try {
|
|
150
|
+
const result = await router.route(task);
|
|
151
|
+
return { model: result.model, routedBy: 'router' };
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Fall through to defaults on router error
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// 3. Agent type defaults
|
|
160
|
+
const defaultModel = AGENT_TYPE_MODEL_DEFAULTS[agentType];
|
|
161
|
+
if (defaultModel) {
|
|
162
|
+
return { model: defaultModel, routedBy: 'default' };
|
|
163
|
+
}
|
|
164
|
+
// 4. Fallback to sonnet (balanced)
|
|
165
|
+
return { model: 'sonnet', routedBy: 'default' };
|
|
166
|
+
}
|
|
167
|
+
export const agentTools = [
|
|
168
|
+
{
|
|
169
|
+
name: 'agent_spawn',
|
|
170
|
+
description: 'Spawn a Ruflo-tracked agent with cost attribution + memory persistence + swarm coordination. Use when native Task tool is wrong because you need (a) cost tracking per agent in the cost-tracking namespace, (b) cross-session learning via the patterns namespace, or (c) coordination with other agents in a swarm topology (hierarchical / mesh / consensus). For one-shot subtasks with no learning loop, native Task is fine. Pair with hooks_route to pick the right model first.',
|
|
171
|
+
category: 'agent',
|
|
172
|
+
inputSchema: {
|
|
173
|
+
type: 'object',
|
|
174
|
+
properties: {
|
|
175
|
+
agentType: { type: 'string', description: 'Type of agent to spawn' },
|
|
176
|
+
agentId: { type: 'string', description: 'Optional custom agent ID' },
|
|
177
|
+
config: { type: 'object', description: 'Agent configuration' },
|
|
178
|
+
domain: { type: 'string', description: 'Agent domain' },
|
|
179
|
+
model: {
|
|
180
|
+
type: 'string',
|
|
181
|
+
enum: ['haiku', 'sonnet', 'opus', 'inherit'],
|
|
182
|
+
description: 'Claude model to use (haiku=fast/cheap, sonnet=balanced, opus=most capable)'
|
|
183
|
+
},
|
|
184
|
+
task: { type: 'string', description: 'Task description for intelligent model routing' },
|
|
185
|
+
},
|
|
186
|
+
required: ['agentType'],
|
|
187
|
+
},
|
|
188
|
+
handler: async (input) => {
|
|
189
|
+
// Validate user-provided input (#1425: wire security validators to runtime)
|
|
190
|
+
const validation = await validateAgentSpawn(input);
|
|
191
|
+
if (!validation.valid) {
|
|
192
|
+
return { success: false, error: `Input validation failed: ${validation.errors.join('; ')}` };
|
|
193
|
+
}
|
|
194
|
+
const store = loadAgentStore();
|
|
195
|
+
const agentId = input.agentId || `agent-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
196
|
+
const agentType = input.agentType;
|
|
197
|
+
const config = input.config || {};
|
|
198
|
+
// Add explicit model to config if provided
|
|
199
|
+
if (input.model) {
|
|
200
|
+
config.model = input.model;
|
|
201
|
+
}
|
|
202
|
+
// Get task from either top-level or config (CLI passes it in config.task)
|
|
203
|
+
const task = input.task || config.task || undefined;
|
|
204
|
+
// Determine model using ADR-026 3-tier routing logic
|
|
205
|
+
const routingResult = await determineAgentModel(agentType, config, task);
|
|
206
|
+
const agent = {
|
|
207
|
+
agentId,
|
|
208
|
+
agentType,
|
|
209
|
+
status: 'idle',
|
|
210
|
+
health: 1.0,
|
|
211
|
+
taskCount: 0,
|
|
212
|
+
config,
|
|
213
|
+
createdAt: new Date().toISOString(),
|
|
214
|
+
domain: input.domain,
|
|
215
|
+
model: routingResult.model,
|
|
216
|
+
modelRoutedBy: routingResult.routedBy,
|
|
217
|
+
};
|
|
218
|
+
store.agents[agentId] = agent;
|
|
219
|
+
saveAgentStore(store);
|
|
220
|
+
// Record agent in graph database (ADR-087, best-effort)
|
|
221
|
+
try {
|
|
222
|
+
const { addNode } = await import('../ruvector/graph-backend.js');
|
|
223
|
+
await addNode({ id: agentId, type: 'agent', name: agentType });
|
|
224
|
+
}
|
|
225
|
+
catch { /* graph-node not available */ }
|
|
226
|
+
// Include Agent Booster routing info if applicable
|
|
227
|
+
const response = {
|
|
228
|
+
success: true,
|
|
229
|
+
agentId,
|
|
230
|
+
agentType: agent.agentType,
|
|
231
|
+
model: agent.model,
|
|
232
|
+
modelRoutedBy: routingResult.routedBy,
|
|
233
|
+
status: 'registered',
|
|
234
|
+
createdAt: agent.createdAt,
|
|
235
|
+
note: 'Agent registered for coordination. Three execution paths: ' +
|
|
236
|
+
'(1) call agent_execute(agentId, prompt) — direct LLM call via Anthropic Messages API (requires ANTHROPIC_API_KEY); ' +
|
|
237
|
+
'(2) Claude Code Task tool — spawns a real subagent; ' +
|
|
238
|
+
'(3) claude -p — headless background instance.',
|
|
239
|
+
};
|
|
240
|
+
// Add Agent Booster info if task can skip LLM
|
|
241
|
+
if (routingResult.canSkipLLM) {
|
|
242
|
+
response.canSkipLLM = true;
|
|
243
|
+
response.agentBoosterIntent = routingResult.agentBoosterIntent;
|
|
244
|
+
response.tier = routingResult.tier;
|
|
245
|
+
response.note = `Agent Booster can handle "${routingResult.agentBoosterIntent}" - use agent_booster_edit_file MCP tool`;
|
|
246
|
+
}
|
|
247
|
+
else if (routingResult.tier) {
|
|
248
|
+
response.tier = routingResult.tier;
|
|
249
|
+
}
|
|
250
|
+
return response;
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
// ADR-095 G1: real LLM execution via the agent registry. Previously
|
|
255
|
+
// agent_spawn registered metadata but nothing dispatched work to a
|
|
256
|
+
// provider — the wire between AnthropicProvider and the agent
|
|
257
|
+
// registry was missing, as the April audit (@roman-rr) called out.
|
|
258
|
+
// agent_execute closes that wire by reading the agent's configured
|
|
259
|
+
// model, calling the Anthropic Messages API directly via fetch, and
|
|
260
|
+
// updating the agent record with lastResult / taskCount / status.
|
|
261
|
+
// No mock — actual HTTP request to api.anthropic.com.
|
|
262
|
+
name: 'agent_execute',
|
|
263
|
+
description: 'Run a task on a previously-spawned agent_spawn record via the Anthropic Messages API with that agent\'s configured model. Use when native Task tool is wrong because (a) you need the spawned agent\'s persistent config (model, instructions, cost-tracking attribution) to apply to this turn, (b) the result needs to feed back into the agent\'s lifecycle (taskCount, lastResult, swarm-coordinated state), or (c) you want explicit model routing via the spawn record\'s `model` field instead of inheriting. For one-shot Claude prompts without a tracked agent, native Task is fine. Requires ANTHROPIC_API_KEY in env.',
|
|
264
|
+
category: 'agent',
|
|
265
|
+
inputSchema: {
|
|
266
|
+
type: 'object',
|
|
267
|
+
properties: {
|
|
268
|
+
agentId: { type: 'string', description: 'ID of the spawned agent' },
|
|
269
|
+
prompt: { type: 'string', description: 'Task / prompt for the agent to execute' },
|
|
270
|
+
systemPrompt: { type: 'string', description: 'Optional system prompt (overrides agent default)' },
|
|
271
|
+
maxTokens: { type: 'number', description: 'Max output tokens (default 1024)' },
|
|
272
|
+
temperature: { type: 'number', description: 'Sampling temperature 0..1 (default 0.7)' },
|
|
273
|
+
},
|
|
274
|
+
required: ['agentId', 'prompt'],
|
|
275
|
+
},
|
|
276
|
+
handler: async (input) => {
|
|
277
|
+
const vId = validateIdentifier(input.agentId, 'agentId');
|
|
278
|
+
if (!vId.valid)
|
|
279
|
+
return { success: false, error: `Input validation failed: ${vId.error}` };
|
|
280
|
+
const vP = validateText(input.prompt, 'prompt');
|
|
281
|
+
if (!vP.valid)
|
|
282
|
+
return { success: false, error: `Input validation failed: ${vP.error}` };
|
|
283
|
+
// Delegate to the shared core (also used by the workflow runtime).
|
|
284
|
+
return executeAgentTask({
|
|
285
|
+
agentId: input.agentId,
|
|
286
|
+
prompt: input.prompt,
|
|
287
|
+
systemPrompt: input.systemPrompt,
|
|
288
|
+
maxTokens: input.maxTokens,
|
|
289
|
+
temperature: input.temperature,
|
|
290
|
+
timeoutMs: input.timeoutMs,
|
|
291
|
+
});
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
name: 'agent_terminate',
|
|
296
|
+
description: 'Remove a Ruflo-tracked agent from the registry and free its swarm slot. Use when you need to (a) clean up a spawned agent so its cost-tracking row finalizes, (b) reclaim a swarm-topology slot for another agent, or (c) end a stuck agent without restarting the whole swarm. For one-shot Task tool invocations that already self-terminate, this tool is not needed. Pair with agent_list first to confirm the agentId.',
|
|
297
|
+
category: 'agent',
|
|
298
|
+
inputSchema: {
|
|
299
|
+
type: 'object',
|
|
300
|
+
properties: {
|
|
301
|
+
agentId: { type: 'string', description: 'ID of agent to terminate' },
|
|
302
|
+
force: { type: 'boolean', description: 'Force immediate termination' },
|
|
303
|
+
},
|
|
304
|
+
required: ['agentId'],
|
|
305
|
+
},
|
|
306
|
+
handler: async (input) => {
|
|
307
|
+
const v = validateIdentifier(input.agentId, 'agentId');
|
|
308
|
+
if (!v.valid)
|
|
309
|
+
return { success: false, error: `Input validation failed: ${v.error}` };
|
|
310
|
+
const store = loadAgentStore();
|
|
311
|
+
const agentId = input.agentId;
|
|
312
|
+
if (store.agents[agentId]) {
|
|
313
|
+
store.agents[agentId].status = 'terminated';
|
|
314
|
+
saveAgentStore(store);
|
|
315
|
+
return {
|
|
316
|
+
success: true,
|
|
317
|
+
agentId,
|
|
318
|
+
terminated: true,
|
|
319
|
+
terminatedAt: new Date().toISOString(),
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
return {
|
|
323
|
+
success: false,
|
|
324
|
+
agentId,
|
|
325
|
+
error: 'Agent not found',
|
|
326
|
+
};
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
name: 'agent_status',
|
|
331
|
+
description: 'Read the lifecycle state of a single tracked agent: idle/running/stopped, current taskCount, lastResult, model, health score. Use when native Task tool is wrong because you need agent-level state (status across turns, accumulated taskCount, last error, swarm coordination) rather than a one-shot response. For inspecting a Task you just ran, native Task output is fine. Pair with agent_list to find the agentId first.',
|
|
332
|
+
category: 'agent',
|
|
333
|
+
inputSchema: {
|
|
334
|
+
type: 'object',
|
|
335
|
+
properties: {
|
|
336
|
+
agentId: { type: 'string', description: 'ID of agent' },
|
|
337
|
+
},
|
|
338
|
+
required: ['agentId'],
|
|
339
|
+
},
|
|
340
|
+
handler: async (input) => {
|
|
341
|
+
const v = validateIdentifier(input.agentId, 'agentId');
|
|
342
|
+
if (!v.valid)
|
|
343
|
+
return { agentId: input.agentId, status: 'not_found', error: `Input validation failed: ${v.error}` };
|
|
344
|
+
const agentId = input.agentId;
|
|
345
|
+
const agent = loadAllAgents()[agentId]; // #1916: includes hive-mind-spawned workers
|
|
346
|
+
if (agent) {
|
|
347
|
+
return {
|
|
348
|
+
agentId: agent.agentId,
|
|
349
|
+
agentType: agent.agentType,
|
|
350
|
+
status: agent.status,
|
|
351
|
+
health: agent.health,
|
|
352
|
+
taskCount: agent.taskCount,
|
|
353
|
+
createdAt: agent.createdAt,
|
|
354
|
+
domain: agent.domain,
|
|
355
|
+
lastResult: agent.lastResult || null,
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
return {
|
|
359
|
+
agentId,
|
|
360
|
+
status: 'not_found',
|
|
361
|
+
error: 'Agent not found',
|
|
362
|
+
};
|
|
363
|
+
},
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
name: 'agent_list',
|
|
367
|
+
description: 'List every Ruflo-tracked agent in the registry with its type, model, status, and taskCount. Use when native Task tool is wrong because you need to see the swarm-wide agent inventory across turns (which agents exist, their roles, their cost-tracking handles) rather than spawn a new one-shot Task. Filter by status/domain/agentType if needed. For starting a fresh single-shot subagent, native Task is fine.',
|
|
368
|
+
category: 'agent',
|
|
369
|
+
inputSchema: {
|
|
370
|
+
type: 'object',
|
|
371
|
+
properties: {
|
|
372
|
+
status: { type: 'string', description: 'Filter by status' },
|
|
373
|
+
domain: { type: 'string', description: 'Filter by domain' },
|
|
374
|
+
includeTerminated: { type: 'boolean', description: 'Include terminated agents' },
|
|
375
|
+
},
|
|
376
|
+
},
|
|
377
|
+
handler: async (input) => {
|
|
378
|
+
if (input.status) {
|
|
379
|
+
const v = validateIdentifier(input.status, 'status');
|
|
380
|
+
if (!v.valid)
|
|
381
|
+
return { agents: [], total: 0, error: `Input validation failed: ${v.error}` };
|
|
382
|
+
}
|
|
383
|
+
if (input.domain) {
|
|
384
|
+
const v = validateIdentifier(input.domain, 'domain');
|
|
385
|
+
if (!v.valid)
|
|
386
|
+
return { agents: [], total: 0, error: `Input validation failed: ${v.error}` };
|
|
387
|
+
}
|
|
388
|
+
let agents = Object.values(loadAllAgents()); // #1916: includes hive-mind-spawned workers
|
|
389
|
+
// Filter by status
|
|
390
|
+
if (input.status) {
|
|
391
|
+
agents = agents.filter(a => a.status === input.status);
|
|
392
|
+
}
|
|
393
|
+
else if (!input.includeTerminated) {
|
|
394
|
+
agents = agents.filter(a => a.status !== 'terminated');
|
|
395
|
+
}
|
|
396
|
+
// Filter by domain
|
|
397
|
+
if (input.domain) {
|
|
398
|
+
agents = agents.filter(a => a.domain === input.domain);
|
|
399
|
+
}
|
|
400
|
+
return {
|
|
401
|
+
agents: agents.map(a => ({
|
|
402
|
+
agentId: a.agentId,
|
|
403
|
+
agentType: a.agentType,
|
|
404
|
+
status: a.status,
|
|
405
|
+
health: a.health,
|
|
406
|
+
taskCount: a.taskCount,
|
|
407
|
+
createdAt: a.createdAt,
|
|
408
|
+
domain: a.domain,
|
|
409
|
+
})),
|
|
410
|
+
total: agents.length,
|
|
411
|
+
filters: {
|
|
412
|
+
status: input.status,
|
|
413
|
+
domain: input.domain,
|
|
414
|
+
includeTerminated: input.includeTerminated,
|
|
415
|
+
},
|
|
416
|
+
};
|
|
417
|
+
},
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
name: 'agent_pool',
|
|
421
|
+
description: 'Manage a fixed-size warm pool of pre-spawned agents to skip cold-start cost on bursty workloads. Use when native Task is wrong because (a) you have a queue of similar tasks and want to amortize spawn latency, (b) cost-tracking wants stable agentIds across requests, or (c) swarm topology requires a known agent count at all times. For one-shot work, just call agent_spawn or native Task. Pool sizes and warm/idle thresholds are set per-pool.',
|
|
422
|
+
category: 'agent',
|
|
423
|
+
inputSchema: {
|
|
424
|
+
type: 'object',
|
|
425
|
+
properties: {
|
|
426
|
+
action: { type: 'string', enum: ['status', 'scale', 'drain', 'fill'], description: 'Pool action' },
|
|
427
|
+
targetSize: { type: 'number', description: 'Target pool size (for scale action)' },
|
|
428
|
+
agentType: { type: 'string', description: 'Agent type filter' },
|
|
429
|
+
},
|
|
430
|
+
required: ['action'],
|
|
431
|
+
},
|
|
432
|
+
handler: async (input) => {
|
|
433
|
+
if (input.agentType) {
|
|
434
|
+
const v = validateIdentifier(input.agentType, 'agentType');
|
|
435
|
+
if (!v.valid)
|
|
436
|
+
return { action: input.action, error: `Input validation failed: ${v.error}` };
|
|
437
|
+
}
|
|
438
|
+
const store = loadAgentStore();
|
|
439
|
+
const agents = Object.values(store.agents).filter(a => a.status !== 'terminated');
|
|
440
|
+
const action = input.action || 'status'; // Default to status
|
|
441
|
+
if (action === 'status') {
|
|
442
|
+
const byType = {};
|
|
443
|
+
const byStatus = {};
|
|
444
|
+
for (const agent of agents) {
|
|
445
|
+
byType[agent.agentType] = (byType[agent.agentType] || 0) + 1;
|
|
446
|
+
byStatus[agent.status] = (byStatus[agent.status] || 0) + 1;
|
|
447
|
+
}
|
|
448
|
+
const idleAgents = agents.filter(a => a.status === 'idle').length;
|
|
449
|
+
const busyAgents = agents.filter(a => a.status === 'busy').length;
|
|
450
|
+
const utilization = agents.length > 0 ? busyAgents / agents.length : 0;
|
|
451
|
+
return {
|
|
452
|
+
action,
|
|
453
|
+
// CLI expected fields
|
|
454
|
+
poolId: 'agent-pool-default',
|
|
455
|
+
currentSize: agents.length,
|
|
456
|
+
minSize: input.min || 0,
|
|
457
|
+
maxSize: input.max || 100,
|
|
458
|
+
autoScale: input.autoScale ?? false,
|
|
459
|
+
utilization,
|
|
460
|
+
agents: agents.map(a => ({
|
|
461
|
+
id: a.agentId,
|
|
462
|
+
type: a.agentType,
|
|
463
|
+
status: a.status,
|
|
464
|
+
})),
|
|
465
|
+
// Additional fields
|
|
466
|
+
id: 'agent-pool-default',
|
|
467
|
+
size: agents.length,
|
|
468
|
+
totalAgents: agents.length,
|
|
469
|
+
byType,
|
|
470
|
+
byStatus,
|
|
471
|
+
avgHealth: agents.length > 0 ? agents.reduce((sum, a) => sum + a.health, 0) / agents.length : 0,
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
if (action === 'scale') {
|
|
475
|
+
const targetSize = input.targetSize || 5;
|
|
476
|
+
const agentType = input.agentType || 'worker';
|
|
477
|
+
const currentSize = agents.filter(a => a.agentType === agentType).length;
|
|
478
|
+
const delta = targetSize - currentSize;
|
|
479
|
+
const added = [];
|
|
480
|
+
const removed = [];
|
|
481
|
+
if (delta > 0) {
|
|
482
|
+
for (let i = 0; i < delta; i++) {
|
|
483
|
+
const agentId = `agent-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
484
|
+
store.agents[agentId] = {
|
|
485
|
+
agentId,
|
|
486
|
+
agentType,
|
|
487
|
+
status: 'idle',
|
|
488
|
+
health: 1.0,
|
|
489
|
+
taskCount: 0,
|
|
490
|
+
config: {},
|
|
491
|
+
createdAt: new Date().toISOString(),
|
|
492
|
+
};
|
|
493
|
+
added.push(agentId);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
else if (delta < 0) {
|
|
497
|
+
const toRemove = agents.filter(a => a.agentType === agentType && a.status === 'idle').slice(0, -delta);
|
|
498
|
+
for (const agent of toRemove) {
|
|
499
|
+
store.agents[agent.agentId].status = 'terminated';
|
|
500
|
+
removed.push(agent.agentId);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
saveAgentStore(store);
|
|
504
|
+
return {
|
|
505
|
+
action,
|
|
506
|
+
agentType,
|
|
507
|
+
previousSize: currentSize,
|
|
508
|
+
targetSize,
|
|
509
|
+
newSize: currentSize + delta,
|
|
510
|
+
added,
|
|
511
|
+
removed,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
if (action === 'drain') {
|
|
515
|
+
const agentType = input.agentType;
|
|
516
|
+
let drained = 0;
|
|
517
|
+
for (const agent of agents) {
|
|
518
|
+
if (!agentType || agent.agentType === agentType) {
|
|
519
|
+
if (agent.status === 'idle') {
|
|
520
|
+
store.agents[agent.agentId].status = 'terminated';
|
|
521
|
+
drained++;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
saveAgentStore(store);
|
|
526
|
+
return {
|
|
527
|
+
action,
|
|
528
|
+
agentType: agentType || 'all',
|
|
529
|
+
drained,
|
|
530
|
+
remaining: agents.length - drained,
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
return { action, error: 'Unknown action' };
|
|
534
|
+
},
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
name: 'agent_health',
|
|
538
|
+
description: 'Compute an agent\'s rolling health score (0-1) from recent task success ratio + response-latency p50/p95 + error rate. Use when native Task tool is wrong because you\'re running a long-lived agent (autonomous loop / hive-mind worker / federation peer) and need to detect degradation before the breaker trips it. For one-shot Task invocations there is no history to score. Pair with hooks_post-task so the scores stay current.',
|
|
539
|
+
category: 'agent',
|
|
540
|
+
inputSchema: {
|
|
541
|
+
type: 'object',
|
|
542
|
+
properties: {
|
|
543
|
+
agentId: { type: 'string', description: 'Specific agent ID (optional)' },
|
|
544
|
+
threshold: { type: 'number', description: 'Health threshold (0-1)' },
|
|
545
|
+
},
|
|
546
|
+
},
|
|
547
|
+
handler: async (input) => {
|
|
548
|
+
if (input.agentId) {
|
|
549
|
+
const v = validateIdentifier(input.agentId, 'agentId');
|
|
550
|
+
if (!v.valid)
|
|
551
|
+
return { agentId: input.agentId, error: `Input validation failed: ${v.error}` };
|
|
552
|
+
}
|
|
553
|
+
const store = loadAgentStore();
|
|
554
|
+
const agents = Object.values(store.agents).filter(a => a.status !== 'terminated');
|
|
555
|
+
const threshold = input.threshold || 0.5;
|
|
556
|
+
if (input.agentId) {
|
|
557
|
+
const agent = store.agents[input.agentId];
|
|
558
|
+
if (agent) {
|
|
559
|
+
return {
|
|
560
|
+
agentId: agent.agentId,
|
|
561
|
+
health: agent.health,
|
|
562
|
+
status: agent.status,
|
|
563
|
+
healthy: agent.health >= threshold,
|
|
564
|
+
taskCount: agent.taskCount,
|
|
565
|
+
uptime: Date.now() - new Date(agent.createdAt).getTime(),
|
|
566
|
+
};
|
|
567
|
+
}
|
|
568
|
+
return { agentId: input.agentId, error: 'Agent not found' };
|
|
569
|
+
}
|
|
570
|
+
const healthyAgents = agents.filter(a => a.health >= threshold);
|
|
571
|
+
const degradedAgents = agents.filter(a => a.health >= 0.3 && a.health < threshold);
|
|
572
|
+
const unhealthyAgents = agents.filter(a => a.health < 0.3);
|
|
573
|
+
const avgHealth = agents.length > 0 ? agents.reduce((sum, a) => sum + a.health, 0) / agents.length : 1;
|
|
574
|
+
return {
|
|
575
|
+
// CLI expected fields
|
|
576
|
+
agents: agents.map(a => {
|
|
577
|
+
const uptime = Date.now() - new Date(a.createdAt).getTime();
|
|
578
|
+
return {
|
|
579
|
+
id: a.agentId,
|
|
580
|
+
type: a.agentType,
|
|
581
|
+
health: a.health >= threshold ? 'healthy' : (a.health >= 0.3 ? 'degraded' : 'unhealthy'),
|
|
582
|
+
uptime,
|
|
583
|
+
tasks: { active: a.taskCount > 0 ? 1 : 0, queued: 0, completed: a.taskCount, failed: 0 },
|
|
584
|
+
_note: 'Per-agent OS metrics not available — use system_metrics for real CPU/memory',
|
|
585
|
+
};
|
|
586
|
+
}),
|
|
587
|
+
overall: {
|
|
588
|
+
healthy: healthyAgents.length,
|
|
589
|
+
degraded: degradedAgents.length,
|
|
590
|
+
unhealthy: unhealthyAgents.length,
|
|
591
|
+
cpu: null,
|
|
592
|
+
memory: null,
|
|
593
|
+
_note: 'Per-agent CPU/memory not available — use system_metrics for real OS-level stats',
|
|
594
|
+
score: Math.round(avgHealth * 100),
|
|
595
|
+
issues: unhealthyAgents.length,
|
|
596
|
+
},
|
|
597
|
+
// Additional fields
|
|
598
|
+
total: agents.length,
|
|
599
|
+
healthyCount: healthyAgents.length,
|
|
600
|
+
unhealthyCount: unhealthyAgents.length,
|
|
601
|
+
threshold,
|
|
602
|
+
avgHealth,
|
|
603
|
+
unhealthyAgents: unhealthyAgents.map(a => ({
|
|
604
|
+
agentId: a.agentId,
|
|
605
|
+
health: a.health,
|
|
606
|
+
status: a.status,
|
|
607
|
+
})),
|
|
608
|
+
};
|
|
609
|
+
},
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
name: 'agent_update',
|
|
613
|
+
description: 'Mutate a tracked agent\'s config (model, instructions, status, health) without re-spawning. Use when native Task tool is wrong because the agent already has accumulated state (taskCount, swarm membership, cost-tracking attribution) and you only need to tweak one field — for example, promoting an idle agent to running on a new task, or rotating its model from haiku to sonnet mid-loop. For a brand-new subagent, agent_spawn (or native Task) is the right call.',
|
|
614
|
+
category: 'agent',
|
|
615
|
+
inputSchema: {
|
|
616
|
+
type: 'object',
|
|
617
|
+
properties: {
|
|
618
|
+
agentId: { type: 'string', description: 'ID of agent' },
|
|
619
|
+
status: { type: 'string', description: 'New status' },
|
|
620
|
+
health: { type: 'number', description: 'Health value (0-1)' },
|
|
621
|
+
taskCount: { type: 'number', description: 'Task count' },
|
|
622
|
+
config: { type: 'object', description: 'Config updates' },
|
|
623
|
+
},
|
|
624
|
+
required: ['agentId'],
|
|
625
|
+
},
|
|
626
|
+
handler: async (input) => {
|
|
627
|
+
const v = validateIdentifier(input.agentId, 'agentId');
|
|
628
|
+
if (!v.valid)
|
|
629
|
+
return { success: false, agentId: input.agentId, error: `Input validation failed: ${v.error}` };
|
|
630
|
+
if (input.status) {
|
|
631
|
+
const vs = validateIdentifier(input.status, 'status');
|
|
632
|
+
if (!vs.valid)
|
|
633
|
+
return { success: false, agentId: input.agentId, error: `Input validation failed: ${vs.error}` };
|
|
634
|
+
}
|
|
635
|
+
const store = loadAgentStore();
|
|
636
|
+
const agentId = input.agentId;
|
|
637
|
+
const agent = store.agents[agentId];
|
|
638
|
+
if (agent) {
|
|
639
|
+
if (input.status)
|
|
640
|
+
agent.status = input.status;
|
|
641
|
+
if (typeof input.health === 'number')
|
|
642
|
+
agent.health = input.health;
|
|
643
|
+
if (typeof input.taskCount === 'number')
|
|
644
|
+
agent.taskCount = input.taskCount;
|
|
645
|
+
if (input.config) {
|
|
646
|
+
agent.config = { ...agent.config, ...input.config };
|
|
647
|
+
}
|
|
648
|
+
saveAgentStore(store);
|
|
649
|
+
return {
|
|
650
|
+
success: true,
|
|
651
|
+
agentId,
|
|
652
|
+
updated: true,
|
|
653
|
+
agent: {
|
|
654
|
+
agentId: agent.agentId,
|
|
655
|
+
status: agent.status,
|
|
656
|
+
health: agent.health,
|
|
657
|
+
taskCount: agent.taskCount,
|
|
658
|
+
},
|
|
659
|
+
};
|
|
660
|
+
}
|
|
661
|
+
return {
|
|
662
|
+
success: false,
|
|
663
|
+
agentId,
|
|
664
|
+
error: 'Agent not found',
|
|
665
|
+
};
|
|
666
|
+
},
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
// #1916 — the `ruflo agent logs <id>` CLI subcommand and the guidance
|
|
670
|
+
// surface both reference an `agent_logs` MCP tool that was never
|
|
671
|
+
// registered, so it errored with `MCP tool not found: agent_logs`.
|
|
672
|
+
// This is the registered handler. Note: agents don't yet keep a
|
|
673
|
+
// structured per-agent activity log (that lands with hive worker
|
|
674
|
+
// execution wiring — see #1916), so for now we surface the agent's
|
|
675
|
+
// last task result as a single synthetic entry, or an explicit empty
|
|
676
|
+
// response. The shape matches what the CLI `logs` subcommand expects:
|
|
677
|
+
// `{ agentId, entries: [{timestamp,level,message,context?}], total }`.
|
|
678
|
+
name: 'agent_logs',
|
|
679
|
+
description: 'Return recorded activity-log entries for a tracked agent (idle/running history, last task result). Use when native Task tool is wrong because you need the agent\'s log across turns (what it did, last error/result, swarm context) rather than a one-shot Task transcript. For a Task you just ran, native Task output is fine. Pair with agent_list to find the agentId. (Hive-mind-spawned workers are resolved here too.) Today this returns the last task result as a synthetic entry — full per-agent activity logs land with hive worker execution wiring (ruvnet/ruflo#1916).',
|
|
680
|
+
category: 'agent',
|
|
681
|
+
inputSchema: {
|
|
682
|
+
type: 'object',
|
|
683
|
+
properties: {
|
|
684
|
+
agentId: { type: 'string', description: 'ID of agent' },
|
|
685
|
+
tail: { type: 'number', description: 'Max recent entries to return (default 50)' },
|
|
686
|
+
level: { type: 'string', enum: ['debug', 'info', 'warn', 'error'], description: 'Minimum log level (currently advisory — entries are synthetic)' },
|
|
687
|
+
since: { type: 'string', description: 'Show logs since, e.g. "1h" / "30m" (currently advisory)' },
|
|
688
|
+
},
|
|
689
|
+
required: ['agentId'],
|
|
690
|
+
},
|
|
691
|
+
handler: async (input) => {
|
|
692
|
+
const v = validateIdentifier(input.agentId, 'agentId');
|
|
693
|
+
if (!v.valid)
|
|
694
|
+
return { agentId: input.agentId, entries: [], total: 0, error: `Input validation failed: ${v.error}` };
|
|
695
|
+
const agentId = input.agentId;
|
|
696
|
+
const agent = loadAllAgents()[agentId]; // #1916: includes hive-mind-spawned workers
|
|
697
|
+
if (!agent) {
|
|
698
|
+
return { agentId, entries: [], total: 0, error: 'Agent not found' };
|
|
699
|
+
}
|
|
700
|
+
const entries = [];
|
|
701
|
+
entries.push({ timestamp: agent.createdAt, level: 'info', message: `agent created (type=${agent.agentType}, status=${agent.status})` });
|
|
702
|
+
if (agent.lastResult) {
|
|
703
|
+
entries.push({ timestamp: agent.createdAt, level: 'info', message: 'last task result', context: agent.lastResult });
|
|
704
|
+
}
|
|
705
|
+
const tail = typeof input.tail === 'number' && input.tail > 0 ? Math.floor(input.tail) : 50;
|
|
706
|
+
const sliced = entries.slice(-tail);
|
|
707
|
+
return {
|
|
708
|
+
agentId: agent.agentId,
|
|
709
|
+
entries: sliced,
|
|
710
|
+
total: entries.length,
|
|
711
|
+
note: 'per-agent activity logging is not yet wired; entries are synthetic (ruvnet/ruflo#1916)',
|
|
712
|
+
};
|
|
713
|
+
},
|
|
714
|
+
},
|
|
715
|
+
];
|
|
716
|
+
//# sourceMappingURL=agent-tools.js.map
|