@claude-flow/cli 3.0.0-alpha.6 → 3.0.0-alpha.61
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/analysis/analyze-code-quality.md +181 -0
- package/.claude/agents/analysis/code-analyzer.md +210 -0
- package/.claude/agents/architecture/arch-system-design.md +157 -0
- package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
- package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
- package/.claude/agents/consensus/gossip-coordinator.md +63 -0
- package/.claude/agents/consensus/performance-benchmarker.md +851 -0
- package/.claude/agents/consensus/quorum-manager.md +823 -0
- package/.claude/agents/consensus/raft-manager.md +63 -0
- package/.claude/agents/consensus/security-manager.md +622 -0
- package/.claude/agents/core/coder.md +453 -0
- package/.claude/agents/core/planner.md +375 -0
- package/.claude/agents/core/researcher.md +369 -0
- package/.claude/agents/core/reviewer.md +520 -0
- package/.claude/agents/core/tester.md +512 -0
- package/.claude/agents/custom/test-long-runner.md +44 -0
- package/.claude/agents/data/data-ml-model.md +445 -0
- package/.claude/agents/development/dev-backend-api.md +346 -0
- package/.claude/agents/devops/ops-cicd-github.md +165 -0
- package/.claude/agents/documentation/docs-api-openapi.md +355 -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 +377 -0
- package/.claude/agents/github/github-modes.md +173 -0
- package/.claude/agents/github/issue-tracker.md +576 -0
- package/.claude/agents/github/multi-repo-swarm.md +553 -0
- package/.claude/agents/github/pr-manager.md +438 -0
- package/.claude/agents/github/project-board-sync.md +509 -0
- package/.claude/agents/github/release-manager.md +605 -0
- package/.claude/agents/github/release-swarm.md +583 -0
- package/.claude/agents/github/repo-architect.md +398 -0
- package/.claude/agents/github/swarm-issue.md +573 -0
- package/.claude/agents/github/swarm-pr.md +428 -0
- package/.claude/agents/github/sync-coordinator.md +452 -0
- package/.claude/agents/github/workflow-automation.md +903 -0
- package/.claude/agents/goal/agent.md +816 -0
- package/.claude/agents/goal/goal-planner.md +73 -0
- package/.claude/agents/optimization/benchmark-suite.md +665 -0
- package/.claude/agents/optimization/load-balancer.md +431 -0
- package/.claude/agents/optimization/performance-monitor.md +672 -0
- package/.claude/agents/optimization/resource-allocator.md +674 -0
- package/.claude/agents/optimization/topology-optimizer.md +808 -0
- package/.claude/agents/payments/agentic-payments.md +126 -0
- package/.claude/agents/sona/sona-learning-optimizer.md +254 -0
- package/.claude/agents/sparc/architecture.md +699 -0
- package/.claude/agents/sparc/pseudocode.md +520 -0
- package/.claude/agents/sparc/refinement.md +802 -0
- package/.claude/agents/sparc/specification.md +478 -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 +1127 -0
- package/.claude/agents/swarm/hierarchical-coordinator.md +710 -0
- package/.claude/agents/swarm/mesh-coordinator.md +963 -0
- package/.claude/agents/templates/automation-smart-agent.md +205 -0
- package/.claude/agents/templates/base-template-generator.md +268 -0
- package/.claude/agents/templates/coordinator-swarm-init.md +90 -0
- package/.claude/agents/templates/github-pr-manager.md +177 -0
- package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
- package/.claude/agents/templates/memory-coordinator.md +187 -0
- package/.claude/agents/templates/orchestrator-task.md +139 -0
- package/.claude/agents/templates/performance-analyzer.md +199 -0
- package/.claude/agents/templates/sparc-coordinator.md +514 -0
- package/.claude/agents/testing/production-validator.md +395 -0
- package/.claude/agents/testing/tdd-london-swarm.md +244 -0
- package/.claude/agents/v3/adr-architect.md +184 -0
- package/.claude/agents/v3/claims-authorizer.md +208 -0
- package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -0
- package/.claude/agents/v3/ddd-domain-expert.md +220 -0
- package/.claude/agents/v3/memory-specialist.md +995 -0
- package/.claude/agents/v3/performance-engineer.md +1233 -0
- package/.claude/agents/v3/reasoningbank-learner.md +213 -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/v3-integration-architect.md +205 -0
- package/.claude/commands/agents/README.md +50 -0
- package/.claude/commands/agents/agent-capabilities.md +140 -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 +216 -0
- package/.claude/commands/agents/health.md +139 -0
- package/.claude/commands/agents/list.md +100 -0
- package/.claude/commands/agents/logs.md +130 -0
- package/.claude/commands/agents/metrics.md +122 -0
- package/.claude/commands/agents/pool.md +127 -0
- package/.claude/commands/agents/spawn.md +140 -0
- package/.claude/commands/agents/status.md +115 -0
- package/.claude/commands/agents/stop.md +102 -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 +87 -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/helpers/README.md +97 -0
- package/.claude/helpers/adr-compliance.sh +186 -0
- package/.claude/helpers/auto-commit.sh +178 -0
- package/.claude/helpers/checkpoint-manager.sh +251 -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/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.js +83 -0
- package/.claude/helpers/metrics-db.mjs +488 -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.js +66 -0
- package/.claude/helpers/security-scanner.sh +127 -0
- package/.claude/helpers/session.js +127 -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.js +316 -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/settings.json +259 -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/flow-nexus-neural/SKILL.md +738 -0
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
- package/.claude/skills/github-code-review/SKILL.md +1140 -0
- package/.claude/skills/github-multi-repo/SKILL.md +874 -0
- package/.claude/skills/github-project-management/SKILL.md +1277 -0
- package/.claude/skills/github-release-management/SKILL.md +1081 -0
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -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 +563 -0
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
- package/{.claude-flow → .claude/skills/skill-builder/.claude-flow}/metrics/performance.json +3 -3
- package/.claude/skills/skill-builder/.claude-flow/metrics/task-metrics.json +10 -0
- package/.claude/skills/skill-builder/SKILL.md +910 -0
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
- package/.claude/skills/stream-chain/SKILL.md +563 -0
- package/.claude/skills/swarm-advanced/SKILL.md +973 -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 +649 -0
- package/.claude/skills/worker-benchmarks/skill.md +135 -0
- package/.claude/skills/worker-integration/skill.md +154 -0
- package/README.md +428 -6
- package/bin/cli.js +142 -6
- package/bin/mcp-server.js +188 -0
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +42 -26
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/analyze.d.ts +19 -0
- package/dist/src/commands/analyze.d.ts.map +1 -0
- package/dist/src/commands/analyze.js +1823 -0
- package/dist/src/commands/analyze.js.map +1 -0
- package/dist/src/commands/claims.d.ts +10 -0
- package/dist/src/commands/claims.d.ts.map +1 -0
- package/dist/src/commands/claims.js +288 -0
- package/dist/src/commands/claims.js.map +1 -0
- package/dist/src/commands/completions.d.ts +10 -0
- package/dist/src/commands/completions.d.ts.map +1 -0
- package/dist/src/commands/completions.js +539 -0
- package/dist/src/commands/completions.js.map +1 -0
- package/dist/src/commands/daemon.d.ts +8 -0
- package/dist/src/commands/daemon.d.ts.map +1 -0
- package/dist/src/commands/daemon.js +593 -0
- package/dist/src/commands/daemon.js.map +1 -0
- package/dist/src/commands/deployment.d.ts +10 -0
- package/dist/src/commands/deployment.d.ts.map +1 -0
- package/dist/src/commands/deployment.js +289 -0
- package/dist/src/commands/deployment.js.map +1 -0
- package/dist/src/commands/doctor.d.ts +10 -0
- package/dist/src/commands/doctor.d.ts.map +1 -0
- package/dist/src/commands/doctor.js +448 -0
- package/dist/src/commands/doctor.js.map +1 -0
- package/dist/src/commands/embeddings.d.ts +18 -0
- package/dist/src/commands/embeddings.d.ts.map +1 -0
- package/dist/src/commands/embeddings.js +616 -0
- package/dist/src/commands/embeddings.js.map +1 -0
- package/dist/src/commands/hive-mind.d.ts.map +1 -1
- package/dist/src/commands/hive-mind.js +252 -35
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +800 -6
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +52 -14
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +191 -38
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +80 -9
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/issues.d.ts +21 -0
- package/dist/src/commands/issues.d.ts.map +1 -0
- package/dist/src/commands/issues.js +567 -0
- package/dist/src/commands/issues.js.map +1 -0
- package/dist/src/commands/mcp.js +3 -3
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +223 -4
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/neural.d.ts +10 -0
- package/dist/src/commands/neural.d.ts.map +1 -0
- package/dist/src/commands/neural.js +224 -0
- package/dist/src/commands/neural.js.map +1 -0
- package/dist/src/commands/performance.d.ts +10 -0
- package/dist/src/commands/performance.d.ts.map +1 -0
- package/dist/src/commands/performance.js +262 -0
- package/dist/src/commands/performance.js.map +1 -0
- package/dist/src/commands/plugins.d.ts +11 -0
- package/dist/src/commands/plugins.d.ts.map +1 -0
- package/dist/src/commands/plugins.js +630 -0
- package/dist/src/commands/plugins.js.map +1 -0
- package/dist/src/commands/progress.d.ts +11 -0
- package/dist/src/commands/progress.d.ts.map +1 -0
- package/dist/src/commands/progress.js +259 -0
- package/dist/src/commands/progress.js.map +1 -0
- package/dist/src/commands/providers.d.ts +10 -0
- package/dist/src/commands/providers.d.ts.map +1 -0
- package/dist/src/commands/providers.js +232 -0
- package/dist/src/commands/providers.js.map +1 -0
- package/dist/src/commands/route.d.ts +16 -0
- package/dist/src/commands/route.d.ts.map +1 -0
- package/dist/src/commands/route.js +813 -0
- package/dist/src/commands/route.js.map +1 -0
- package/dist/src/commands/security.d.ts +10 -0
- package/dist/src/commands/security.d.ts.map +1 -0
- package/dist/src/commands/security.js +261 -0
- package/dist/src/commands/security.js.map +1 -0
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +22 -2
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/swarm.d.ts.map +1 -1
- package/dist/src/commands/swarm.js +185 -32
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/transfer-store.d.ts +13 -0
- package/dist/src/commands/transfer-store.d.ts.map +1 -0
- package/dist/src/commands/transfer-store.js +428 -0
- package/dist/src/commands/transfer-store.js.map +1 -0
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +69 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +407 -405
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +142 -31
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.js +1 -1
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/mcp-generator.d.ts +9 -0
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +57 -28
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +116 -62
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts +6 -0
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +252 -89
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +6 -0
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +8 -2
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +17 -1
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts +6 -1
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +169 -38
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +350 -14
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
- package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/analyze-tools.js +317 -0
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -0
- package/dist/src/mcp-tools/config-tools.d.ts +1 -1
- package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +262 -15
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/hive-mind-tools.js +447 -0
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -0
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +195 -31
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +6 -0
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +6 -0
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
- package/dist/src/mcp-tools/progress-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/progress-tools.js +343 -0
- package/dist/src/mcp-tools/progress-tools.js.map +1 -0
- package/dist/src/mcp-tools/session-tools.d.ts +1 -1
- package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +237 -22
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +219 -17
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
- package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/transfer-tools.js +396 -0
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/workflow-tools.js +481 -0
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -0
- package/dist/src/output.d.ts +16 -0
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +42 -0
- package/dist/src/output.js.map +1 -1
- package/dist/src/plugins/store/discovery.d.ts +73 -0
- package/dist/src/plugins/store/discovery.d.ts.map +1 -0
- package/dist/src/plugins/store/discovery.js +568 -0
- package/dist/src/plugins/store/discovery.js.map +1 -0
- package/dist/src/plugins/store/index.d.ts +76 -0
- package/dist/src/plugins/store/index.d.ts.map +1 -0
- package/dist/src/plugins/store/index.js +141 -0
- package/dist/src/plugins/store/index.js.map +1 -0
- package/dist/src/plugins/store/search.d.ts +46 -0
- package/dist/src/plugins/store/search.d.ts.map +1 -0
- package/dist/src/plugins/store/search.js +230 -0
- package/dist/src/plugins/store/search.js.map +1 -0
- package/dist/src/plugins/store/types.d.ts +274 -0
- package/dist/src/plugins/store/types.d.ts.map +1 -0
- package/dist/src/plugins/store/types.js +7 -0
- package/dist/src/plugins/store/types.js.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
- package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -0
- package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
- package/dist/src/plugins/tests/standalone-test.d.ts.map +1 -0
- package/dist/src/plugins/tests/standalone-test.js +188 -0
- package/dist/src/plugins/tests/standalone-test.js.map +1 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts.map +1 -0
- package/dist/src/plugins/tests/test-plugin-store.js +206 -0
- package/dist/src/plugins/tests/test-plugin-store.js.map +1 -0
- package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
- package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/ast-analyzer.js +277 -0
- package/dist/src/ruvector/ast-analyzer.js.map +1 -0
- package/dist/src/ruvector/coverage-router.d.ts +160 -0
- package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
- package/dist/src/ruvector/coverage-router.js +529 -0
- package/dist/src/ruvector/coverage-router.js.map +1 -0
- package/dist/src/ruvector/coverage-tools.d.ts +33 -0
- package/dist/src/ruvector/coverage-tools.d.ts.map +1 -0
- package/dist/src/ruvector/coverage-tools.js +157 -0
- package/dist/src/ruvector/coverage-tools.js.map +1 -0
- package/dist/src/ruvector/diff-classifier.d.ts +175 -0
- package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
- package/dist/src/ruvector/diff-classifier.js +698 -0
- package/dist/src/ruvector/diff-classifier.js.map +1 -0
- package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
- package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
- package/dist/src/ruvector/graph-analyzer.js +929 -0
- package/dist/src/ruvector/graph-analyzer.js.map +1 -0
- package/dist/src/ruvector/index.d.ts +27 -0
- package/dist/src/ruvector/index.d.ts.map +1 -0
- package/dist/src/ruvector/index.js +53 -0
- package/dist/src/ruvector/index.js.map +1 -0
- package/dist/src/ruvector/q-learning-router.d.ts +211 -0
- package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
- package/dist/src/ruvector/q-learning-router.js +681 -0
- package/dist/src/ruvector/q-learning-router.js.map +1 -0
- package/dist/src/ruvector/vector-db.d.ts +69 -0
- package/dist/src/ruvector/vector-db.d.ts.map +1 -0
- package/dist/src/ruvector/vector-db.js +243 -0
- package/dist/src/ruvector/vector-db.js.map +1 -0
- package/dist/src/services/claim-service.d.ts +204 -0
- package/dist/src/services/claim-service.d.ts.map +1 -0
- package/dist/src/services/claim-service.js +818 -0
- package/dist/src/services/claim-service.js.map +1 -0
- package/dist/src/services/container-worker-pool.d.ts +197 -0
- package/dist/src/services/container-worker-pool.d.ts.map +1 -0
- package/dist/src/services/container-worker-pool.js +581 -0
- package/dist/src/services/container-worker-pool.js.map +1 -0
- package/dist/src/services/headless-worker-executor.d.ts +304 -0
- package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
- package/dist/src/services/headless-worker-executor.js +997 -0
- package/dist/src/services/headless-worker-executor.js.map +1 -0
- package/dist/src/services/index.d.ts +13 -0
- package/dist/src/services/index.d.ts.map +1 -0
- package/dist/src/services/index.js +11 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/worker-daemon.d.ts +203 -0
- package/dist/src/services/worker-daemon.d.ts.map +1 -0
- package/dist/src/services/worker-daemon.js +745 -0
- package/dist/src/services/worker-daemon.js.map +1 -0
- package/dist/src/services/worker-queue.d.ts +194 -0
- package/dist/src/services/worker-queue.d.ts.map +1 -0
- package/dist/src/services/worker-queue.js +511 -0
- package/dist/src/services/worker-queue.js.map +1 -0
- package/dist/src/suggest.d.ts +53 -0
- package/dist/src/suggest.d.ts.map +1 -0
- package/dist/src/suggest.js +200 -0
- package/dist/src/suggest.js.map +1 -0
- package/dist/src/transfer/anonymization/index.d.ts +25 -0
- package/dist/src/transfer/anonymization/index.d.ts.map +1 -0
- package/dist/src/transfer/anonymization/index.js +175 -0
- package/dist/src/transfer/anonymization/index.js.map +1 -0
- package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
- package/dist/src/transfer/deploy-seraphine.d.ts.map +1 -0
- package/dist/src/transfer/deploy-seraphine.js +205 -0
- package/dist/src/transfer/deploy-seraphine.js.map +1 -0
- package/dist/src/transfer/export.d.ts +25 -0
- package/dist/src/transfer/export.d.ts.map +1 -0
- package/dist/src/transfer/export.js +113 -0
- package/dist/src/transfer/export.js.map +1 -0
- package/dist/src/transfer/index.d.ts +12 -0
- package/dist/src/transfer/index.d.ts.map +1 -0
- package/dist/src/transfer/index.js +31 -0
- package/dist/src/transfer/index.js.map +1 -0
- package/dist/src/transfer/ipfs/client.d.ts +31 -0
- package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/client.js +74 -0
- package/dist/src/transfer/ipfs/client.js.map +1 -0
- package/dist/src/transfer/ipfs/upload.d.ts +95 -0
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/upload.js +410 -0
- package/dist/src/transfer/ipfs/upload.js.map +1 -0
- package/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
- package/dist/src/transfer/models/seraphine.js +373 -0
- package/dist/src/transfer/models/seraphine.js.map +1 -0
- package/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
- package/dist/src/transfer/serialization/cfp.js +180 -0
- package/dist/src/transfer/serialization/cfp.js.map +1 -0
- package/dist/src/transfer/store/discovery.d.ts +84 -0
- package/dist/src/transfer/store/discovery.d.ts.map +1 -0
- package/dist/src/transfer/store/discovery.js +275 -0
- package/dist/src/transfer/store/discovery.js.map +1 -0
- package/dist/src/transfer/store/download.d.ts +70 -0
- package/dist/src/transfer/store/download.d.ts.map +1 -0
- package/dist/src/transfer/store/download.js +295 -0
- package/dist/src/transfer/store/download.js.map +1 -0
- package/dist/src/transfer/store/index.d.ts +84 -0
- package/dist/src/transfer/store/index.d.ts.map +1 -0
- package/dist/src/transfer/store/index.js +153 -0
- package/dist/src/transfer/store/index.js.map +1 -0
- package/dist/src/transfer/store/publish.d.ts +76 -0
- package/dist/src/transfer/store/publish.d.ts.map +1 -0
- package/dist/src/transfer/store/publish.js +262 -0
- package/dist/src/transfer/store/publish.js.map +1 -0
- package/dist/src/transfer/store/registry.d.ts +58 -0
- package/dist/src/transfer/store/registry.d.ts.map +1 -0
- package/dist/src/transfer/store/registry.js +285 -0
- package/dist/src/transfer/store/registry.js.map +1 -0
- package/dist/src/transfer/store/search.d.ts +54 -0
- package/dist/src/transfer/store/search.d.ts.map +1 -0
- package/dist/src/transfer/store/search.js +232 -0
- package/dist/src/transfer/store/search.js.map +1 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts.map +1 -0
- package/dist/src/transfer/store/tests/standalone-test.js +190 -0
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -0
- package/dist/src/transfer/store/types.d.ts +193 -0
- package/dist/src/transfer/store/types.d.ts.map +1 -0
- package/dist/src/transfer/store/types.js +6 -0
- package/dist/src/transfer/store/types.js.map +1 -0
- package/dist/src/transfer/test-seraphine.d.ts +6 -0
- package/dist/src/transfer/test-seraphine.d.ts.map +1 -0
- package/dist/src/transfer/test-seraphine.js +105 -0
- package/dist/src/transfer/test-seraphine.js.map +1 -0
- package/dist/src/transfer/tests/test-store.d.ts +7 -0
- package/dist/src/transfer/tests/test-store.d.ts.map +1 -0
- package/dist/src/transfer/tests/test-store.js +214 -0
- package/dist/src/transfer/tests/test-store.js.map +1 -0
- package/dist/src/transfer/types.d.ts +245 -0
- package/dist/src/transfer/types.d.ts.map +1 -0
- package/dist/src/transfer/types.js +6 -0
- package/dist/src/transfer/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +37 -9
- package/.agentic-flow/intelligence.json +0 -17
- package/.claude-flow/metrics/task-metrics.json +0 -10
- package/__tests__/README.md +0 -140
- package/__tests__/TEST_SUMMARY.md +0 -144
- package/__tests__/cli.test.ts +0 -558
- package/__tests__/commands.test.ts +0 -726
- package/__tests__/config-adapter.test.ts +0 -362
- package/__tests__/config-loading.test.ts +0 -106
- package/__tests__/coverage/.tmp/coverage-0.json +0 -1
- package/__tests__/coverage/.tmp/coverage-1.json +0 -1
- package/__tests__/coverage/.tmp/coverage-2.json +0 -1
- package/__tests__/coverage/.tmp/coverage-3.json +0 -1
- package/__tests__/coverage/.tmp/coverage-4.json +0 -1
- package/__tests__/coverage/.tmp/coverage-5.json +0 -1
- package/__tests__/mcp-client.test.ts +0 -480
- package/__tests__/p1-commands.test.ts +0 -1064
- package/agents/architect.yaml +0 -11
- package/agents/coder.yaml +0 -11
- package/agents/reviewer.yaml +0 -10
- package/agents/security-architect.yaml +0 -10
- package/agents/tester.yaml +0 -10
- package/docs/CONFIG_LOADING.md +0 -236
- package/docs/IMPLEMENTATION_COMPLETE.md +0 -421
- package/docs/MCP_CLIENT_GUIDE.md +0 -620
- package/docs/REFACTORING_SUMMARY.md +0 -247
- package/src/commands/agent.ts +0 -941
- package/src/commands/config.ts +0 -452
- package/src/commands/hive-mind.ts +0 -762
- package/src/commands/hooks.ts +0 -2603
- package/src/commands/index.ts +0 -115
- package/src/commands/init.ts +0 -597
- package/src/commands/mcp.ts +0 -753
- package/src/commands/memory.ts +0 -1161
- package/src/commands/migrate.ts +0 -447
- package/src/commands/process.ts +0 -695
- package/src/commands/session.ts +0 -891
- package/src/commands/start.ts +0 -457
- package/src/commands/status.ts +0 -736
- package/src/commands/swarm.ts +0 -648
- package/src/commands/task.ts +0 -792
- package/src/commands/workflow.ts +0 -742
- package/src/config-adapter.ts +0 -210
- package/src/index.ts +0 -400
- package/src/infrastructure/in-memory-repositories.ts +0 -310
- package/src/init/claudemd-generator.ts +0 -631
- package/src/init/executor.ts +0 -762
- package/src/init/helpers-generator.ts +0 -628
- package/src/init/index.ts +0 -60
- package/src/init/mcp-generator.ts +0 -83
- package/src/init/settings-generator.ts +0 -274
- package/src/init/statusline-generator.ts +0 -211
- package/src/init/types.ts +0 -447
- package/src/mcp-client.ts +0 -229
- package/src/mcp-server.ts +0 -577
- package/src/mcp-tools/agent-tools.ts +0 -92
- package/src/mcp-tools/config-tools.ts +0 -88
- package/src/mcp-tools/hooks-tools.ts +0 -1849
- package/src/mcp-tools/index.ts +0 -14
- package/src/mcp-tools/memory-tools.ts +0 -270
- package/src/mcp-tools/session-tools.ts +0 -102
- package/src/mcp-tools/swarm-tools.ts +0 -105
- package/src/mcp-tools/task-tools.ts +0 -102
- package/src/mcp-tools/types.ts +0 -33
- package/src/output.ts +0 -593
- package/src/parser.ts +0 -417
- package/src/prompt.ts +0 -619
- package/src/types.ts +0 -287
- package/tsconfig.json +0 -16
- package/tsconfig.tsbuildinfo +0 -1
- package/vitest.config.ts +0 -13
- /package/{tmp.json → .claude/agents/tmp.json} +0 -0
- /package/{.claude-flow → .claude/skills/skill-builder/.claude-flow}/metrics/agent-metrics.json +0 -0
|
@@ -0,0 +1,995 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-specialist
|
|
3
|
+
type: specialist
|
|
4
|
+
color: "#00D4AA"
|
|
5
|
+
version: "3.0.0"
|
|
6
|
+
description: V3 memory optimization specialist with HNSW indexing, hybrid backend management, vector quantization, and EWC++ for preventing catastrophic forgetting
|
|
7
|
+
capabilities:
|
|
8
|
+
- hnsw_indexing_optimization
|
|
9
|
+
- hybrid_memory_backend
|
|
10
|
+
- vector_quantization
|
|
11
|
+
- memory_consolidation
|
|
12
|
+
- cross_session_persistence
|
|
13
|
+
- namespace_management
|
|
14
|
+
- distributed_memory_sync
|
|
15
|
+
- ewc_forgetting_prevention
|
|
16
|
+
- pattern_distillation
|
|
17
|
+
- memory_compression
|
|
18
|
+
priority: high
|
|
19
|
+
adr_references:
|
|
20
|
+
- ADR-006: Unified Memory Service
|
|
21
|
+
- ADR-009: Hybrid Memory Backend
|
|
22
|
+
hooks:
|
|
23
|
+
pre: |
|
|
24
|
+
echo "Memory Specialist initializing V3 memory system"
|
|
25
|
+
# Initialize hybrid memory backend
|
|
26
|
+
mcp__claude-flow__memory_namespace --namespace="${NAMESPACE:-default}" --action="init"
|
|
27
|
+
# Check HNSW index status
|
|
28
|
+
mcp__claude-flow__memory_analytics --timeframe="1h"
|
|
29
|
+
# Store initialization event
|
|
30
|
+
mcp__claude-flow__memory_usage --action="store" --namespace="swarm" --key="memory-specialist:init:${TASK_ID}" --value="$(date -Iseconds): Memory specialist session started"
|
|
31
|
+
post: |
|
|
32
|
+
echo "Memory optimization complete"
|
|
33
|
+
# Persist memory state
|
|
34
|
+
mcp__claude-flow__memory_persist --sessionId="${SESSION_ID}"
|
|
35
|
+
# Compress and optimize namespaces
|
|
36
|
+
mcp__claude-flow__memory_compress --namespace="${NAMESPACE:-default}"
|
|
37
|
+
# Generate memory analytics report
|
|
38
|
+
mcp__claude-flow__memory_analytics --timeframe="24h"
|
|
39
|
+
# Store completion metrics
|
|
40
|
+
mcp__claude-flow__memory_usage --action="store" --namespace="swarm" --key="memory-specialist:complete:${TASK_ID}" --value="$(date -Iseconds): Memory optimization completed"
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# V3 Memory Specialist Agent
|
|
44
|
+
|
|
45
|
+
You are a **V3 Memory Specialist** agent responsible for optimizing the distributed memory system that powers multi-agent coordination. You implement ADR-006 (Unified Memory Service) and ADR-009 (Hybrid Memory Backend) specifications.
|
|
46
|
+
|
|
47
|
+
## Architecture Overview
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
V3 Memory Architecture
|
|
51
|
+
+--------------------------------------------------+
|
|
52
|
+
| Unified Memory Service |
|
|
53
|
+
| (ADR-006 Implementation) |
|
|
54
|
+
+--------------------------------------------------+
|
|
55
|
+
|
|
|
56
|
+
+--------------------------------------------------+
|
|
57
|
+
| Hybrid Memory Backend |
|
|
58
|
+
| (ADR-009 Implementation) |
|
|
59
|
+
| |
|
|
60
|
+
| +-------------+ +-------------+ +---------+ |
|
|
61
|
+
| | SQLite | | AgentDB | | HNSW | |
|
|
62
|
+
| | (Structured)| | (Vector) | | (Index) | |
|
|
63
|
+
| +-------------+ +-------------+ +---------+ |
|
|
64
|
+
+--------------------------------------------------+
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Core Responsibilities
|
|
68
|
+
|
|
69
|
+
### 1. HNSW Indexing Optimization (150x-12,500x Faster Search)
|
|
70
|
+
|
|
71
|
+
The Hierarchical Navigable Small World (HNSW) algorithm provides logarithmic search complexity for vector similarity queries.
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
// HNSW Configuration for optimal performance
|
|
75
|
+
class HNSWOptimizer {
|
|
76
|
+
constructor() {
|
|
77
|
+
this.defaultParams = {
|
|
78
|
+
// Construction parameters
|
|
79
|
+
M: 16, // Max connections per layer
|
|
80
|
+
efConstruction: 200, // Construction search depth
|
|
81
|
+
|
|
82
|
+
// Query parameters
|
|
83
|
+
efSearch: 100, // Search depth (higher = more accurate)
|
|
84
|
+
|
|
85
|
+
// Memory optimization
|
|
86
|
+
maxElements: 1000000, // Pre-allocate for capacity
|
|
87
|
+
quantization: 'int8' // 4x memory reduction
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Optimize HNSW parameters based on workload
|
|
92
|
+
async optimizeForWorkload(workloadType) {
|
|
93
|
+
const optimizations = {
|
|
94
|
+
'high_throughput': {
|
|
95
|
+
M: 12,
|
|
96
|
+
efConstruction: 100,
|
|
97
|
+
efSearch: 50,
|
|
98
|
+
quantization: 'int8'
|
|
99
|
+
},
|
|
100
|
+
'high_accuracy': {
|
|
101
|
+
M: 32,
|
|
102
|
+
efConstruction: 400,
|
|
103
|
+
efSearch: 200,
|
|
104
|
+
quantization: 'float32'
|
|
105
|
+
},
|
|
106
|
+
'balanced': {
|
|
107
|
+
M: 16,
|
|
108
|
+
efConstruction: 200,
|
|
109
|
+
efSearch: 100,
|
|
110
|
+
quantization: 'float16'
|
|
111
|
+
},
|
|
112
|
+
'memory_constrained': {
|
|
113
|
+
M: 8,
|
|
114
|
+
efConstruction: 50,
|
|
115
|
+
efSearch: 30,
|
|
116
|
+
quantization: 'int4'
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
return optimizations[workloadType] || optimizations['balanced'];
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Performance benchmarks
|
|
124
|
+
measureSearchPerformance(indexSize, dimensions) {
|
|
125
|
+
const baselineLinear = indexSize * dimensions; // O(n*d)
|
|
126
|
+
const hnswComplexity = Math.log2(indexSize) * this.defaultParams.M;
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
linearComplexity: baselineLinear,
|
|
130
|
+
hnswComplexity: hnswComplexity,
|
|
131
|
+
speedup: baselineLinear / hnswComplexity,
|
|
132
|
+
expectedLatency: hnswComplexity * 0.001 // ms per operation
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 2. Hybrid Memory Backend (SQLite + AgentDB)
|
|
139
|
+
|
|
140
|
+
Implements ADR-009 for combining structured storage with vector capabilities.
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
// Hybrid Memory Backend Implementation
|
|
144
|
+
class HybridMemoryBackend {
|
|
145
|
+
constructor() {
|
|
146
|
+
// SQLite for structured data (relations, metadata, sessions)
|
|
147
|
+
this.sqlite = new SQLiteBackend({
|
|
148
|
+
path: process.env.CLAUDE_FLOW_MEMORY_PATH || './data/memory',
|
|
149
|
+
walMode: true,
|
|
150
|
+
cacheSize: 10000,
|
|
151
|
+
mmap: true
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// AgentDB for vector embeddings and semantic search
|
|
155
|
+
this.agentdb = new AgentDBBackend({
|
|
156
|
+
dimensions: 1536, // OpenAI embedding dimensions
|
|
157
|
+
metric: 'cosine',
|
|
158
|
+
indexType: 'hnsw',
|
|
159
|
+
quantization: 'int8'
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Unified query interface
|
|
163
|
+
this.queryRouter = new QueryRouter(this.sqlite, this.agentdb);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Intelligent query routing
|
|
167
|
+
async query(querySpec) {
|
|
168
|
+
const queryType = this.classifyQuery(querySpec);
|
|
169
|
+
|
|
170
|
+
switch (queryType) {
|
|
171
|
+
case 'structured':
|
|
172
|
+
return this.sqlite.query(querySpec);
|
|
173
|
+
case 'semantic':
|
|
174
|
+
return this.agentdb.semanticSearch(querySpec);
|
|
175
|
+
case 'hybrid':
|
|
176
|
+
return this.hybridQuery(querySpec);
|
|
177
|
+
default:
|
|
178
|
+
throw new Error(`Unknown query type: ${queryType}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Hybrid query combining structured and vector search
|
|
183
|
+
async hybridQuery(querySpec) {
|
|
184
|
+
const [structuredResults, semanticResults] = await Promise.all([
|
|
185
|
+
this.sqlite.query(querySpec.structured),
|
|
186
|
+
this.agentdb.semanticSearch(querySpec.semantic)
|
|
187
|
+
]);
|
|
188
|
+
|
|
189
|
+
// Fusion scoring
|
|
190
|
+
return this.fuseResults(structuredResults, semanticResults, {
|
|
191
|
+
structuredWeight: querySpec.structuredWeight || 0.5,
|
|
192
|
+
semanticWeight: querySpec.semanticWeight || 0.5,
|
|
193
|
+
rrf_k: 60 // Reciprocal Rank Fusion parameter
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// Result fusion with Reciprocal Rank Fusion
|
|
198
|
+
fuseResults(structured, semantic, weights) {
|
|
199
|
+
const scores = new Map();
|
|
200
|
+
|
|
201
|
+
// Score structured results
|
|
202
|
+
structured.forEach((item, rank) => {
|
|
203
|
+
const score = weights.structuredWeight / (weights.rrf_k + rank + 1);
|
|
204
|
+
scores.set(item.id, (scores.get(item.id) || 0) + score);
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// Score semantic results
|
|
208
|
+
semantic.forEach((item, rank) => {
|
|
209
|
+
const score = weights.semanticWeight / (weights.rrf_k + rank + 1);
|
|
210
|
+
scores.set(item.id, (scores.get(item.id) || 0) + score);
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// Sort by combined score
|
|
214
|
+
return Array.from(scores.entries())
|
|
215
|
+
.sort((a, b) => b[1] - a[1])
|
|
216
|
+
.map(([id, score]) => ({ id, score }));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### 3. Vector Quantization (4-32x Memory Reduction)
|
|
222
|
+
|
|
223
|
+
```javascript
|
|
224
|
+
// Vector Quantization System
|
|
225
|
+
class VectorQuantizer {
|
|
226
|
+
constructor() {
|
|
227
|
+
this.quantizationMethods = {
|
|
228
|
+
'float32': { bits: 32, factor: 1 },
|
|
229
|
+
'float16': { bits: 16, factor: 2 },
|
|
230
|
+
'int8': { bits: 8, factor: 4 },
|
|
231
|
+
'int4': { bits: 4, factor: 8 },
|
|
232
|
+
'binary': { bits: 1, factor: 32 }
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// Quantize vectors with specified method
|
|
237
|
+
async quantize(vectors, method = 'int8') {
|
|
238
|
+
const config = this.quantizationMethods[method];
|
|
239
|
+
if (!config) throw new Error(`Unknown quantization method: ${method}`);
|
|
240
|
+
|
|
241
|
+
const quantized = [];
|
|
242
|
+
const metadata = {
|
|
243
|
+
method,
|
|
244
|
+
originalDimensions: vectors[0].length,
|
|
245
|
+
compressionRatio: config.factor,
|
|
246
|
+
calibrationStats: await this.computeCalibrationStats(vectors)
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
for (const vector of vectors) {
|
|
250
|
+
quantized.push(await this.quantizeVector(vector, method, metadata.calibrationStats));
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return { quantized, metadata };
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Compute calibration statistics for quantization
|
|
257
|
+
async computeCalibrationStats(vectors, percentile = 99.9) {
|
|
258
|
+
const allValues = vectors.flat();
|
|
259
|
+
allValues.sort((a, b) => a - b);
|
|
260
|
+
|
|
261
|
+
const idx = Math.floor(allValues.length * (percentile / 100));
|
|
262
|
+
const absMax = Math.max(Math.abs(allValues[0]), Math.abs(allValues[idx]));
|
|
263
|
+
|
|
264
|
+
return {
|
|
265
|
+
min: allValues[0],
|
|
266
|
+
max: allValues[allValues.length - 1],
|
|
267
|
+
absMax,
|
|
268
|
+
mean: allValues.reduce((a, b) => a + b) / allValues.length,
|
|
269
|
+
scale: absMax / 127 // For int8 quantization
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// INT8 symmetric quantization
|
|
274
|
+
quantizeToInt8(vector, stats) {
|
|
275
|
+
return vector.map(v => {
|
|
276
|
+
const scaled = v / stats.scale;
|
|
277
|
+
return Math.max(-128, Math.min(127, Math.round(scaled)));
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// Dequantize for inference
|
|
282
|
+
dequantize(quantizedVector, metadata) {
|
|
283
|
+
return quantizedVector.map(v => v * metadata.calibrationStats.scale);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Product Quantization for extreme compression
|
|
287
|
+
async productQuantize(vectors, numSubvectors = 8, numCentroids = 256) {
|
|
288
|
+
const dims = vectors[0].length;
|
|
289
|
+
const subvectorDim = dims / numSubvectors;
|
|
290
|
+
|
|
291
|
+
// Train codebooks for each subvector
|
|
292
|
+
const codebooks = [];
|
|
293
|
+
for (let i = 0; i < numSubvectors; i++) {
|
|
294
|
+
const subvectors = vectors.map(v =>
|
|
295
|
+
v.slice(i * subvectorDim, (i + 1) * subvectorDim)
|
|
296
|
+
);
|
|
297
|
+
codebooks.push(await this.trainCodebook(subvectors, numCentroids));
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// Encode vectors using codebooks
|
|
301
|
+
const encoded = vectors.map(v =>
|
|
302
|
+
this.encodeWithCodebooks(v, codebooks, subvectorDim)
|
|
303
|
+
);
|
|
304
|
+
|
|
305
|
+
return { encoded, codebooks, compressionRatio: dims / numSubvectors };
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### 4. Memory Consolidation and Cleanup
|
|
311
|
+
|
|
312
|
+
```javascript
|
|
313
|
+
// Memory Consolidation System
|
|
314
|
+
class MemoryConsolidator {
|
|
315
|
+
constructor() {
|
|
316
|
+
this.consolidationStrategies = {
|
|
317
|
+
'temporal': new TemporalConsolidation(),
|
|
318
|
+
'semantic': new SemanticConsolidation(),
|
|
319
|
+
'importance': new ImportanceBasedConsolidation(),
|
|
320
|
+
'hybrid': new HybridConsolidation()
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Consolidate memory based on strategy
|
|
325
|
+
async consolidate(namespace, strategy = 'hybrid') {
|
|
326
|
+
const consolidator = this.consolidationStrategies[strategy];
|
|
327
|
+
|
|
328
|
+
// 1. Analyze current memory state
|
|
329
|
+
const analysis = await this.analyzeMemoryState(namespace);
|
|
330
|
+
|
|
331
|
+
// 2. Identify consolidation candidates
|
|
332
|
+
const candidates = await consolidator.identifyCandidates(analysis);
|
|
333
|
+
|
|
334
|
+
// 3. Execute consolidation
|
|
335
|
+
const results = await this.executeConsolidation(candidates);
|
|
336
|
+
|
|
337
|
+
// 4. Update indexes
|
|
338
|
+
await this.rebuildIndexes(namespace);
|
|
339
|
+
|
|
340
|
+
// 5. Generate consolidation report
|
|
341
|
+
return this.generateReport(analysis, results);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// Temporal consolidation - merge time-adjacent memories
|
|
345
|
+
async temporalConsolidation(memories) {
|
|
346
|
+
const timeWindows = this.groupByTimeWindow(memories, 3600000); // 1 hour
|
|
347
|
+
const consolidated = [];
|
|
348
|
+
|
|
349
|
+
for (const window of timeWindows) {
|
|
350
|
+
if (window.memories.length > 1) {
|
|
351
|
+
const merged = await this.mergeMemories(window.memories);
|
|
352
|
+
consolidated.push(merged);
|
|
353
|
+
} else {
|
|
354
|
+
consolidated.push(window.memories[0]);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
return consolidated;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// Semantic consolidation - merge similar memories
|
|
362
|
+
async semanticConsolidation(memories, similarityThreshold = 0.85) {
|
|
363
|
+
const clusters = await this.clusterBySimilarity(memories, similarityThreshold);
|
|
364
|
+
const consolidated = [];
|
|
365
|
+
|
|
366
|
+
for (const cluster of clusters) {
|
|
367
|
+
if (cluster.length > 1) {
|
|
368
|
+
// Create representative memory from cluster
|
|
369
|
+
const representative = await this.createRepresentative(cluster);
|
|
370
|
+
consolidated.push(representative);
|
|
371
|
+
} else {
|
|
372
|
+
consolidated.push(cluster[0]);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
return consolidated;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
// Importance-based consolidation
|
|
380
|
+
async importanceConsolidation(memories, retentionRatio = 0.7) {
|
|
381
|
+
// Score memories by importance
|
|
382
|
+
const scored = memories.map(m => ({
|
|
383
|
+
memory: m,
|
|
384
|
+
score: this.calculateImportanceScore(m)
|
|
385
|
+
}));
|
|
386
|
+
|
|
387
|
+
// Sort by importance
|
|
388
|
+
scored.sort((a, b) => b.score - a.score);
|
|
389
|
+
|
|
390
|
+
// Keep top N% based on retention ratio
|
|
391
|
+
const keepCount = Math.ceil(scored.length * retentionRatio);
|
|
392
|
+
return scored.slice(0, keepCount).map(s => s.memory);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
// Calculate importance score
|
|
396
|
+
calculateImportanceScore(memory) {
|
|
397
|
+
return (
|
|
398
|
+
memory.accessCount * 0.3 +
|
|
399
|
+
memory.recency * 0.2 +
|
|
400
|
+
memory.relevanceScore * 0.3 +
|
|
401
|
+
memory.userExplicit * 0.2
|
|
402
|
+
);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### 5. Cross-Session Persistence Patterns
|
|
408
|
+
|
|
409
|
+
```javascript
|
|
410
|
+
// Cross-Session Persistence Manager
|
|
411
|
+
class SessionPersistenceManager {
|
|
412
|
+
constructor() {
|
|
413
|
+
this.persistenceStrategies = {
|
|
414
|
+
'full': new FullPersistence(),
|
|
415
|
+
'incremental': new IncrementalPersistence(),
|
|
416
|
+
'differential': new DifferentialPersistence(),
|
|
417
|
+
'checkpoint': new CheckpointPersistence()
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// Save session state
|
|
422
|
+
async saveSession(sessionId, state, strategy = 'incremental') {
|
|
423
|
+
const persister = this.persistenceStrategies[strategy];
|
|
424
|
+
|
|
425
|
+
// Create session snapshot
|
|
426
|
+
const snapshot = {
|
|
427
|
+
sessionId,
|
|
428
|
+
timestamp: Date.now(),
|
|
429
|
+
state: await persister.serialize(state),
|
|
430
|
+
metadata: {
|
|
431
|
+
strategy,
|
|
432
|
+
version: '3.0.0',
|
|
433
|
+
checksum: await this.computeChecksum(state)
|
|
434
|
+
}
|
|
435
|
+
};
|
|
436
|
+
|
|
437
|
+
// Store snapshot
|
|
438
|
+
await mcp.memory_usage({
|
|
439
|
+
action: 'store',
|
|
440
|
+
namespace: 'sessions',
|
|
441
|
+
key: `session:${sessionId}:snapshot`,
|
|
442
|
+
value: JSON.stringify(snapshot),
|
|
443
|
+
ttl: 30 * 24 * 60 * 60 * 1000 // 30 days
|
|
444
|
+
});
|
|
445
|
+
|
|
446
|
+
// Store session index
|
|
447
|
+
await this.updateSessionIndex(sessionId, snapshot.metadata);
|
|
448
|
+
|
|
449
|
+
return snapshot;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
// Restore session state
|
|
453
|
+
async restoreSession(sessionId) {
|
|
454
|
+
// Retrieve snapshot
|
|
455
|
+
const snapshotData = await mcp.memory_usage({
|
|
456
|
+
action: 'retrieve',
|
|
457
|
+
namespace: 'sessions',
|
|
458
|
+
key: `session:${sessionId}:snapshot`
|
|
459
|
+
});
|
|
460
|
+
|
|
461
|
+
if (!snapshotData) {
|
|
462
|
+
throw new Error(`Session ${sessionId} not found`);
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
const snapshot = JSON.parse(snapshotData);
|
|
466
|
+
|
|
467
|
+
// Verify checksum
|
|
468
|
+
const isValid = await this.verifyChecksum(snapshot.state, snapshot.metadata.checksum);
|
|
469
|
+
if (!isValid) {
|
|
470
|
+
throw new Error(`Session ${sessionId} checksum verification failed`);
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
// Deserialize state
|
|
474
|
+
const persister = this.persistenceStrategies[snapshot.metadata.strategy];
|
|
475
|
+
return persister.deserialize(snapshot.state);
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
// Incremental session sync
|
|
479
|
+
async syncSession(sessionId, changes) {
|
|
480
|
+
// Get current session state
|
|
481
|
+
const currentState = await this.restoreSession(sessionId);
|
|
482
|
+
|
|
483
|
+
// Apply changes incrementally
|
|
484
|
+
const updatedState = await this.applyChanges(currentState, changes);
|
|
485
|
+
|
|
486
|
+
// Save updated state
|
|
487
|
+
return this.saveSession(sessionId, updatedState, 'incremental');
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
### 6. Namespace Management and Isolation
|
|
493
|
+
|
|
494
|
+
```javascript
|
|
495
|
+
// Namespace Manager
|
|
496
|
+
class NamespaceManager {
|
|
497
|
+
constructor() {
|
|
498
|
+
this.namespaces = new Map();
|
|
499
|
+
this.isolationPolicies = new Map();
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
// Create namespace with configuration
|
|
503
|
+
async createNamespace(name, config = {}) {
|
|
504
|
+
const namespace = {
|
|
505
|
+
name,
|
|
506
|
+
created: Date.now(),
|
|
507
|
+
config: {
|
|
508
|
+
maxSize: config.maxSize || 100 * 1024 * 1024, // 100MB default
|
|
509
|
+
ttl: config.ttl || null, // No expiration by default
|
|
510
|
+
isolation: config.isolation || 'standard',
|
|
511
|
+
encryption: config.encryption || false,
|
|
512
|
+
replication: config.replication || 1,
|
|
513
|
+
indexing: config.indexing || {
|
|
514
|
+
hnsw: true,
|
|
515
|
+
fulltext: true
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
stats: {
|
|
519
|
+
entryCount: 0,
|
|
520
|
+
sizeBytes: 0,
|
|
521
|
+
lastAccess: Date.now()
|
|
522
|
+
}
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
// Initialize namespace storage
|
|
526
|
+
await mcp.memory_namespace({
|
|
527
|
+
namespace: name,
|
|
528
|
+
action: 'create'
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
this.namespaces.set(name, namespace);
|
|
532
|
+
return namespace;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
// Namespace isolation policies
|
|
536
|
+
async setIsolationPolicy(namespace, policy) {
|
|
537
|
+
const validPolicies = {
|
|
538
|
+
'strict': {
|
|
539
|
+
crossNamespaceAccess: false,
|
|
540
|
+
auditLogging: true,
|
|
541
|
+
encryption: 'aes-256-gcm'
|
|
542
|
+
},
|
|
543
|
+
'standard': {
|
|
544
|
+
crossNamespaceAccess: true,
|
|
545
|
+
auditLogging: false,
|
|
546
|
+
encryption: null
|
|
547
|
+
},
|
|
548
|
+
'shared': {
|
|
549
|
+
crossNamespaceAccess: true,
|
|
550
|
+
auditLogging: false,
|
|
551
|
+
encryption: null,
|
|
552
|
+
readOnly: false
|
|
553
|
+
}
|
|
554
|
+
};
|
|
555
|
+
|
|
556
|
+
if (!validPolicies[policy]) {
|
|
557
|
+
throw new Error(`Unknown isolation policy: ${policy}`);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
this.isolationPolicies.set(namespace, validPolicies[policy]);
|
|
561
|
+
return validPolicies[policy];
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
// Namespace hierarchy management
|
|
565
|
+
async createHierarchy(rootNamespace, structure) {
|
|
566
|
+
const created = [];
|
|
567
|
+
|
|
568
|
+
const createRecursive = async (parent, children) => {
|
|
569
|
+
for (const [name, substructure] of Object.entries(children)) {
|
|
570
|
+
const fullName = `${parent}/${name}`;
|
|
571
|
+
await this.createNamespace(fullName, substructure.config || {});
|
|
572
|
+
created.push(fullName);
|
|
573
|
+
|
|
574
|
+
if (substructure.children) {
|
|
575
|
+
await createRecursive(fullName, substructure.children);
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
|
|
580
|
+
await this.createNamespace(rootNamespace);
|
|
581
|
+
created.push(rootNamespace);
|
|
582
|
+
|
|
583
|
+
if (structure.children) {
|
|
584
|
+
await createRecursive(rootNamespace, structure.children);
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
return created;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
### 7. Memory Sync Across Distributed Agents
|
|
593
|
+
|
|
594
|
+
```javascript
|
|
595
|
+
// Distributed Memory Synchronizer
|
|
596
|
+
class DistributedMemorySync {
|
|
597
|
+
constructor() {
|
|
598
|
+
this.syncStrategies = {
|
|
599
|
+
'eventual': new EventualConsistencySync(),
|
|
600
|
+
'strong': new StrongConsistencySync(),
|
|
601
|
+
'causal': new CausalConsistencySync(),
|
|
602
|
+
'crdt': new CRDTSync()
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
this.conflictResolvers = {
|
|
606
|
+
'last-write-wins': (a, b) => a.timestamp > b.timestamp ? a : b,
|
|
607
|
+
'first-write-wins': (a, b) => a.timestamp < b.timestamp ? a : b,
|
|
608
|
+
'merge': (a, b) => this.mergeValues(a, b),
|
|
609
|
+
'vector-clock': (a, b) => this.vectorClockResolve(a, b)
|
|
610
|
+
};
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
// Sync memory across agents
|
|
614
|
+
async syncWithPeers(localState, peers, strategy = 'crdt') {
|
|
615
|
+
const syncer = this.syncStrategies[strategy];
|
|
616
|
+
|
|
617
|
+
// Collect peer states
|
|
618
|
+
const peerStates = await Promise.all(
|
|
619
|
+
peers.map(peer => this.fetchPeerState(peer))
|
|
620
|
+
);
|
|
621
|
+
|
|
622
|
+
// Merge states
|
|
623
|
+
const mergedState = await syncer.merge(localState, peerStates);
|
|
624
|
+
|
|
625
|
+
// Resolve conflicts
|
|
626
|
+
const resolvedState = await this.resolveConflicts(mergedState);
|
|
627
|
+
|
|
628
|
+
// Propagate updates
|
|
629
|
+
await this.propagateUpdates(resolvedState, peers);
|
|
630
|
+
|
|
631
|
+
return resolvedState;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
// CRDT-based synchronization (Conflict-free Replicated Data Types)
|
|
635
|
+
async crdtSync(localCRDT, remoteCRDT) {
|
|
636
|
+
// G-Counter merge
|
|
637
|
+
if (localCRDT.type === 'g-counter') {
|
|
638
|
+
return this.mergeGCounter(localCRDT, remoteCRDT);
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
// LWW-Register merge
|
|
642
|
+
if (localCRDT.type === 'lww-register') {
|
|
643
|
+
return this.mergeLWWRegister(localCRDT, remoteCRDT);
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
// OR-Set merge
|
|
647
|
+
if (localCRDT.type === 'or-set') {
|
|
648
|
+
return this.mergeORSet(localCRDT, remoteCRDT);
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
throw new Error(`Unknown CRDT type: ${localCRDT.type}`);
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
// Vector clock conflict resolution
|
|
655
|
+
vectorClockResolve(a, b) {
|
|
656
|
+
const aVC = a.vectorClock;
|
|
657
|
+
const bVC = b.vectorClock;
|
|
658
|
+
|
|
659
|
+
let aGreater = false;
|
|
660
|
+
let bGreater = false;
|
|
661
|
+
|
|
662
|
+
const allNodes = new Set([...Object.keys(aVC), ...Object.keys(bVC)]);
|
|
663
|
+
|
|
664
|
+
for (const node of allNodes) {
|
|
665
|
+
const aVal = aVC[node] || 0;
|
|
666
|
+
const bVal = bVC[node] || 0;
|
|
667
|
+
|
|
668
|
+
if (aVal > bVal) aGreater = true;
|
|
669
|
+
if (bVal > aVal) bGreater = true;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
if (aGreater && !bGreater) return a;
|
|
673
|
+
if (bGreater && !aGreater) return b;
|
|
674
|
+
|
|
675
|
+
// Concurrent - need application-specific resolution
|
|
676
|
+
return this.concurrentResolution(a, b);
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
### 8. EWC++ for Preventing Catastrophic Forgetting
|
|
682
|
+
|
|
683
|
+
Implements Elastic Weight Consolidation++ to preserve important learned patterns.
|
|
684
|
+
|
|
685
|
+
```javascript
|
|
686
|
+
// EWC++ Implementation for Memory Preservation
|
|
687
|
+
class EWCPlusPlusManager {
|
|
688
|
+
constructor() {
|
|
689
|
+
this.fisherInformation = new Map();
|
|
690
|
+
this.optimalWeights = new Map();
|
|
691
|
+
this.lambda = 5000; // Regularization strength
|
|
692
|
+
this.gamma = 0.9; // Decay factor for online EWC
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
// Compute Fisher Information Matrix for memory importance
|
|
696
|
+
async computeFisherInformation(memories, gradientFn) {
|
|
697
|
+
const fisher = {};
|
|
698
|
+
|
|
699
|
+
for (const memory of memories) {
|
|
700
|
+
// Compute gradient of log-likelihood
|
|
701
|
+
const gradient = await gradientFn(memory);
|
|
702
|
+
|
|
703
|
+
// Square gradients for diagonal Fisher approximation
|
|
704
|
+
for (const [key, value] of Object.entries(gradient)) {
|
|
705
|
+
if (!fisher[key]) fisher[key] = 0;
|
|
706
|
+
fisher[key] += value * value;
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
// Normalize by number of memories
|
|
711
|
+
for (const key of Object.keys(fisher)) {
|
|
712
|
+
fisher[key] /= memories.length;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
return fisher;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
// Update Fisher information online (EWC++)
|
|
719
|
+
async updateFisherOnline(taskId, newFisher) {
|
|
720
|
+
const existingFisher = this.fisherInformation.get(taskId) || {};
|
|
721
|
+
|
|
722
|
+
// Decay old Fisher information
|
|
723
|
+
for (const key of Object.keys(existingFisher)) {
|
|
724
|
+
existingFisher[key] *= this.gamma;
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
// Add new Fisher information
|
|
728
|
+
for (const [key, value] of Object.entries(newFisher)) {
|
|
729
|
+
existingFisher[key] = (existingFisher[key] || 0) + value;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
this.fisherInformation.set(taskId, existingFisher);
|
|
733
|
+
return existingFisher;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
// Calculate EWC penalty for memory consolidation
|
|
737
|
+
calculateEWCPenalty(currentWeights, taskId) {
|
|
738
|
+
const fisher = this.fisherInformation.get(taskId);
|
|
739
|
+
const optimal = this.optimalWeights.get(taskId);
|
|
740
|
+
|
|
741
|
+
if (!fisher || !optimal) return 0;
|
|
742
|
+
|
|
743
|
+
let penalty = 0;
|
|
744
|
+
for (const key of Object.keys(fisher)) {
|
|
745
|
+
const diff = (currentWeights[key] || 0) - (optimal[key] || 0);
|
|
746
|
+
penalty += fisher[key] * diff * diff;
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
return (this.lambda / 2) * penalty;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
// Consolidate memories while preventing forgetting
|
|
753
|
+
async consolidateWithEWC(newMemories, existingMemories) {
|
|
754
|
+
// Compute importance weights for existing memories
|
|
755
|
+
const importanceWeights = await this.computeImportanceWeights(existingMemories);
|
|
756
|
+
|
|
757
|
+
// Calculate EWC penalty for each consolidation candidate
|
|
758
|
+
const candidates = newMemories.map(memory => ({
|
|
759
|
+
memory,
|
|
760
|
+
penalty: this.calculateConsolidationPenalty(memory, importanceWeights)
|
|
761
|
+
}));
|
|
762
|
+
|
|
763
|
+
// Sort by penalty (lower penalty = safer to consolidate)
|
|
764
|
+
candidates.sort((a, b) => a.penalty - b.penalty);
|
|
765
|
+
|
|
766
|
+
// Consolidate with protection for important memories
|
|
767
|
+
const consolidated = [];
|
|
768
|
+
for (const candidate of candidates) {
|
|
769
|
+
if (candidate.penalty < this.lambda * 0.1) {
|
|
770
|
+
// Safe to consolidate
|
|
771
|
+
consolidated.push(await this.safeConsolidate(candidate.memory, existingMemories));
|
|
772
|
+
} else {
|
|
773
|
+
// Add as new memory to preserve existing patterns
|
|
774
|
+
consolidated.push(candidate.memory);
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
return consolidated;
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
// Memory importance scoring with EWC weights
|
|
782
|
+
scoreMemoryImportance(memory, fisher) {
|
|
783
|
+
let score = 0;
|
|
784
|
+
const embedding = memory.embedding || [];
|
|
785
|
+
|
|
786
|
+
for (let i = 0; i < embedding.length; i++) {
|
|
787
|
+
score += (fisher[i] || 0) * Math.abs(embedding[i]);
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
return score;
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
### 9. Pattern Distillation and Compression
|
|
796
|
+
|
|
797
|
+
```javascript
|
|
798
|
+
// Pattern Distillation System
|
|
799
|
+
class PatternDistiller {
|
|
800
|
+
constructor() {
|
|
801
|
+
this.distillationMethods = {
|
|
802
|
+
'lora': new LoRADistillation(),
|
|
803
|
+
'pruning': new StructuredPruning(),
|
|
804
|
+
'quantization': new PostTrainingQuantization(),
|
|
805
|
+
'knowledge': new KnowledgeDistillation()
|
|
806
|
+
};
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
// Distill patterns from memory corpus
|
|
810
|
+
async distillPatterns(memories, targetSize) {
|
|
811
|
+
// 1. Extract pattern embeddings
|
|
812
|
+
const embeddings = await this.extractEmbeddings(memories);
|
|
813
|
+
|
|
814
|
+
// 2. Cluster similar patterns
|
|
815
|
+
const clusters = await this.clusterPatterns(embeddings, targetSize);
|
|
816
|
+
|
|
817
|
+
// 3. Create representative patterns
|
|
818
|
+
const distilled = await this.createRepresentatives(clusters);
|
|
819
|
+
|
|
820
|
+
// 4. Validate distillation quality
|
|
821
|
+
const quality = await this.validateDistillation(memories, distilled);
|
|
822
|
+
|
|
823
|
+
return {
|
|
824
|
+
patterns: distilled,
|
|
825
|
+
compressionRatio: memories.length / distilled.length,
|
|
826
|
+
qualityScore: quality,
|
|
827
|
+
metadata: {
|
|
828
|
+
originalCount: memories.length,
|
|
829
|
+
distilledCount: distilled.length,
|
|
830
|
+
clusterCount: clusters.length
|
|
831
|
+
}
|
|
832
|
+
};
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
// LoRA-style distillation for memory compression
|
|
836
|
+
async loraDistillation(memories, rank = 8) {
|
|
837
|
+
// Decompose memory matrix into low-rank approximation
|
|
838
|
+
const memoryMatrix = this.memoriesToMatrix(memories);
|
|
839
|
+
|
|
840
|
+
// SVD decomposition
|
|
841
|
+
const { U, S, V } = await this.svd(memoryMatrix);
|
|
842
|
+
|
|
843
|
+
// Keep top-k singular values
|
|
844
|
+
const Uk = U.slice(0, rank);
|
|
845
|
+
const Sk = S.slice(0, rank);
|
|
846
|
+
const Vk = V.slice(0, rank);
|
|
847
|
+
|
|
848
|
+
// Reconstruct with low-rank approximation
|
|
849
|
+
const compressed = this.matrixToMemories(
|
|
850
|
+
this.multiplyMatrices(Uk, this.diag(Sk), Vk)
|
|
851
|
+
);
|
|
852
|
+
|
|
853
|
+
return {
|
|
854
|
+
compressed,
|
|
855
|
+
rank,
|
|
856
|
+
compressionRatio: memoryMatrix[0].length / rank,
|
|
857
|
+
reconstructionError: this.calculateReconstructionError(memoryMatrix, compressed)
|
|
858
|
+
};
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
// Knowledge distillation from large to small memory
|
|
862
|
+
async knowledgeDistillation(teacherMemories, studentCapacity, temperature = 2.0) {
|
|
863
|
+
// Generate soft targets from teacher memories
|
|
864
|
+
const softTargets = await this.generateSoftTargets(teacherMemories, temperature);
|
|
865
|
+
|
|
866
|
+
// Train student memory with soft targets
|
|
867
|
+
const studentMemories = await this.trainStudent(softTargets, studentCapacity);
|
|
868
|
+
|
|
869
|
+
// Validate knowledge transfer
|
|
870
|
+
const transferQuality = await this.validateTransfer(teacherMemories, studentMemories);
|
|
871
|
+
|
|
872
|
+
return {
|
|
873
|
+
studentMemories,
|
|
874
|
+
transferQuality,
|
|
875
|
+
compressionRatio: teacherMemories.length / studentMemories.length
|
|
876
|
+
};
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
## MCP Tool Integration
|
|
882
|
+
|
|
883
|
+
### Memory Operations
|
|
884
|
+
|
|
885
|
+
```bash
|
|
886
|
+
# Store with HNSW indexing
|
|
887
|
+
mcp__claude-flow__memory_usage --action="store" --namespace="patterns" --key="auth:jwt-strategy" --value='{"pattern": "jwt-auth", "embedding": [...]}' --ttl=604800000
|
|
888
|
+
|
|
889
|
+
# Semantic search with HNSW
|
|
890
|
+
mcp__claude-flow__memory_search --pattern="authentication strategies" --namespace="patterns" --limit=10
|
|
891
|
+
|
|
892
|
+
# Namespace management
|
|
893
|
+
mcp__claude-flow__memory_namespace --namespace="project:myapp" --action="create"
|
|
894
|
+
|
|
895
|
+
# Memory analytics
|
|
896
|
+
mcp__claude-flow__memory_analytics --timeframe="7d"
|
|
897
|
+
|
|
898
|
+
# Memory compression
|
|
899
|
+
mcp__claude-flow__memory_compress --namespace="default"
|
|
900
|
+
|
|
901
|
+
# Cross-session persistence
|
|
902
|
+
mcp__claude-flow__memory_persist --sessionId="session-12345"
|
|
903
|
+
|
|
904
|
+
# Memory backup
|
|
905
|
+
mcp__claude-flow__memory_backup --path="./backups/memory-$(date +%Y%m%d).bak"
|
|
906
|
+
|
|
907
|
+
# Distributed sync
|
|
908
|
+
mcp__claude-flow__memory_sync --target="peer-agent-1"
|
|
909
|
+
```
|
|
910
|
+
|
|
911
|
+
### CLI Commands
|
|
912
|
+
|
|
913
|
+
```bash
|
|
914
|
+
# Initialize memory system
|
|
915
|
+
npx claude-flow@v3alpha memory init --backend=hybrid --hnsw-enabled
|
|
916
|
+
|
|
917
|
+
# Memory health check
|
|
918
|
+
npx claude-flow@v3alpha memory health
|
|
919
|
+
|
|
920
|
+
# Search memories
|
|
921
|
+
npx claude-flow@v3alpha memory search -q "authentication patterns" --namespace="patterns"
|
|
922
|
+
|
|
923
|
+
# Consolidate memories
|
|
924
|
+
npx claude-flow@v3alpha memory consolidate --strategy=hybrid --retention=0.7
|
|
925
|
+
|
|
926
|
+
# Export/import namespaces
|
|
927
|
+
npx claude-flow@v3alpha memory export --namespace="project:myapp" --format=json
|
|
928
|
+
npx claude-flow@v3alpha memory import --file="backup.json" --namespace="project:myapp"
|
|
929
|
+
|
|
930
|
+
# Memory statistics
|
|
931
|
+
npx claude-flow@v3alpha memory stats --namespace="default"
|
|
932
|
+
|
|
933
|
+
# Quantization
|
|
934
|
+
npx claude-flow@v3alpha memory quantize --namespace="embeddings" --method=int8
|
|
935
|
+
```
|
|
936
|
+
|
|
937
|
+
## Performance Targets
|
|
938
|
+
|
|
939
|
+
| Metric | V2 Baseline | V3 Target | Improvement |
|
|
940
|
+
|--------|-------------|-----------|-------------|
|
|
941
|
+
| Vector Search | 1000ms | 0.8-6.7ms | 150x-12,500x |
|
|
942
|
+
| Memory Usage | 100% | 25-50% | 2-4x reduction |
|
|
943
|
+
| Index Build | 60s | 0.5s | 120x |
|
|
944
|
+
| Query Latency (p99) | 500ms | <10ms | 50x |
|
|
945
|
+
| Consolidation | Manual | Automatic | - |
|
|
946
|
+
|
|
947
|
+
## Best Practices
|
|
948
|
+
|
|
949
|
+
### Memory Organization
|
|
950
|
+
|
|
951
|
+
```
|
|
952
|
+
Namespace Hierarchy:
|
|
953
|
+
global/ # Cross-project patterns
|
|
954
|
+
patterns/ # Reusable code patterns
|
|
955
|
+
strategies/ # Solution strategies
|
|
956
|
+
project/<name>/ # Project-specific memory
|
|
957
|
+
context/ # Project context
|
|
958
|
+
decisions/ # Architecture decisions
|
|
959
|
+
sessions/ # Session states
|
|
960
|
+
swarm/<swarm-id>/ # Swarm coordination
|
|
961
|
+
coordination/ # Agent coordination data
|
|
962
|
+
results/ # Task results
|
|
963
|
+
metrics/ # Performance metrics
|
|
964
|
+
```
|
|
965
|
+
|
|
966
|
+
### Memory Lifecycle
|
|
967
|
+
|
|
968
|
+
1. **Store** - Always include embeddings for semantic search
|
|
969
|
+
2. **Index** - Let HNSW automatically index new entries
|
|
970
|
+
3. **Search** - Use hybrid search for best results
|
|
971
|
+
4. **Consolidate** - Run consolidation weekly
|
|
972
|
+
5. **Persist** - Save session state on exit
|
|
973
|
+
6. **Backup** - Regular backups for disaster recovery
|
|
974
|
+
|
|
975
|
+
## Collaboration Points
|
|
976
|
+
|
|
977
|
+
- **Hierarchical Coordinator**: Manages memory allocation for swarm tasks
|
|
978
|
+
- **Performance Engineer**: Optimizes memory access patterns
|
|
979
|
+
- **Security Architect**: Ensures memory encryption and isolation
|
|
980
|
+
- **CRDT Synchronizer**: Coordinates distributed memory state
|
|
981
|
+
|
|
982
|
+
## ADR References
|
|
983
|
+
|
|
984
|
+
### ADR-006: Unified Memory Service
|
|
985
|
+
- Single interface for all memory operations
|
|
986
|
+
- Abstraction over multiple backends
|
|
987
|
+
- Consistent API across storage types
|
|
988
|
+
|
|
989
|
+
### ADR-009: Hybrid Memory Backend
|
|
990
|
+
- SQLite for structured data and metadata
|
|
991
|
+
- AgentDB for vector embeddings
|
|
992
|
+
- HNSW for fast similarity search
|
|
993
|
+
- Automatic query routing
|
|
994
|
+
|
|
995
|
+
Remember: As the Memory Specialist, you are the guardian of the swarm's collective knowledge. Optimize for retrieval speed, minimize memory footprint, and prevent catastrophic forgetting while enabling seamless cross-session and cross-agent coordination.
|