@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,867 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentDB MCP Tools — Phase 6 of ADR-053
|
|
3
|
+
*
|
|
4
|
+
* Exposes AgentDB v3 controller operations as MCP tools.
|
|
5
|
+
* Provides direct access to ReasoningBank, CausalGraph, SkillLibrary,
|
|
6
|
+
* AttestationLog, and bridge health through the MCP protocol.
|
|
7
|
+
*
|
|
8
|
+
* Security: All handlers validate input types, enforce length bounds,
|
|
9
|
+
* and sanitize error messages before returning to MCP callers.
|
|
10
|
+
*
|
|
11
|
+
* @module v3/cli/mcp-tools/agentdb-tools
|
|
12
|
+
*/
|
|
13
|
+
import { validateIdentifier, validateText } from './validate-input.js';
|
|
14
|
+
// ===== Shared validation helpers =====
|
|
15
|
+
const MAX_STRING_LENGTH = 100_000; // 100KB max for any string input
|
|
16
|
+
const MAX_BATCH_SIZE = 500; // Max entries per batch operation
|
|
17
|
+
const MAX_TOP_K = 100; // Max results per query
|
|
18
|
+
function validateString(value, name, maxLen = MAX_STRING_LENGTH) {
|
|
19
|
+
if (typeof value !== 'string' || value.length === 0)
|
|
20
|
+
return null;
|
|
21
|
+
if (value.length > maxLen)
|
|
22
|
+
return null;
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
function validatePositiveInt(value, defaultVal, max) {
|
|
26
|
+
if (typeof value !== 'number' || !Number.isFinite(value))
|
|
27
|
+
return defaultVal;
|
|
28
|
+
const n = Math.floor(value);
|
|
29
|
+
return n > 0 ? Math.min(n, max) : defaultVal;
|
|
30
|
+
}
|
|
31
|
+
function validateScore(value, defaultVal) {
|
|
32
|
+
if (typeof value !== 'number' || !Number.isFinite(value))
|
|
33
|
+
return defaultVal;
|
|
34
|
+
return Math.max(0, Math.min(1, value));
|
|
35
|
+
}
|
|
36
|
+
function sanitizeError(error) {
|
|
37
|
+
if (error instanceof Error) {
|
|
38
|
+
// Strip filesystem paths from error messages
|
|
39
|
+
return error.message.replace(/\/[^\s:]+\//g, '<path>/').substring(0, 500);
|
|
40
|
+
}
|
|
41
|
+
return 'Internal error';
|
|
42
|
+
}
|
|
43
|
+
// Lazy-cached bridge module
|
|
44
|
+
let bridgeModule = null;
|
|
45
|
+
async function getBridge() {
|
|
46
|
+
if (!bridgeModule) {
|
|
47
|
+
bridgeModule = await import('../memory/memory-bridge.js');
|
|
48
|
+
}
|
|
49
|
+
return bridgeModule;
|
|
50
|
+
}
|
|
51
|
+
// ===== agentdb_health — Controller health check =====
|
|
52
|
+
export const agentdbHealth = {
|
|
53
|
+
name: 'agentdb_health',
|
|
54
|
+
description: 'Get AgentDB v3 controller health status including cache stats and attestation count Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
55
|
+
inputSchema: {
|
|
56
|
+
type: 'object',
|
|
57
|
+
properties: {},
|
|
58
|
+
},
|
|
59
|
+
handler: async () => {
|
|
60
|
+
try {
|
|
61
|
+
const bridge = await getBridge();
|
|
62
|
+
const health = await bridge.bridgeHealthCheck();
|
|
63
|
+
if (!health)
|
|
64
|
+
return { available: false, error: 'AgentDB bridge not available' };
|
|
65
|
+
return health;
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
return { available: false, error: sanitizeError(error) };
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
// ===== agentdb_controllers — List all controllers =====
|
|
73
|
+
export const agentdbControllers = {
|
|
74
|
+
name: 'agentdb_controllers',
|
|
75
|
+
description: 'List all AgentDB v3 controllers and their initialization status Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: 'object',
|
|
78
|
+
properties: {},
|
|
79
|
+
},
|
|
80
|
+
handler: async () => {
|
|
81
|
+
try {
|
|
82
|
+
const bridge = await getBridge();
|
|
83
|
+
const controllers = await bridge.bridgeListControllers();
|
|
84
|
+
if (!controllers)
|
|
85
|
+
return { available: false, controllers: [], error: 'AgentDB bridge not available — @claude-flow/memory not installed or missing controller-registry. Use memory_store/memory_search tools instead.' };
|
|
86
|
+
return {
|
|
87
|
+
available: true,
|
|
88
|
+
controllers,
|
|
89
|
+
total: controllers.length,
|
|
90
|
+
active: controllers.filter((c) => c.enabled).length,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
return { available: false, error: sanitizeError(error) };
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
// ===== agentdb_pattern_store — Store via ReasoningBank =====
|
|
99
|
+
export const agentdbPatternStore = {
|
|
100
|
+
name: 'agentdb_pattern-store',
|
|
101
|
+
description: 'Store a pattern directly via ReasoningBank controller Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
102
|
+
inputSchema: {
|
|
103
|
+
type: 'object',
|
|
104
|
+
properties: {
|
|
105
|
+
pattern: { type: 'string', description: 'Pattern description' },
|
|
106
|
+
type: { type: 'string', description: 'Pattern type (e.g., task-routing, error-recovery)' },
|
|
107
|
+
confidence: { type: 'number', description: 'Confidence score (0-1)' },
|
|
108
|
+
},
|
|
109
|
+
required: ['pattern'],
|
|
110
|
+
},
|
|
111
|
+
handler: async (params) => {
|
|
112
|
+
try {
|
|
113
|
+
const vPattern = validateText(params.pattern, 'pattern', 100_000);
|
|
114
|
+
if (!vPattern.valid)
|
|
115
|
+
return { success: false, error: vPattern.error };
|
|
116
|
+
if (params.type) {
|
|
117
|
+
const vType = validateIdentifier(params.type, 'type');
|
|
118
|
+
if (!vType.valid)
|
|
119
|
+
return { success: false, error: vType.error };
|
|
120
|
+
}
|
|
121
|
+
const pattern = validateString(params.pattern, 'pattern');
|
|
122
|
+
if (!pattern)
|
|
123
|
+
return { success: false, error: 'pattern is required (non-empty string, max 100KB)' };
|
|
124
|
+
const type = validateString(params.type, 'type', 200) ?? 'general';
|
|
125
|
+
const confidence = validateScore(params.confidence, 0.8);
|
|
126
|
+
const bridge = await getBridge();
|
|
127
|
+
const result = await bridge.bridgeStorePattern({ pattern, type, confidence });
|
|
128
|
+
if (result)
|
|
129
|
+
return result;
|
|
130
|
+
// ADR-093 F4: when the ReasoningBank controller registry returns
|
|
131
|
+
// null (the cause of audit-reported "AgentDB bridge not available"
|
|
132
|
+
// even though `agentdb_health.reasoningBank.enabled === true`), fall
|
|
133
|
+
// back to a direct memory_store write so the caller's pattern still
|
|
134
|
+
// persists. Surface the controller as `memory-store-fallback` so the
|
|
135
|
+
// path is observable instead of silently lost.
|
|
136
|
+
try {
|
|
137
|
+
const { storeEntry } = await import('../memory/memory-initializer.js');
|
|
138
|
+
const patternId = `pattern-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
139
|
+
const value = JSON.stringify({ pattern, type, confidence, _fallback: 'reasoningBank-unavailable' });
|
|
140
|
+
await storeEntry({
|
|
141
|
+
key: patternId,
|
|
142
|
+
value,
|
|
143
|
+
namespace: 'pattern',
|
|
144
|
+
tags: [type, 'reasoning-pattern', 'fallback'],
|
|
145
|
+
});
|
|
146
|
+
return {
|
|
147
|
+
success: true,
|
|
148
|
+
patternId,
|
|
149
|
+
controller: 'memory-store-fallback',
|
|
150
|
+
note: 'ReasoningBank controller registry unavailable. Pattern persisted via memory_store. Run `agentdb_health` to inspect controller registration.',
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
catch (fallbackErr) {
|
|
154
|
+
return {
|
|
155
|
+
success: false,
|
|
156
|
+
error: 'Pattern store failed: both ReasoningBank bridge and memory_store fallback unavailable',
|
|
157
|
+
fallbackError: sanitizeError(fallbackErr),
|
|
158
|
+
recommendation: 'Run agentdb_health to inspect controller registration and check that .swarm/memory.db is writable.',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
return { success: false, error: sanitizeError(error) };
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
// ===== agentdb_pattern_search — Search via ReasoningBank =====
|
|
168
|
+
export const agentdbPatternSearch = {
|
|
169
|
+
name: 'agentdb_pattern-search',
|
|
170
|
+
description: 'Search patterns via ReasoningBank controller with BM25+semantic hybrid Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
171
|
+
inputSchema: {
|
|
172
|
+
type: 'object',
|
|
173
|
+
properties: {
|
|
174
|
+
query: { type: 'string', description: 'Search query' },
|
|
175
|
+
topK: { type: 'number', description: 'Number of results (default: 5)' },
|
|
176
|
+
minConfidence: { type: 'number', description: 'Minimum score threshold (0-1)' },
|
|
177
|
+
},
|
|
178
|
+
required: ['query'],
|
|
179
|
+
},
|
|
180
|
+
handler: async (params) => {
|
|
181
|
+
try {
|
|
182
|
+
const vQuery = validateText(params.query, 'query', 10_000);
|
|
183
|
+
if (!vQuery.valid)
|
|
184
|
+
return { results: [], error: vQuery.error };
|
|
185
|
+
const query = validateString(params.query, 'query', 10_000);
|
|
186
|
+
if (!query)
|
|
187
|
+
return { results: [], error: 'query is required (non-empty string, max 10KB)' };
|
|
188
|
+
const topK = validatePositiveInt(params.topK, 5, MAX_TOP_K);
|
|
189
|
+
const minConfidence = validateScore(params.minConfidence, 0.3);
|
|
190
|
+
const bridge = await getBridge();
|
|
191
|
+
const result = await bridge.bridgeSearchPatterns({ query, topK, minConfidence });
|
|
192
|
+
if (result && Array.isArray(result.results) && result.results.length > 0) {
|
|
193
|
+
return result;
|
|
194
|
+
}
|
|
195
|
+
// #1889 — symmetric fallback. pattern-store writes to the `pattern`
|
|
196
|
+
// namespace via memory_store when ReasoningBank is unavailable; the
|
|
197
|
+
// search path used to return an empty list with `controller: 'unavailable'`
|
|
198
|
+
// even though the user's pattern was sitting in that namespace. We now
|
|
199
|
+
// tier the fallback so freshly-written entries are findable before HNSW
|
|
200
|
+
// catches up:
|
|
201
|
+
// 1. Try semantic search via searchEntries (HNSW-backed)
|
|
202
|
+
// 2. If that returns 0, list the namespace and substring-match the query
|
|
203
|
+
// against each entry's pattern text. Deterministic; survives
|
|
204
|
+
// embedding-index latency and threshold tuning.
|
|
205
|
+
try {
|
|
206
|
+
const { searchEntries, listEntries } = await import('../memory/memory-initializer.js');
|
|
207
|
+
const parseEntry = (e) => {
|
|
208
|
+
const raw = typeof e.content === 'string' ? e.content : e.value;
|
|
209
|
+
if (typeof raw !== 'string')
|
|
210
|
+
return null;
|
|
211
|
+
try {
|
|
212
|
+
const parsed = JSON.parse(raw);
|
|
213
|
+
const confidence = typeof parsed.confidence === 'number' ? parsed.confidence : 0.8;
|
|
214
|
+
if (confidence < minConfidence)
|
|
215
|
+
return null;
|
|
216
|
+
return {
|
|
217
|
+
patternId: e.key ?? e.id,
|
|
218
|
+
pattern: parsed.pattern,
|
|
219
|
+
type: parsed.type ?? 'general',
|
|
220
|
+
confidence,
|
|
221
|
+
score: typeof e.score === 'number' ? e.score : undefined,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
// Tier 1 — semantic
|
|
229
|
+
let results = [];
|
|
230
|
+
let tier = 'semantic';
|
|
231
|
+
try {
|
|
232
|
+
const semantic = await searchEntries({ query, namespace: 'pattern', limit: topK });
|
|
233
|
+
results = (semantic?.results ?? [])
|
|
234
|
+
.map(parseEntry)
|
|
235
|
+
.filter((r) => r !== null);
|
|
236
|
+
}
|
|
237
|
+
catch { /* fall through to tier 2 */ }
|
|
238
|
+
// Tier 2 — substring scan (catches just-written entries before HNSW indexes them)
|
|
239
|
+
if (results.length === 0) {
|
|
240
|
+
tier = 'substring';
|
|
241
|
+
const all = await listEntries({ namespace: 'pattern', limit: 200 });
|
|
242
|
+
const qLower = query.toLowerCase();
|
|
243
|
+
const matched = [];
|
|
244
|
+
for (const e of (all?.entries ?? [])) {
|
|
245
|
+
const parsed = parseEntry(e);
|
|
246
|
+
if (!parsed)
|
|
247
|
+
continue;
|
|
248
|
+
const text = typeof parsed.pattern === 'string' ? parsed.pattern.toLowerCase() : '';
|
|
249
|
+
if (text.includes(qLower))
|
|
250
|
+
matched.push(parsed);
|
|
251
|
+
if (matched.length >= topK)
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
results = matched;
|
|
255
|
+
}
|
|
256
|
+
// #1889 — controller label must match pattern-store's so the smoke
|
|
257
|
+
// round-trip sees both ends agree. The store reports
|
|
258
|
+
// `memory-store-fallback`; we use the same name + a `tier` field
|
|
259
|
+
// to expose which sub-strategy fired.
|
|
260
|
+
return {
|
|
261
|
+
results,
|
|
262
|
+
controller: 'memory-store-fallback',
|
|
263
|
+
tier,
|
|
264
|
+
note: result
|
|
265
|
+
? `ReasoningBank returned 0 results; tier=${tier} from pattern namespace.`
|
|
266
|
+
: `ReasoningBank controller unavailable; tier=${tier} from pattern namespace.`,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
catch (fallbackErr) {
|
|
270
|
+
return { results: [], controller: 'unavailable', fallbackError: sanitizeError(fallbackErr) };
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
return { results: [], error: sanitizeError(error) };
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
// ===== agentdb_feedback — Record task feedback =====
|
|
279
|
+
export const agentdbFeedback = {
|
|
280
|
+
name: 'agentdb_feedback',
|
|
281
|
+
description: 'Record task feedback for learning via LearningSystem + ReasoningBank controllers Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
282
|
+
inputSchema: {
|
|
283
|
+
type: 'object',
|
|
284
|
+
properties: {
|
|
285
|
+
taskId: { type: 'string', description: 'Task identifier' },
|
|
286
|
+
success: { type: 'boolean', description: 'Whether task succeeded' },
|
|
287
|
+
quality: { type: 'number', description: 'Quality score (0-1)' },
|
|
288
|
+
agent: { type: 'string', description: 'Agent that performed the task' },
|
|
289
|
+
},
|
|
290
|
+
required: ['taskId'],
|
|
291
|
+
},
|
|
292
|
+
handler: async (params) => {
|
|
293
|
+
try {
|
|
294
|
+
const vTaskId = validateIdentifier(params.taskId, 'taskId');
|
|
295
|
+
if (!vTaskId.valid)
|
|
296
|
+
return { success: false, error: vTaskId.error };
|
|
297
|
+
if (params.agent) {
|
|
298
|
+
const vAgent = validateIdentifier(params.agent, 'agent');
|
|
299
|
+
if (!vAgent.valid)
|
|
300
|
+
return { success: false, error: vAgent.error };
|
|
301
|
+
}
|
|
302
|
+
const taskId = validateString(params.taskId, 'taskId', 500);
|
|
303
|
+
if (!taskId)
|
|
304
|
+
return { success: false, error: 'taskId is required (non-empty string, max 500 chars)' };
|
|
305
|
+
const bridge = await getBridge();
|
|
306
|
+
const result = await bridge.bridgeRecordFeedback({
|
|
307
|
+
taskId,
|
|
308
|
+
success: params.success === true,
|
|
309
|
+
quality: validateScore(params.quality, 0.85),
|
|
310
|
+
agent: validateString(params.agent, 'agent', 200) ?? undefined,
|
|
311
|
+
});
|
|
312
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
313
|
+
}
|
|
314
|
+
catch (error) {
|
|
315
|
+
return { success: false, error: sanitizeError(error) };
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
};
|
|
319
|
+
// ===== agentdb_causal_edge — Record causal relationships =====
|
|
320
|
+
export const agentdbCausalEdge = {
|
|
321
|
+
name: 'agentdb_causal-edge',
|
|
322
|
+
description: 'Record a causal edge between two memory entries via CausalMemoryGraph Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
323
|
+
inputSchema: {
|
|
324
|
+
type: 'object',
|
|
325
|
+
properties: {
|
|
326
|
+
sourceId: { type: 'string', description: 'Source entry ID' },
|
|
327
|
+
targetId: { type: 'string', description: 'Target entry ID' },
|
|
328
|
+
relation: { type: 'string', description: 'Relationship type (e.g., caused, preceded, succeeded)' },
|
|
329
|
+
weight: { type: 'number', description: 'Edge weight (0-1)' },
|
|
330
|
+
},
|
|
331
|
+
required: ['sourceId', 'targetId', 'relation'],
|
|
332
|
+
},
|
|
333
|
+
handler: async (params) => {
|
|
334
|
+
try {
|
|
335
|
+
const vSourceId = validateIdentifier(params.sourceId, 'sourceId');
|
|
336
|
+
if (!vSourceId.valid)
|
|
337
|
+
return { success: false, error: vSourceId.error };
|
|
338
|
+
const vTargetId = validateIdentifier(params.targetId, 'targetId');
|
|
339
|
+
if (!vTargetId.valid)
|
|
340
|
+
return { success: false, error: vTargetId.error };
|
|
341
|
+
const vRelation = validateIdentifier(params.relation, 'relation');
|
|
342
|
+
if (!vRelation.valid)
|
|
343
|
+
return { success: false, error: vRelation.error };
|
|
344
|
+
const sourceId = validateString(params.sourceId, 'sourceId', 500);
|
|
345
|
+
const targetId = validateString(params.targetId, 'targetId', 500);
|
|
346
|
+
const relation = validateString(params.relation, 'relation', 200);
|
|
347
|
+
if (!sourceId)
|
|
348
|
+
return { success: false, error: 'sourceId is required (non-empty string)' };
|
|
349
|
+
if (!targetId)
|
|
350
|
+
return { success: false, error: 'targetId is required (non-empty string)' };
|
|
351
|
+
if (!relation)
|
|
352
|
+
return { success: false, error: 'relation is required (non-empty string)' };
|
|
353
|
+
// Try native graph-node backend first (ADR-087)
|
|
354
|
+
try {
|
|
355
|
+
const graphBackend = await import('../ruvector/graph-backend.js');
|
|
356
|
+
if (await graphBackend.isGraphBackendAvailable()) {
|
|
357
|
+
const graphResult = await graphBackend.recordCausalEdge(sourceId, targetId, relation, typeof params.weight === 'number' ? validateScore(params.weight, 0.5) : undefined);
|
|
358
|
+
if (graphResult.success) {
|
|
359
|
+
// Also record in AgentDB bridge for compatibility
|
|
360
|
+
const bridge = await getBridge();
|
|
361
|
+
await bridge.bridgeRecordCausalEdge({ sourceId, targetId, relation, weight: typeof params.weight === 'number' ? validateScore(params.weight, 0.5) : undefined }).catch(() => { });
|
|
362
|
+
return { ...graphResult, _graphNodeBackend: true };
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
catch { /* graph-node not available, fall through */ }
|
|
367
|
+
const bridge = await getBridge();
|
|
368
|
+
const result = await bridge.bridgeRecordCausalEdge({
|
|
369
|
+
sourceId,
|
|
370
|
+
targetId,
|
|
371
|
+
relation,
|
|
372
|
+
weight: typeof params.weight === 'number' ? validateScore(params.weight, 0.5) : undefined,
|
|
373
|
+
});
|
|
374
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
return { success: false, error: sanitizeError(error) };
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
};
|
|
381
|
+
// ===== agentdb_route — Route via SemanticRouter =====
|
|
382
|
+
export const agentdbRoute = {
|
|
383
|
+
name: 'agentdb_route',
|
|
384
|
+
description: 'Route a task via AgentDB SemanticRouter or LearningSystem recommendAlgorithm Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
385
|
+
inputSchema: {
|
|
386
|
+
type: 'object',
|
|
387
|
+
properties: {
|
|
388
|
+
task: { type: 'string', description: 'Task description to route' },
|
|
389
|
+
context: { type: 'string', description: 'Additional context' },
|
|
390
|
+
},
|
|
391
|
+
required: ['task'],
|
|
392
|
+
},
|
|
393
|
+
handler: async (params) => {
|
|
394
|
+
try {
|
|
395
|
+
const vTask = validateText(params.task, 'task', 10_000);
|
|
396
|
+
if (!vTask.valid)
|
|
397
|
+
return { route: 'general', confidence: 0.5, agents: ['coder'], controller: 'error', error: vTask.error };
|
|
398
|
+
if (params.context) {
|
|
399
|
+
const vCtx = validateText(params.context, 'context', 10_000);
|
|
400
|
+
if (!vCtx.valid)
|
|
401
|
+
return { route: 'general', confidence: 0.5, agents: ['coder'], controller: 'error', error: vCtx.error };
|
|
402
|
+
}
|
|
403
|
+
const task = validateString(params.task, 'task', 10_000);
|
|
404
|
+
if (!task)
|
|
405
|
+
return { route: 'general', confidence: 0.5, agents: ['coder'], controller: 'error', error: 'task is required (non-empty string)' };
|
|
406
|
+
const bridge = await getBridge();
|
|
407
|
+
const result = await bridge.bridgeRouteTask({
|
|
408
|
+
task,
|
|
409
|
+
context: validateString(params.context, 'context', 10_000) ?? undefined,
|
|
410
|
+
});
|
|
411
|
+
return result ?? { route: 'general', confidence: 0.5, agents: ['coder'], controller: 'fallback' };
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
return { route: 'general', confidence: 0.5, agents: ['coder'], controller: 'error', error: sanitizeError(error) };
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
};
|
|
418
|
+
// ===== agentdb_session_start — Session with ReflexionMemory =====
|
|
419
|
+
export const agentdbSessionStart = {
|
|
420
|
+
name: 'agentdb_session-start',
|
|
421
|
+
description: 'Start a session with ReflexionMemory episodic replay Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
422
|
+
inputSchema: {
|
|
423
|
+
type: 'object',
|
|
424
|
+
properties: {
|
|
425
|
+
sessionId: { type: 'string', description: 'Session identifier' },
|
|
426
|
+
context: { type: 'string', description: 'Session context for pattern retrieval' },
|
|
427
|
+
},
|
|
428
|
+
required: ['sessionId'],
|
|
429
|
+
},
|
|
430
|
+
handler: async (params) => {
|
|
431
|
+
try {
|
|
432
|
+
const vSessionId = validateIdentifier(params.sessionId, 'sessionId');
|
|
433
|
+
if (!vSessionId.valid)
|
|
434
|
+
return { success: false, error: vSessionId.error };
|
|
435
|
+
if (params.context) {
|
|
436
|
+
const vCtx = validateText(params.context, 'context', 10_000);
|
|
437
|
+
if (!vCtx.valid)
|
|
438
|
+
return { success: false, error: vCtx.error };
|
|
439
|
+
}
|
|
440
|
+
const sessionId = validateString(params.sessionId, 'sessionId', 500);
|
|
441
|
+
if (!sessionId)
|
|
442
|
+
return { success: false, error: 'sessionId is required (non-empty string)' };
|
|
443
|
+
const bridge = await getBridge();
|
|
444
|
+
const result = await bridge.bridgeSessionStart({
|
|
445
|
+
sessionId,
|
|
446
|
+
context: validateString(params.context, 'context', 10_000) ?? undefined,
|
|
447
|
+
});
|
|
448
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
449
|
+
}
|
|
450
|
+
catch (error) {
|
|
451
|
+
return { success: false, error: sanitizeError(error) };
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
};
|
|
455
|
+
// ===== agentdb_session_end — End session + NightlyLearner =====
|
|
456
|
+
export const agentdbSessionEnd = {
|
|
457
|
+
name: 'agentdb_session-end',
|
|
458
|
+
description: 'End session, persist to ReflexionMemory, trigger NightlyLearner consolidation Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
459
|
+
inputSchema: {
|
|
460
|
+
type: 'object',
|
|
461
|
+
properties: {
|
|
462
|
+
sessionId: { type: 'string', description: 'Session identifier' },
|
|
463
|
+
summary: { type: 'string', description: 'Session summary' },
|
|
464
|
+
tasksCompleted: { type: 'number', description: 'Number of tasks completed' },
|
|
465
|
+
},
|
|
466
|
+
required: ['sessionId'],
|
|
467
|
+
},
|
|
468
|
+
handler: async (params) => {
|
|
469
|
+
try {
|
|
470
|
+
const vSessionId = validateIdentifier(params.sessionId, 'sessionId');
|
|
471
|
+
if (!vSessionId.valid)
|
|
472
|
+
return { success: false, error: vSessionId.error };
|
|
473
|
+
if (params.summary) {
|
|
474
|
+
const vSummary = validateText(params.summary, 'summary', 50_000);
|
|
475
|
+
if (!vSummary.valid)
|
|
476
|
+
return { success: false, error: vSummary.error };
|
|
477
|
+
}
|
|
478
|
+
const sessionId = validateString(params.sessionId, 'sessionId', 500);
|
|
479
|
+
if (!sessionId)
|
|
480
|
+
return { success: false, error: 'sessionId is required (non-empty string)' };
|
|
481
|
+
const bridge = await getBridge();
|
|
482
|
+
const result = await bridge.bridgeSessionEnd({
|
|
483
|
+
sessionId,
|
|
484
|
+
summary: validateString(params.summary, 'summary', 50_000) ?? undefined,
|
|
485
|
+
tasksCompleted: validatePositiveInt(params.tasksCompleted, 0, 10_000),
|
|
486
|
+
});
|
|
487
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
488
|
+
}
|
|
489
|
+
catch (error) {
|
|
490
|
+
return { success: false, error: sanitizeError(error) };
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
};
|
|
494
|
+
// ===== agentdb_hierarchical_store — Store to hierarchical memory =====
|
|
495
|
+
export const agentdbHierarchicalStore = {
|
|
496
|
+
name: 'agentdb_hierarchical-store',
|
|
497
|
+
description: 'Store to hierarchical memory with tier (working, episodic, semantic) Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
498
|
+
inputSchema: {
|
|
499
|
+
type: 'object',
|
|
500
|
+
properties: {
|
|
501
|
+
key: { type: 'string', description: 'Memory entry key' },
|
|
502
|
+
value: { type: 'string', description: 'Memory entry value' },
|
|
503
|
+
tier: {
|
|
504
|
+
type: 'string',
|
|
505
|
+
description: 'Memory tier (working, episodic, semantic)',
|
|
506
|
+
enum: ['working', 'episodic', 'semantic'],
|
|
507
|
+
default: 'working',
|
|
508
|
+
},
|
|
509
|
+
},
|
|
510
|
+
required: ['key', 'value'],
|
|
511
|
+
},
|
|
512
|
+
handler: async (params) => {
|
|
513
|
+
try {
|
|
514
|
+
const vKey = validateIdentifier(params.key, 'key');
|
|
515
|
+
if (!vKey.valid)
|
|
516
|
+
return { success: false, error: vKey.error };
|
|
517
|
+
const vValue = validateText(params.value, 'value');
|
|
518
|
+
if (!vValue.valid)
|
|
519
|
+
return { success: false, error: vValue.error };
|
|
520
|
+
if (params.tier) {
|
|
521
|
+
const vTier = validateIdentifier(params.tier, 'tier');
|
|
522
|
+
if (!vTier.valid)
|
|
523
|
+
return { success: false, error: vTier.error };
|
|
524
|
+
}
|
|
525
|
+
const key = validateString(params.key, 'key', 1000);
|
|
526
|
+
const value = validateString(params.value, 'value');
|
|
527
|
+
if (!key)
|
|
528
|
+
return { success: false, error: 'key is required (non-empty string, max 1KB)' };
|
|
529
|
+
if (!value)
|
|
530
|
+
return { success: false, error: 'value is required (non-empty string, max 100KB)' };
|
|
531
|
+
const tier = validateString(params.tier, 'tier', 20) ?? 'working';
|
|
532
|
+
if (!['working', 'episodic', 'semantic'].includes(tier)) {
|
|
533
|
+
return { success: false, error: `Invalid tier: ${tier}. Must be working, episodic, or semantic` };
|
|
534
|
+
}
|
|
535
|
+
const bridge = await getBridge();
|
|
536
|
+
const result = await bridge.bridgeHierarchicalStore({ key, value, tier });
|
|
537
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
538
|
+
}
|
|
539
|
+
catch (error) {
|
|
540
|
+
return { success: false, error: sanitizeError(error) };
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
};
|
|
544
|
+
// ===== agentdb_hierarchical_recall — Recall from hierarchical memory =====
|
|
545
|
+
export const agentdbHierarchicalRecall = {
|
|
546
|
+
name: 'agentdb_hierarchical-recall',
|
|
547
|
+
description: 'Recall from hierarchical memory with optional tier filter Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
548
|
+
inputSchema: {
|
|
549
|
+
type: 'object',
|
|
550
|
+
properties: {
|
|
551
|
+
query: { type: 'string', description: 'Recall query' },
|
|
552
|
+
tier: { type: 'string', description: 'Filter by tier (working, episodic, semantic)' },
|
|
553
|
+
topK: { type: 'number', description: 'Number of results (default: 5)' },
|
|
554
|
+
},
|
|
555
|
+
required: ['query'],
|
|
556
|
+
},
|
|
557
|
+
handler: async (params) => {
|
|
558
|
+
try {
|
|
559
|
+
const vQuery = validateText(params.query, 'query', 10_000);
|
|
560
|
+
if (!vQuery.valid)
|
|
561
|
+
return { results: [], error: vQuery.error };
|
|
562
|
+
if (params.tier) {
|
|
563
|
+
const vTier = validateIdentifier(params.tier, 'tier');
|
|
564
|
+
if (!vTier.valid)
|
|
565
|
+
return { results: [], error: vTier.error };
|
|
566
|
+
}
|
|
567
|
+
const query = validateString(params.query, 'query', 10_000);
|
|
568
|
+
if (!query)
|
|
569
|
+
return { results: [], error: 'query is required (non-empty string, max 10KB)' };
|
|
570
|
+
const tier = validateString(params.tier, 'tier', 20);
|
|
571
|
+
if (tier && !['working', 'episodic', 'semantic'].includes(tier)) {
|
|
572
|
+
return { results: [], error: `Invalid tier: ${tier}. Must be working, episodic, or semantic` };
|
|
573
|
+
}
|
|
574
|
+
const bridge = await getBridge();
|
|
575
|
+
const result = await bridge.bridgeHierarchicalRecall({
|
|
576
|
+
query,
|
|
577
|
+
tier: tier ?? undefined,
|
|
578
|
+
topK: validatePositiveInt(params.topK, 5, MAX_TOP_K),
|
|
579
|
+
});
|
|
580
|
+
return result ?? { results: [], error: 'AgentDB bridge not available. Use memory_search instead.' };
|
|
581
|
+
}
|
|
582
|
+
catch (error) {
|
|
583
|
+
return { results: [], error: sanitizeError(error) };
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
};
|
|
587
|
+
// ===== agentdb_consolidate — Run memory consolidation =====
|
|
588
|
+
export const agentdbConsolidate = {
|
|
589
|
+
name: 'agentdb_consolidate',
|
|
590
|
+
description: 'Run memory consolidation to promote entries across tiers and compress old data Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
591
|
+
inputSchema: {
|
|
592
|
+
type: 'object',
|
|
593
|
+
properties: {
|
|
594
|
+
minAge: { type: 'number', description: 'Minimum age in hours since store (optional)' },
|
|
595
|
+
maxEntries: { type: 'number', description: 'Maximum entries to consolidate (optional)' },
|
|
596
|
+
},
|
|
597
|
+
},
|
|
598
|
+
handler: async (params) => {
|
|
599
|
+
try {
|
|
600
|
+
const bridge = await getBridge();
|
|
601
|
+
const result = await bridge.bridgeConsolidate({
|
|
602
|
+
minAge: typeof params.minAge === 'number' ? Math.max(0, params.minAge) : undefined,
|
|
603
|
+
maxEntries: validatePositiveInt(params.maxEntries, 1000, 10_000),
|
|
604
|
+
});
|
|
605
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
606
|
+
}
|
|
607
|
+
catch (error) {
|
|
608
|
+
return { success: false, error: sanitizeError(error) };
|
|
609
|
+
}
|
|
610
|
+
},
|
|
611
|
+
};
|
|
612
|
+
// ===== agentdb_batch — Batch operations (insert, update, delete) =====
|
|
613
|
+
export const agentdbBatch = {
|
|
614
|
+
name: 'agentdb_batch',
|
|
615
|
+
description: 'Batch operations on AgentDB episodes (insert, update, delete). Note: entries are stored in the AgentDB episodes table, not the memory_search namespace. Use memory_store for entries that should be searchable via memory_search. Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
616
|
+
inputSchema: {
|
|
617
|
+
type: 'object',
|
|
618
|
+
properties: {
|
|
619
|
+
operation: {
|
|
620
|
+
type: 'string',
|
|
621
|
+
description: 'Batch operation type',
|
|
622
|
+
enum: ['insert', 'update', 'delete'],
|
|
623
|
+
},
|
|
624
|
+
entries: {
|
|
625
|
+
type: 'array',
|
|
626
|
+
description: 'Array of {key, value} entries to operate on',
|
|
627
|
+
items: {
|
|
628
|
+
type: 'object',
|
|
629
|
+
properties: {
|
|
630
|
+
key: { type: 'string' },
|
|
631
|
+
value: { type: 'string' },
|
|
632
|
+
},
|
|
633
|
+
required: ['key'],
|
|
634
|
+
},
|
|
635
|
+
},
|
|
636
|
+
},
|
|
637
|
+
required: ['operation', 'entries'],
|
|
638
|
+
},
|
|
639
|
+
handler: async (params) => {
|
|
640
|
+
try {
|
|
641
|
+
const vOp = validateIdentifier(params.operation, 'operation');
|
|
642
|
+
if (!vOp.valid)
|
|
643
|
+
return { success: false, error: vOp.error };
|
|
644
|
+
const operation = validateString(params.operation, 'operation', 20);
|
|
645
|
+
if (!operation)
|
|
646
|
+
return { success: false, error: 'operation is required (string)' };
|
|
647
|
+
if (!['insert', 'update', 'delete'].includes(operation)) {
|
|
648
|
+
return { success: false, error: `Invalid operation: ${operation}. Must be insert, update, or delete` };
|
|
649
|
+
}
|
|
650
|
+
if (!Array.isArray(params.entries) || params.entries.length === 0) {
|
|
651
|
+
return { success: false, error: 'entries is required (non-empty array)' };
|
|
652
|
+
}
|
|
653
|
+
if (params.entries.length > MAX_BATCH_SIZE) {
|
|
654
|
+
return { success: false, error: `Too many entries: ${params.entries.length}. Max is ${MAX_BATCH_SIZE}` };
|
|
655
|
+
}
|
|
656
|
+
// Validate each entry
|
|
657
|
+
const validatedEntries = [];
|
|
658
|
+
for (let i = 0; i < params.entries.length; i++) {
|
|
659
|
+
const entry = params.entries[i];
|
|
660
|
+
if (!entry || typeof entry !== 'object') {
|
|
661
|
+
return { success: false, error: `entries[${i}] must be an object` };
|
|
662
|
+
}
|
|
663
|
+
const key = validateString(entry.key, `entries[${i}].key`, 1000);
|
|
664
|
+
if (!key)
|
|
665
|
+
return { success: false, error: `entries[${i}].key is required (non-empty string)` };
|
|
666
|
+
const value = validateString(entry.value, `entries[${i}].value`);
|
|
667
|
+
validatedEntries.push({ key, value: value ?? undefined });
|
|
668
|
+
}
|
|
669
|
+
const bridge = await getBridge();
|
|
670
|
+
const result = await bridge.bridgeBatchOperation({
|
|
671
|
+
operation,
|
|
672
|
+
entries: validatedEntries,
|
|
673
|
+
});
|
|
674
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
675
|
+
}
|
|
676
|
+
catch (error) {
|
|
677
|
+
return { success: false, error: sanitizeError(error) };
|
|
678
|
+
}
|
|
679
|
+
},
|
|
680
|
+
};
|
|
681
|
+
// ===== agentdb_context_synthesize — Synthesize context from memories =====
|
|
682
|
+
export const agentdbContextSynthesize = {
|
|
683
|
+
name: 'agentdb_context-synthesize',
|
|
684
|
+
description: 'Synthesize context from stored memories for a given query Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
685
|
+
inputSchema: {
|
|
686
|
+
type: 'object',
|
|
687
|
+
properties: {
|
|
688
|
+
query: { type: 'string', description: 'Query to synthesize context for' },
|
|
689
|
+
maxEntries: { type: 'number', description: 'Maximum entries to include (default: 10)' },
|
|
690
|
+
},
|
|
691
|
+
required: ['query'],
|
|
692
|
+
},
|
|
693
|
+
handler: async (params) => {
|
|
694
|
+
try {
|
|
695
|
+
const vQuery = validateText(params.query, 'query', 10_000);
|
|
696
|
+
if (!vQuery.valid)
|
|
697
|
+
return { success: false, error: vQuery.error };
|
|
698
|
+
const query = validateString(params.query, 'query', 10_000);
|
|
699
|
+
if (!query)
|
|
700
|
+
return { success: false, error: 'query is required (non-empty string, max 10KB)' };
|
|
701
|
+
const bridge = await getBridge();
|
|
702
|
+
const result = await bridge.bridgeContextSynthesize({
|
|
703
|
+
query,
|
|
704
|
+
maxEntries: validatePositiveInt(params.maxEntries, 10, MAX_TOP_K),
|
|
705
|
+
});
|
|
706
|
+
return result ?? { success: false, error: 'AgentDB bridge not available. Use memory_store/memory_search instead.' };
|
|
707
|
+
}
|
|
708
|
+
catch (error) {
|
|
709
|
+
return { success: false, error: sanitizeError(error) };
|
|
710
|
+
}
|
|
711
|
+
},
|
|
712
|
+
};
|
|
713
|
+
// ===== agentdb_semantic_route — Route via SemanticRouter =====
|
|
714
|
+
export const agentdbSemanticRoute = {
|
|
715
|
+
name: 'agentdb_semantic-route',
|
|
716
|
+
description: 'Route an input via AgentDB SemanticRouter for intent classification Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
717
|
+
inputSchema: {
|
|
718
|
+
type: 'object',
|
|
719
|
+
properties: {
|
|
720
|
+
input: { type: 'string', description: 'Input text to route' },
|
|
721
|
+
},
|
|
722
|
+
required: ['input'],
|
|
723
|
+
},
|
|
724
|
+
handler: async (params) => {
|
|
725
|
+
try {
|
|
726
|
+
const vInput = validateText(params.input, 'input', 10_000);
|
|
727
|
+
if (!vInput.valid)
|
|
728
|
+
return { route: null, error: vInput.error };
|
|
729
|
+
const input = validateString(params.input, 'input', 10_000);
|
|
730
|
+
if (!input)
|
|
731
|
+
return { route: null, error: 'input is required (non-empty string, max 10KB)' };
|
|
732
|
+
const bridge = await getBridge();
|
|
733
|
+
const result = await bridge.bridgeSemanticRoute({ input });
|
|
734
|
+
return result ?? { route: null, error: 'AgentDB bridge not available. Use hooks route instead.' };
|
|
735
|
+
}
|
|
736
|
+
catch (error) {
|
|
737
|
+
return { route: null, error: sanitizeError(error) };
|
|
738
|
+
}
|
|
739
|
+
},
|
|
740
|
+
};
|
|
741
|
+
// ===== #1784: Delete tools — symmetry for hierarchical-store + causal-edge =====
|
|
742
|
+
export const agentdbHierarchicalDelete = {
|
|
743
|
+
name: 'agentdb_hierarchical-delete',
|
|
744
|
+
description: 'Delete a hierarchical-memory entry by key. Returns controller="native-unsupported" when the entry is in a backend without a public delete API. Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
745
|
+
inputSchema: {
|
|
746
|
+
type: 'object',
|
|
747
|
+
properties: {
|
|
748
|
+
key: { type: 'string', description: 'Memory entry key to delete' },
|
|
749
|
+
tier: {
|
|
750
|
+
type: 'string',
|
|
751
|
+
description: 'Optional tier filter (working, episodic, semantic)',
|
|
752
|
+
enum: ['working', 'episodic', 'semantic'],
|
|
753
|
+
},
|
|
754
|
+
},
|
|
755
|
+
required: ['key'],
|
|
756
|
+
},
|
|
757
|
+
handler: async (params) => {
|
|
758
|
+
try {
|
|
759
|
+
const vKey = validateIdentifier(params.key, 'key');
|
|
760
|
+
if (!vKey.valid)
|
|
761
|
+
return { success: false, deleted: false, error: vKey.error };
|
|
762
|
+
if (params.tier) {
|
|
763
|
+
const vTier = validateIdentifier(params.tier, 'tier');
|
|
764
|
+
if (!vTier.valid)
|
|
765
|
+
return { success: false, deleted: false, error: vTier.error };
|
|
766
|
+
}
|
|
767
|
+
const key = validateString(params.key, 'key', 1000);
|
|
768
|
+
if (!key)
|
|
769
|
+
return { success: false, deleted: false, error: 'key is required (non-empty string, max 1KB)' };
|
|
770
|
+
const tier = validateString(params.tier, 'tier', 20);
|
|
771
|
+
if (tier && !['working', 'episodic', 'semantic'].includes(tier)) {
|
|
772
|
+
return { success: false, deleted: false, error: `Invalid tier: ${tier}. Must be working, episodic, or semantic` };
|
|
773
|
+
}
|
|
774
|
+
const bridge = await getBridge();
|
|
775
|
+
const result = await bridge.bridgeDeleteHierarchical({ key, tier: tier ?? undefined });
|
|
776
|
+
return result ?? { success: false, deleted: false, error: 'AgentDB bridge not available' };
|
|
777
|
+
}
|
|
778
|
+
catch (error) {
|
|
779
|
+
return { success: false, deleted: false, error: sanitizeError(error) };
|
|
780
|
+
}
|
|
781
|
+
},
|
|
782
|
+
};
|
|
783
|
+
export const agentdbCausalEdgeDelete = {
|
|
784
|
+
name: 'agentdb_causal-edge-delete',
|
|
785
|
+
description: 'Delete a causal edge between two memory entries. Returns controller="native-unsupported" when the edge lives in graph-node native storage (no public delete API). Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
786
|
+
inputSchema: {
|
|
787
|
+
type: 'object',
|
|
788
|
+
properties: {
|
|
789
|
+
sourceId: { type: 'string', description: 'Source entry ID' },
|
|
790
|
+
targetId: { type: 'string', description: 'Target entry ID' },
|
|
791
|
+
relation: { type: 'string', description: 'Optional relationship type filter' },
|
|
792
|
+
},
|
|
793
|
+
required: ['sourceId', 'targetId'],
|
|
794
|
+
},
|
|
795
|
+
handler: async (params) => {
|
|
796
|
+
try {
|
|
797
|
+
const vSourceId = validateIdentifier(params.sourceId, 'sourceId');
|
|
798
|
+
if (!vSourceId.valid)
|
|
799
|
+
return { success: false, deleted: false, error: vSourceId.error };
|
|
800
|
+
const vTargetId = validateIdentifier(params.targetId, 'targetId');
|
|
801
|
+
if (!vTargetId.valid)
|
|
802
|
+
return { success: false, deleted: false, error: vTargetId.error };
|
|
803
|
+
const sourceId = validateString(params.sourceId, 'sourceId', 500);
|
|
804
|
+
const targetId = validateString(params.targetId, 'targetId', 500);
|
|
805
|
+
if (!sourceId)
|
|
806
|
+
return { success: false, deleted: false, error: 'sourceId is required (non-empty string)' };
|
|
807
|
+
if (!targetId)
|
|
808
|
+
return { success: false, deleted: false, error: 'targetId is required (non-empty string)' };
|
|
809
|
+
const relation = validateString(params.relation, 'relation', 200) ?? undefined;
|
|
810
|
+
const bridge = await getBridge();
|
|
811
|
+
const result = await bridge.bridgeDeleteCausalEdge({ sourceId, targetId, relation });
|
|
812
|
+
return result ?? { success: false, deleted: false, error: 'AgentDB bridge not available' };
|
|
813
|
+
}
|
|
814
|
+
catch (error) {
|
|
815
|
+
return { success: false, deleted: false, error: sanitizeError(error) };
|
|
816
|
+
}
|
|
817
|
+
},
|
|
818
|
+
};
|
|
819
|
+
export const agentdbCausalNodeDelete = {
|
|
820
|
+
name: 'agentdb_causal-node-delete',
|
|
821
|
+
description: 'Cascade-delete a causal node and all its incident edges from the SQL fallback. Native graph-node entries are unaffected (no delete API in the binding). Use when generic memory_* tools are wrong because you need AgentDB-specific controllers (HNSW vector search, hierarchical tiers, causal-graph links, pattern store/recall, RaBitQ quantization). For simple key-value persistence, memory_store/memory_retrieve are simpler. For unrelated file work, native Read/Write are fine.',
|
|
822
|
+
inputSchema: {
|
|
823
|
+
type: 'object',
|
|
824
|
+
properties: {
|
|
825
|
+
nodeId: { type: 'string', description: 'Node ID to delete (cascades to all incident edges)' },
|
|
826
|
+
},
|
|
827
|
+
required: ['nodeId'],
|
|
828
|
+
},
|
|
829
|
+
handler: async (params) => {
|
|
830
|
+
try {
|
|
831
|
+
const vNodeId = validateIdentifier(params.nodeId, 'nodeId');
|
|
832
|
+
if (!vNodeId.valid)
|
|
833
|
+
return { success: false, deletedNode: false, deletedEdges: 0, error: vNodeId.error };
|
|
834
|
+
const nodeId = validateString(params.nodeId, 'nodeId', 500);
|
|
835
|
+
if (!nodeId)
|
|
836
|
+
return { success: false, deletedNode: false, deletedEdges: 0, error: 'nodeId is required (non-empty string)' };
|
|
837
|
+
const bridge = await getBridge();
|
|
838
|
+
const result = await bridge.bridgeDeleteCausalNode({ nodeId });
|
|
839
|
+
return result ?? { success: false, deletedNode: false, deletedEdges: 0, error: 'AgentDB bridge not available' };
|
|
840
|
+
}
|
|
841
|
+
catch (error) {
|
|
842
|
+
return { success: false, deletedNode: false, deletedEdges: 0, error: sanitizeError(error) };
|
|
843
|
+
}
|
|
844
|
+
},
|
|
845
|
+
};
|
|
846
|
+
// ===== Export all tools =====
|
|
847
|
+
export const agentdbTools = [
|
|
848
|
+
agentdbHealth,
|
|
849
|
+
agentdbControllers,
|
|
850
|
+
agentdbPatternStore,
|
|
851
|
+
agentdbPatternSearch,
|
|
852
|
+
agentdbFeedback,
|
|
853
|
+
agentdbCausalEdge,
|
|
854
|
+
agentdbCausalEdgeDelete,
|
|
855
|
+
agentdbCausalNodeDelete,
|
|
856
|
+
agentdbRoute,
|
|
857
|
+
agentdbSessionStart,
|
|
858
|
+
agentdbSessionEnd,
|
|
859
|
+
agentdbHierarchicalStore,
|
|
860
|
+
agentdbHierarchicalRecall,
|
|
861
|
+
agentdbHierarchicalDelete,
|
|
862
|
+
agentdbConsolidate,
|
|
863
|
+
agentdbBatch,
|
|
864
|
+
agentdbContextSynthesize,
|
|
865
|
+
agentdbSemanticRoute,
|
|
866
|
+
];
|
|
867
|
+
//# sourceMappingURL=agentdb-tools.js.map
|