odd-flow 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/MIGRATION_SUMMARY.md +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/system-design/arch-system-design.md +36 -0
- package/.claude/agents/base-template-generator.md +41 -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 +244 -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/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/documentation/api-docs/docs-api-openapi.md +63 -0
- package/.claude/agents/dual-mode/codex-coordinator.md +201 -0
- package/.claude/agents/dual-mode/codex-worker.md +183 -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/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/coordinator-swarm-init.md +83 -0
- package/.claude/agents/templates/github-pr-manager.md +155 -0
- package/.claude/agents/templates/implementer-sparc-coder.md +231 -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/database-specialist.md +9 -0
- package/.claude/agents/v3/project-coordinator.md +8 -0
- package/.claude/agents/v3/python-specialist.md +9 -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 +369 -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 +234 -0
- package/.claude/helpers/intelligence.cjs +207 -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/metrics-db.mjs +488 -0
- package/.claude/helpers/pattern-consolidator.sh +86 -0
- package/.claude/helpers/perf-worker.sh +160 -0
- package/.claude/helpers/quick-start.sh +19 -0
- package/.claude/helpers/router.cjs +62 -0
- package/.claude/helpers/security-scanner.sh +127 -0
- package/.claude/helpers/session.cjs +125 -0
- package/.claude/helpers/setup-mcp.sh +18 -0
- package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
- package/.claude/helpers/statusline.cjs +770 -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/settings copy.json +526 -0
- package/.claude/settings.json +305 -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/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 +1250 -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 +647 -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 +74 -0
- package/.claude-plugin/marketplace.json +96 -0
- package/.claude-plugin/plugin.json +71 -0
- package/.claude-plugin/scripts/install.sh +234 -0
- package/.claude-plugin/scripts/uninstall.sh +36 -0
- package/.claude-plugin/scripts/verify.sh +108 -0
- package/LICENSE +21 -0
- package/README.md +7541 -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 +84 -0
- package/v3/@claude-flow/cli/README.md +192 -0
- package/v3/@claude-flow/cli/bin/cli.js +156 -0
- package/v3/@claude-flow/cli/bin/mcp-server.js +189 -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 +279 -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 +17 -0
- package/v3/@claude-flow/cli/dist/src/commands/analyze.js +1821 -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 +406 -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 +459 -0
- package/v3/@claude-flow/cli/dist/src/commands/claims.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/claims.js +621 -0
- package/v3/@claude-flow/cli/dist/src/commands/cleanup.d.ts +11 -0
- package/v3/@claude-flow/cli/dist/src/commands/cleanup.js +216 -0
- package/v3/@claude-flow/cli/dist/src/commands/completions.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/completions.js +537 -0
- package/v3/@claude-flow/cli/dist/src/commands/config.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/config.js +356 -0
- package/v3/@claude-flow/cli/dist/src/commands/daemon.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/daemon.js +669 -0
- package/v3/@claude-flow/cli/dist/src/commands/deployment.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/deployment.js +669 -0
- package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +617 -0
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +1573 -0
- package/v3/@claude-flow/cli/dist/src/commands/guidance.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/guidance.js +560 -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 +1237 -0
- package/v3/@claude-flow/cli/dist/src/commands/hooks.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +4441 -0
- package/v3/@claude-flow/cli/dist/src/commands/index.d.ts +117 -0
- package/v3/@claude-flow/cli/dist/src/commands/index.js +384 -0
- package/v3/@claude-flow/cli/dist/src/commands/init.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/init.js +969 -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 +1299 -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 +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/neural.js +1451 -0
- package/v3/@claude-flow/cli/dist/src/commands/performance.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/performance.js +576 -0
- package/v3/@claude-flow/cli/dist/src/commands/plugins.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/commands/plugins.js +817 -0
- package/v3/@claude-flow/cli/dist/src/commands/process.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/process.js +641 -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 +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/providers.js +355 -0
- package/v3/@claude-flow/cli/dist/src/commands/route.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/commands/route.js +811 -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 +746 -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 +480 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +347 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +27 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.js +127 -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 +431 -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 +481 -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 +503 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +763 -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 +456 -0
- package/v3/@claude-flow/cli/dist/src/commands/security.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/security.js +614 -0
- package/v3/@claude-flow/cli/dist/src/commands/session.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/session.js +750 -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 +802 -0
- package/v3/@claude-flow/cli/dist/src/commands/task.d.ts +8 -0
- package/v3/@claude-flow/cli/dist/src/commands/task.js +671 -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/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/index.d.ts +74 -0
- package/v3/@claude-flow/cli/dist/src/index.js +469 -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 +25 -0
- package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +486 -0
- package/v3/@claude-flow/cli/dist/src/init/executor.d.ts +41 -0
- package/v3/@claude-flow/cli/dist/src/init/executor.js +1776 -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 +1181 -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 +101 -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 +392 -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 +833 -0
- package/v3/@claude-flow/cli/dist/src/init/types.d.ts +295 -0
- package/v3/@claude-flow/cli/dist/src/init/types.js +263 -0
- package/v3/@claude-flow/cli/dist/src/mcp-client.d.ts +92 -0
- package/v3/@claude-flow/cli/dist/src/mcp-client.js +227 -0
- package/v3/@claude-flow/cli/dist/src/mcp-server.d.ts +163 -0
- package/v3/@claude-flow/cli/dist/src/mcp-server.js +654 -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 +550 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +557 -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 +317 -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 +732 -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 +357 -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 +665 -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 +782 -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 +811 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.d.ts +44 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +3120 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/index.d.ts +22 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/index.js +21 -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 +512 -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 +461 -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 +534 -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/security-tools.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js +404 -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 +315 -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 +288 -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 +408 -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 +405 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/types.d.ts +31 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/types.js +7 -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 +572 -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 +338 -0
- package/v3/@claude-flow/cli/dist/src/memory/intelligence.js +1023 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +407 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +1499 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.d.ts +412 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +2222 -0
- package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.d.ts +227 -0
- package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.js +633 -0
- package/v3/@claude-flow/cli/dist/src/output.d.ts +133 -0
- package/v3/@claude-flow/cli/dist/src/output.js +514 -0
- package/v3/@claude-flow/cli/dist/src/parser.d.ts +51 -0
- package/v3/@claude-flow/cli/dist/src/parser.js +425 -0
- package/v3/@claude-flow/cli/dist/src/plugins/manager.d.ts +133 -0
- package/v3/@claude-flow/cli/dist/src/plugins/manager.js +400 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.d.ts +88 -0
- package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.js +1147 -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 +182 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.js +316 -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 +529 -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 +698 -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 +513 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.d.ts +193 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.js +641 -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/index.d.ts +40 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/index.js +76 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.d.ts +218 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.js +455 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/model-router.d.ts +220 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/model-router.js +488 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.d.ts +206 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.js +626 -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 +363 -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 +67 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.js +241 -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 +224 -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 +304 -0
- package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +1024 -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 +220 -0
- package/v3/@claude-flow/cli/dist/src/services/ruvector-training.js +686 -0
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +245 -0
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +960 -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 +51 -0
- package/v3/@claude-flow/cli/dist/src/suggest.js +198 -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 +411 -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 +198 -0
- package/v3/@claude-flow/cli/dist/src/types.js +38 -0
- package/v3/@claude-flow/cli/dist/src/update/checker.d.ts +34 -0
- package/v3/@claude-flow/cli/dist/src/update/checker.js +190 -0
- package/v3/@claude-flow/cli/dist/src/update/executor.d.ts +32 -0
- package/v3/@claude-flow/cli/dist/src/update/executor.js +181 -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/dist/src/utils/path-validation.d.ts +20 -0
- package/v3/@claude-flow/cli/dist/src/utils/path-validation.js +80 -0
- package/v3/@claude-flow/cli/package.json +75 -0
- package/v3/@claude-flow/shared/README.md +323 -0
- package/v3/@claude-flow/shared/package.json +42 -0
- package/v3/README.md +493 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Export Pipeline
|
|
3
|
+
* Export patterns with anonymization and optional IPFS upload
|
|
4
|
+
*/
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { serializeToJson, serializeToBuffer, getFileExtension } from './serialization/cfp.js';
|
|
8
|
+
import { anonymizeCFP, scanCFPForPII } from './anonymization/index.js';
|
|
9
|
+
import { uploadToIPFS } from './ipfs/upload.js';
|
|
10
|
+
/**
|
|
11
|
+
* Export patterns to file or IPFS
|
|
12
|
+
*/
|
|
13
|
+
export async function exportPatterns(cfp, options = {}) {
|
|
14
|
+
const { output, format = 'json', anonymize = 'standard', redactPii = true, stripPaths = false, toIpfs = false, pin = true, gateway = 'https://w3s.link', } = options;
|
|
15
|
+
// Step 1: Scan for PII
|
|
16
|
+
const piiScan = scanCFPForPII(cfp);
|
|
17
|
+
if (piiScan.found && redactPii) {
|
|
18
|
+
console.log(`Found ${piiScan.count} PII items, will be redacted`);
|
|
19
|
+
}
|
|
20
|
+
// Step 2: Apply anonymization
|
|
21
|
+
const { cfp: anonymizedCfp, transforms } = anonymizeCFP(cfp, anonymize);
|
|
22
|
+
console.log(`Applied ${transforms.length} anonymization transforms: ${transforms.join(', ')}`);
|
|
23
|
+
// Step 3: Serialize
|
|
24
|
+
const serialized = format === 'json'
|
|
25
|
+
? serializeToJson(anonymizedCfp)
|
|
26
|
+
: serializeToBuffer(anonymizedCfp, format);
|
|
27
|
+
const size = typeof serialized === 'string' ? Buffer.byteLength(serialized) : serialized.length;
|
|
28
|
+
// Step 4: Output
|
|
29
|
+
let outputPath;
|
|
30
|
+
let cid;
|
|
31
|
+
if (toIpfs) {
|
|
32
|
+
// Upload to IPFS
|
|
33
|
+
const ipfsResult = await uploadToIPFS(Buffer.isBuffer(serialized) ? serialized : Buffer.from(serialized), {
|
|
34
|
+
pin,
|
|
35
|
+
gateway,
|
|
36
|
+
name: anonymizedCfp.metadata.name || 'patterns',
|
|
37
|
+
});
|
|
38
|
+
cid = ipfsResult.cid;
|
|
39
|
+
anonymizedCfp.ipfs = {
|
|
40
|
+
cid: ipfsResult.cid,
|
|
41
|
+
pinnedAt: ipfsResult.pinnedAt ? [ipfsResult.pinnedAt] : [],
|
|
42
|
+
gateway: ipfsResult.gateway,
|
|
43
|
+
size: ipfsResult.size,
|
|
44
|
+
};
|
|
45
|
+
console.log(`Uploaded to IPFS: ${cid}`);
|
|
46
|
+
console.log(`Gateway URL: ${gateway}/ipfs/${cid}`);
|
|
47
|
+
}
|
|
48
|
+
if (output) {
|
|
49
|
+
// Write to file
|
|
50
|
+
const ext = getFileExtension(format);
|
|
51
|
+
outputPath = output.endsWith(ext) ? output : output + ext;
|
|
52
|
+
// Ensure directory exists
|
|
53
|
+
const dir = path.dirname(outputPath);
|
|
54
|
+
if (!fs.existsSync(dir)) {
|
|
55
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
56
|
+
}
|
|
57
|
+
// Write file
|
|
58
|
+
if (typeof serialized === 'string') {
|
|
59
|
+
fs.writeFileSync(outputPath, serialized, 'utf-8');
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
fs.writeFileSync(outputPath, serialized);
|
|
63
|
+
}
|
|
64
|
+
console.log(`Exported to: ${outputPath}`);
|
|
65
|
+
}
|
|
66
|
+
// Calculate pattern count
|
|
67
|
+
const patternCount = (cfp.patterns.routing?.length || 0) +
|
|
68
|
+
(cfp.patterns.complexity?.length || 0) +
|
|
69
|
+
(cfp.patterns.coverage?.length || 0) +
|
|
70
|
+
(cfp.patterns.trajectory?.length || 0) +
|
|
71
|
+
(cfp.patterns.custom?.length || 0);
|
|
72
|
+
return {
|
|
73
|
+
success: true,
|
|
74
|
+
outputPath,
|
|
75
|
+
cid,
|
|
76
|
+
gateway: cid ? gateway : undefined,
|
|
77
|
+
size,
|
|
78
|
+
patternCount,
|
|
79
|
+
anonymizationLevel: anonymize,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Export Seraphine genesis model
|
|
84
|
+
*/
|
|
85
|
+
export async function exportSeraphine(options = {}) {
|
|
86
|
+
// Dynamically import to avoid circular dependency
|
|
87
|
+
const { createSeraphineGenesis } = await import('./models/seraphine.js');
|
|
88
|
+
const genesis = createSeraphineGenesis();
|
|
89
|
+
return exportPatterns(genesis, options);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Quick export to file
|
|
93
|
+
*/
|
|
94
|
+
export async function quickExport(cfp, outputPath) {
|
|
95
|
+
return exportPatterns(cfp, {
|
|
96
|
+
output: outputPath,
|
|
97
|
+
format: 'json',
|
|
98
|
+
anonymize: 'standard',
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Quick export to IPFS
|
|
103
|
+
*/
|
|
104
|
+
export async function quickExportToIPFS(cfp, options = {}) {
|
|
105
|
+
return exportPatterns(cfp, {
|
|
106
|
+
toIpfs: true,
|
|
107
|
+
pin: options.pin ?? true,
|
|
108
|
+
gateway: options.gateway ?? 'https://w3s.link',
|
|
109
|
+
format: 'json',
|
|
110
|
+
anonymize: 'strict',
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transfer Module
|
|
3
|
+
* Pattern export, import, anonymization, and IPFS sharing
|
|
4
|
+
*/
|
|
5
|
+
export * from './types.js';
|
|
6
|
+
export { createCFP, serializeToJson, serializeToBuffer, deserializeCFP, validateCFP, getFileExtension, detectFormat, } from './serialization/cfp.js';
|
|
7
|
+
export { detectPII, redactPII, anonymizeCFP, scanCFPForPII, } from './anonymization/index.js';
|
|
8
|
+
export { exportPatterns, exportSeraphine, quickExport, quickExportToIPFS, } from './export.js';
|
|
9
|
+
export { uploadToIPFS, pinContent, unpinContent, checkContent, getGatewayURL, getIPNSURL, } from './ipfs/upload.js';
|
|
10
|
+
export { SERAPHINE_VERSION, SERAPHINE_METADATA, SERAPHINE_ROUTING_PATTERNS, SERAPHINE_COMPLEXITY_PATTERNS, SERAPHINE_COVERAGE_PATTERNS, SERAPHINE_TRAJECTORY_PATTERNS, SERAPHINE_CUSTOM_PATTERNS, createSeraphinePatterns, createSeraphineGenesis, getSeraphineInfo, } from './models/seraphine.js';
|
|
11
|
+
export { type PatternEntry, type PatternAuthor, type PatternCategory, type PatternRegistry, type SearchOptions, type SearchResult, type PublishOptions, type PublishResult, type DownloadOptions, type DownloadResult, type KnownRegistry, type StoreConfig, type DiscoveryResult, type IPNSResolution, type DownloadProgressCallback, type ContributionRequest, REGISTRY_VERSION, BOOTSTRAP_REGISTRIES, DEFAULT_STORE_CONFIG, createRegistry, getDefaultCategories, addPatternToRegistry, removePatternFromRegistry, serializeRegistry, deserializeRegistry, signRegistry, verifyRegistrySignature, mergeRegistries, generatePatternId, PatternDiscovery, createDiscoveryService, searchPatterns, getFeaturedPatterns, getTrendingPatterns, getNewestPatterns, getPatternById, getPatternByName, getPatternsByAuthor, getPatternsByCategory, getSimilarPatterns, getCategoryStats, getTagCloud, getSearchSuggestions, PatternDownloader, batchDownload, createDownloader, PatternPublisher, submitContribution, checkContributionStatus, createPublisher, quickPublish, PatternStore, createPatternStore, } from './store/index.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transfer Module
|
|
3
|
+
* Pattern export, import, anonymization, and IPFS sharing
|
|
4
|
+
*/
|
|
5
|
+
// Types
|
|
6
|
+
export * from './types.js';
|
|
7
|
+
// Serialization
|
|
8
|
+
export { createCFP, serializeToJson, serializeToBuffer, deserializeCFP, validateCFP, getFileExtension, detectFormat, } from './serialization/cfp.js';
|
|
9
|
+
// Anonymization
|
|
10
|
+
export { detectPII, redactPII, anonymizeCFP, scanCFPForPII, } from './anonymization/index.js';
|
|
11
|
+
// Export
|
|
12
|
+
export { exportPatterns, exportSeraphine, quickExport, quickExportToIPFS, } from './export.js';
|
|
13
|
+
// IPFS
|
|
14
|
+
export { uploadToIPFS, pinContent, unpinContent, checkContent, getGatewayURL, getIPNSURL, } from './ipfs/upload.js';
|
|
15
|
+
// Models
|
|
16
|
+
export { SERAPHINE_VERSION, SERAPHINE_METADATA, SERAPHINE_ROUTING_PATTERNS, SERAPHINE_COMPLEXITY_PATTERNS, SERAPHINE_COVERAGE_PATTERNS, SERAPHINE_TRAJECTORY_PATTERNS, SERAPHINE_CUSTOM_PATTERNS, createSeraphinePatterns, createSeraphineGenesis, getSeraphineInfo, } from './models/seraphine.js';
|
|
17
|
+
// Store - Decentralized Pattern Marketplace
|
|
18
|
+
export {
|
|
19
|
+
// Registry
|
|
20
|
+
REGISTRY_VERSION, BOOTSTRAP_REGISTRIES, DEFAULT_STORE_CONFIG, createRegistry, getDefaultCategories, addPatternToRegistry, removePatternFromRegistry, serializeRegistry, deserializeRegistry, signRegistry, verifyRegistrySignature, mergeRegistries, generatePatternId,
|
|
21
|
+
// Discovery
|
|
22
|
+
PatternDiscovery, createDiscoveryService,
|
|
23
|
+
// Search
|
|
24
|
+
searchPatterns, getFeaturedPatterns, getTrendingPatterns, getNewestPatterns, getPatternById, getPatternByName, getPatternsByAuthor, getPatternsByCategory, getSimilarPatterns, getCategoryStats, getTagCloud, getSearchSuggestions,
|
|
25
|
+
// Download
|
|
26
|
+
PatternDownloader, batchDownload, createDownloader,
|
|
27
|
+
// Publish
|
|
28
|
+
PatternPublisher, submitContribution, checkContributionStatus, createPublisher, quickPublish,
|
|
29
|
+
// High-level API
|
|
30
|
+
PatternStore, createPatternStore, } from './store/index.js';
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPFS Client Module
|
|
3
|
+
* Low-level IPFS operations for discovery and fetching
|
|
4
|
+
*
|
|
5
|
+
* Supports multiple gateways with automatic fallback:
|
|
6
|
+
* - Pinata (recommended for pinned content)
|
|
7
|
+
* - Cloudflare IPFS
|
|
8
|
+
* - Protocol Labs ipfs.io
|
|
9
|
+
* - dweb.link (LibP2P)
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Available IPFS gateways in priority order
|
|
13
|
+
*/
|
|
14
|
+
export declare const IPFS_GATEWAYS: string[];
|
|
15
|
+
/**
|
|
16
|
+
* IPNS resolvers
|
|
17
|
+
*/
|
|
18
|
+
export declare const IPNS_RESOLVERS: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Gateway configuration
|
|
21
|
+
*/
|
|
22
|
+
export interface GatewayConfig {
|
|
23
|
+
url: string;
|
|
24
|
+
timeout?: number;
|
|
25
|
+
headers?: Record<string, string>;
|
|
26
|
+
priority?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Fetch result with metadata
|
|
30
|
+
*/
|
|
31
|
+
export interface FetchResult<T> {
|
|
32
|
+
data: T;
|
|
33
|
+
gateway: string;
|
|
34
|
+
cid: string;
|
|
35
|
+
cached: boolean;
|
|
36
|
+
latencyMs: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolve IPNS name to CID with fallback across multiple gateways
|
|
40
|
+
*
|
|
41
|
+
* @param ipnsName - IPNS key or DNSLink domain
|
|
42
|
+
* @param preferredGateway - Optional preferred gateway to try first
|
|
43
|
+
* @returns CID string or null if resolution fails
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveIPNS(ipnsName: string, preferredGateway?: string): Promise<string | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Fetch content from IPFS by CID with fallback across multiple gateways
|
|
48
|
+
*
|
|
49
|
+
* @param cid - Content Identifier
|
|
50
|
+
* @param preferredGateway - Optional preferred gateway to try first
|
|
51
|
+
* @returns Parsed JSON content or null if fetch fails
|
|
52
|
+
*/
|
|
53
|
+
export declare function fetchFromIPFS<T>(cid: string, preferredGateway?: string): Promise<T | null>;
|
|
54
|
+
/**
|
|
55
|
+
* Fetch with full result metadata
|
|
56
|
+
*/
|
|
57
|
+
export declare function fetchFromIPFSWithMetadata<T>(cid: string, preferredGateway?: string): Promise<FetchResult<T> | null>;
|
|
58
|
+
/**
|
|
59
|
+
* Check if CID is pinned/available on a gateway
|
|
60
|
+
*/
|
|
61
|
+
export declare function isPinned(cid: string, gateway?: string): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Check availability across multiple gateways
|
|
64
|
+
*/
|
|
65
|
+
export declare function checkAvailability(cid: string): Promise<{
|
|
66
|
+
available: boolean;
|
|
67
|
+
gateways: Array<{
|
|
68
|
+
url: string;
|
|
69
|
+
available: boolean;
|
|
70
|
+
latencyMs: number;
|
|
71
|
+
}>;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Get IPFS gateway URL for a CID
|
|
75
|
+
*/
|
|
76
|
+
export declare function getGatewayUrl(cid: string, gateway?: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* Get multiple gateway URLs for redundancy
|
|
79
|
+
*/
|
|
80
|
+
export declare function getGatewayUrls(cid: string): string[];
|
|
81
|
+
/**
|
|
82
|
+
* Validate CID format (CIDv0 and CIDv1)
|
|
83
|
+
*/
|
|
84
|
+
export declare function isValidCID(cid: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Validate IPNS name format
|
|
87
|
+
*/
|
|
88
|
+
export declare function isValidIPNS(ipnsName: string): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Generate content hash for verification
|
|
91
|
+
*/
|
|
92
|
+
export declare function hashContent(content: Buffer | string): string;
|
|
93
|
+
/**
|
|
94
|
+
* Verify Ed25519 signature (async import to avoid bundling issues)
|
|
95
|
+
*/
|
|
96
|
+
export declare function verifyEd25519Signature(message: string, signature: string, publicKey: string): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Parse CID to extract metadata
|
|
99
|
+
*/
|
|
100
|
+
export declare function parseCID(cid: string): {
|
|
101
|
+
version: 0 | 1;
|
|
102
|
+
codec: string;
|
|
103
|
+
hash: string;
|
|
104
|
+
} | null;
|
|
105
|
+
/**
|
|
106
|
+
* Format bytes to human readable
|
|
107
|
+
*/
|
|
108
|
+
export declare function formatBytes(bytes: number): string;
|
|
109
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPFS Client Module
|
|
3
|
+
* Low-level IPFS operations for discovery and fetching
|
|
4
|
+
*
|
|
5
|
+
* Supports multiple gateways with automatic fallback:
|
|
6
|
+
* - Pinata (recommended for pinned content)
|
|
7
|
+
* - Cloudflare IPFS
|
|
8
|
+
* - Protocol Labs ipfs.io
|
|
9
|
+
* - dweb.link (LibP2P)
|
|
10
|
+
*/
|
|
11
|
+
import * as crypto from 'crypto';
|
|
12
|
+
/**
|
|
13
|
+
* Available IPFS gateways in priority order
|
|
14
|
+
*/
|
|
15
|
+
export const IPFS_GATEWAYS = [
|
|
16
|
+
'https://gateway.pinata.cloud',
|
|
17
|
+
'https://cloudflare-ipfs.com',
|
|
18
|
+
'https://ipfs.io',
|
|
19
|
+
'https://dweb.link',
|
|
20
|
+
'https://w3s.link', // web3.storage gateway
|
|
21
|
+
];
|
|
22
|
+
/**
|
|
23
|
+
* IPNS resolvers
|
|
24
|
+
*/
|
|
25
|
+
export const IPNS_RESOLVERS = [
|
|
26
|
+
'https://gateway.pinata.cloud',
|
|
27
|
+
'https://dweb.link',
|
|
28
|
+
'https://ipfs.io',
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Resolve IPNS name to CID with fallback across multiple gateways
|
|
32
|
+
*
|
|
33
|
+
* @param ipnsName - IPNS key or DNSLink domain
|
|
34
|
+
* @param preferredGateway - Optional preferred gateway to try first
|
|
35
|
+
* @returns CID string or null if resolution fails
|
|
36
|
+
*/
|
|
37
|
+
export async function resolveIPNS(ipnsName, preferredGateway) {
|
|
38
|
+
const resolvers = preferredGateway
|
|
39
|
+
? [preferredGateway, ...IPNS_RESOLVERS.filter(r => r !== preferredGateway)]
|
|
40
|
+
: IPNS_RESOLVERS;
|
|
41
|
+
console.log(`[IPFS] Resolving IPNS: ${ipnsName}`);
|
|
42
|
+
for (const gateway of resolvers) {
|
|
43
|
+
try {
|
|
44
|
+
const startTime = Date.now();
|
|
45
|
+
let cid = null;
|
|
46
|
+
// Method 1: DNSLink resolution for domain names
|
|
47
|
+
if (ipnsName.includes('.')) {
|
|
48
|
+
const response = await fetch(`${gateway}/api/v0/name/resolve?arg=/ipns/${ipnsName}`, {
|
|
49
|
+
signal: AbortSignal.timeout(10000),
|
|
50
|
+
headers: { 'Accept': 'application/json' },
|
|
51
|
+
});
|
|
52
|
+
if (response.ok) {
|
|
53
|
+
const data = await response.json();
|
|
54
|
+
cid = data.Path?.replace('/ipfs/', '') || null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Method 2: Direct IPNS key resolution via gateway redirect
|
|
58
|
+
if (!cid) {
|
|
59
|
+
const response = await fetch(`${gateway}/ipns/${ipnsName}`, {
|
|
60
|
+
method: 'HEAD',
|
|
61
|
+
signal: AbortSignal.timeout(10000),
|
|
62
|
+
redirect: 'follow',
|
|
63
|
+
});
|
|
64
|
+
if (response.ok) {
|
|
65
|
+
// Extract CID from the final URL after redirects
|
|
66
|
+
const finalUrl = response.url;
|
|
67
|
+
const cidMatch = finalUrl.match(/\/ipfs\/([a-zA-Z0-9]+)/);
|
|
68
|
+
if (cidMatch) {
|
|
69
|
+
cid = cidMatch[1];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (cid) {
|
|
74
|
+
const latency = Date.now() - startTime;
|
|
75
|
+
console.log(`[IPFS] Resolved ${ipnsName} -> ${cid} via ${gateway} (${latency}ms)`);
|
|
76
|
+
return cid;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
81
|
+
console.warn(`[IPFS] Gateway ${gateway} failed: ${errorMsg}`);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
console.warn(`[IPFS] IPNS resolution failed for ${ipnsName} on all gateways`);
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Fetch content from IPFS by CID with fallback across multiple gateways
|
|
90
|
+
*
|
|
91
|
+
* @param cid - Content Identifier
|
|
92
|
+
* @param preferredGateway - Optional preferred gateway to try first
|
|
93
|
+
* @returns Parsed JSON content or null if fetch fails
|
|
94
|
+
*/
|
|
95
|
+
export async function fetchFromIPFS(cid, preferredGateway) {
|
|
96
|
+
if (!isValidCID(cid))
|
|
97
|
+
return null;
|
|
98
|
+
const gateways = preferredGateway
|
|
99
|
+
? [preferredGateway, ...IPFS_GATEWAYS.filter(g => g !== preferredGateway)]
|
|
100
|
+
: IPFS_GATEWAYS;
|
|
101
|
+
console.log(`[IPFS] Fetching CID: ${cid}`);
|
|
102
|
+
for (const gateway of gateways) {
|
|
103
|
+
try {
|
|
104
|
+
const startTime = Date.now();
|
|
105
|
+
const url = `${gateway}/ipfs/${cid}`;
|
|
106
|
+
const response = await fetch(url, {
|
|
107
|
+
signal: AbortSignal.timeout(30000),
|
|
108
|
+
headers: {
|
|
109
|
+
'Accept': 'application/json',
|
|
110
|
+
'Cache-Control': 'max-age=3600',
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
if (response.ok) {
|
|
114
|
+
const data = await response.json();
|
|
115
|
+
const latency = Date.now() - startTime;
|
|
116
|
+
console.log(`[IPFS] Fetched ${cid} from ${gateway} (${latency}ms)`);
|
|
117
|
+
return data;
|
|
118
|
+
}
|
|
119
|
+
// Handle specific error codes
|
|
120
|
+
if (response.status === 504) {
|
|
121
|
+
console.warn(`[IPFS] Gateway timeout on ${gateway}, trying next...`);
|
|
122
|
+
}
|
|
123
|
+
else if (response.status === 429) {
|
|
124
|
+
console.warn(`[IPFS] Rate limited on ${gateway}, trying next...`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
129
|
+
console.warn(`[IPFS] Gateway ${gateway} failed: ${errorMsg}`);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
console.warn(`[IPFS] Fetch failed for ${cid} on all gateways`);
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Fetch with full result metadata
|
|
138
|
+
*/
|
|
139
|
+
export async function fetchFromIPFSWithMetadata(cid, preferredGateway) {
|
|
140
|
+
if (!isValidCID(cid))
|
|
141
|
+
return null;
|
|
142
|
+
const gateways = preferredGateway
|
|
143
|
+
? [preferredGateway, ...IPFS_GATEWAYS.filter(g => g !== preferredGateway)]
|
|
144
|
+
: IPFS_GATEWAYS;
|
|
145
|
+
for (const gateway of gateways) {
|
|
146
|
+
try {
|
|
147
|
+
const startTime = Date.now();
|
|
148
|
+
const url = `${gateway}/ipfs/${cid}`;
|
|
149
|
+
const response = await fetch(url, {
|
|
150
|
+
signal: AbortSignal.timeout(30000),
|
|
151
|
+
headers: {
|
|
152
|
+
'Accept': 'application/json',
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
if (response.ok) {
|
|
156
|
+
const data = await response.json();
|
|
157
|
+
const latencyMs = Date.now() - startTime;
|
|
158
|
+
const cached = response.headers.get('X-Cache')?.includes('HIT') ||
|
|
159
|
+
response.headers.get('CF-Cache-Status') === 'HIT';
|
|
160
|
+
return {
|
|
161
|
+
data,
|
|
162
|
+
gateway,
|
|
163
|
+
cid,
|
|
164
|
+
cached,
|
|
165
|
+
latencyMs,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Check if CID is pinned/available on a gateway
|
|
177
|
+
*/
|
|
178
|
+
export async function isPinned(cid, gateway = 'https://ipfs.io') {
|
|
179
|
+
if (!isValidCID(cid))
|
|
180
|
+
return false;
|
|
181
|
+
try {
|
|
182
|
+
const response = await fetch(`${gateway}/ipfs/${cid}`, {
|
|
183
|
+
method: 'HEAD',
|
|
184
|
+
signal: AbortSignal.timeout(5000),
|
|
185
|
+
});
|
|
186
|
+
return response.ok;
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Check availability across multiple gateways
|
|
194
|
+
*/
|
|
195
|
+
export async function checkAvailability(cid) {
|
|
196
|
+
if (!isValidCID(cid))
|
|
197
|
+
return { available: false, gateways: [] };
|
|
198
|
+
const results = await Promise.all(IPFS_GATEWAYS.map(async (gateway) => {
|
|
199
|
+
const startTime = Date.now();
|
|
200
|
+
try {
|
|
201
|
+
const response = await fetch(`${gateway}/ipfs/${cid}`, {
|
|
202
|
+
method: 'HEAD',
|
|
203
|
+
signal: AbortSignal.timeout(5000),
|
|
204
|
+
});
|
|
205
|
+
return {
|
|
206
|
+
url: gateway,
|
|
207
|
+
available: response.ok,
|
|
208
|
+
latencyMs: Date.now() - startTime,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return {
|
|
213
|
+
url: gateway,
|
|
214
|
+
available: false,
|
|
215
|
+
latencyMs: Date.now() - startTime,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}));
|
|
219
|
+
return {
|
|
220
|
+
available: results.some(r => r.available),
|
|
221
|
+
gateways: results,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Get IPFS gateway URL for a CID
|
|
226
|
+
*/
|
|
227
|
+
export function getGatewayUrl(cid, gateway = 'https://ipfs.io') {
|
|
228
|
+
return `${gateway}/ipfs/${cid}`;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get multiple gateway URLs for redundancy
|
|
232
|
+
*/
|
|
233
|
+
export function getGatewayUrls(cid) {
|
|
234
|
+
return IPFS_GATEWAYS.map(gateway => `${gateway}/ipfs/${cid}`);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Validate CID format (CIDv0 and CIDv1)
|
|
238
|
+
*/
|
|
239
|
+
export function isValidCID(cid) {
|
|
240
|
+
// CIDv0 starts with 'Qm' and is 46 characters (base58btc)
|
|
241
|
+
// CIDv1 starts with 'b' (base32) or 'z' (base58btc) or 'f' (base16)
|
|
242
|
+
return /^(Qm[1-9A-HJ-NP-Za-km-z]{44}|b[a-z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|f[0-9a-f]{50,})$/i.test(cid);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Validate IPNS name format
|
|
246
|
+
*/
|
|
247
|
+
export function isValidIPNS(ipnsName) {
|
|
248
|
+
// IPNS key format (k51...) or DNSLink domain
|
|
249
|
+
return /^(k51[a-z0-9]{59,}|[a-z0-9.-]+\.[a-z]{2,})$/i.test(ipnsName);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Generate content hash for verification
|
|
253
|
+
*/
|
|
254
|
+
export function hashContent(content) {
|
|
255
|
+
const buffer = typeof content === 'string' ? Buffer.from(content) : content;
|
|
256
|
+
return crypto.createHash('sha256').update(buffer).digest('hex');
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Verify Ed25519 signature (async import to avoid bundling issues)
|
|
260
|
+
*/
|
|
261
|
+
export async function verifyEd25519Signature(message, signature, publicKey) {
|
|
262
|
+
try {
|
|
263
|
+
// Dynamic import to avoid bundling @noble/ed25519 if not used
|
|
264
|
+
const ed = await import('@noble/ed25519');
|
|
265
|
+
// Handle prefixed public key (e.g., "ed25519:abc123...")
|
|
266
|
+
const pubKeyHex = publicKey.replace(/^ed25519:/, '');
|
|
267
|
+
const isValid = await ed.verifyAsync(Buffer.from(signature, 'hex'), new TextEncoder().encode(message), Buffer.from(pubKeyHex, 'hex'));
|
|
268
|
+
return isValid;
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
console.warn('[IPFS] Signature verification failed:', error);
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Parse CID to extract metadata
|
|
277
|
+
*/
|
|
278
|
+
export function parseCID(cid) {
|
|
279
|
+
if (!isValidCID(cid)) {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
if (cid.startsWith('Qm')) {
|
|
283
|
+
return {
|
|
284
|
+
version: 0,
|
|
285
|
+
codec: 'dag-pb',
|
|
286
|
+
hash: cid,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
// CIDv1 - simplified parsing
|
|
290
|
+
return {
|
|
291
|
+
version: 1,
|
|
292
|
+
codec: 'dag-cbor', // Most common for JSON
|
|
293
|
+
hash: cid,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Format bytes to human readable
|
|
298
|
+
*/
|
|
299
|
+
export function formatBytes(bytes) {
|
|
300
|
+
if (bytes === 0)
|
|
301
|
+
return '0 B';
|
|
302
|
+
const k = 1024;
|
|
303
|
+
const sizes = ['B', 'KB', 'MB', 'GB'];
|
|
304
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
305
|
+
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPFS Upload Module
|
|
3
|
+
* Real upload support via web3.storage, Pinata, or local IPFS
|
|
4
|
+
*
|
|
5
|
+
* @module @claude-flow/cli/transfer/ipfs/upload
|
|
6
|
+
* @version 3.0.0
|
|
7
|
+
*/
|
|
8
|
+
import type { PinningService } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* IPFS upload options
|
|
11
|
+
*/
|
|
12
|
+
export interface IPFSUploadOptions {
|
|
13
|
+
pin?: boolean;
|
|
14
|
+
pinningService?: PinningService;
|
|
15
|
+
gateway?: string;
|
|
16
|
+
name?: string;
|
|
17
|
+
wrapWithDirectory?: boolean;
|
|
18
|
+
apiKey?: string;
|
|
19
|
+
apiSecret?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* IPFS upload result
|
|
23
|
+
*/
|
|
24
|
+
export interface IPFSUploadResult {
|
|
25
|
+
cid: string;
|
|
26
|
+
size: number;
|
|
27
|
+
gateway: string;
|
|
28
|
+
pinnedAt?: string;
|
|
29
|
+
url: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Upload content to IPFS
|
|
33
|
+
*
|
|
34
|
+
* Supports (in order of preference):
|
|
35
|
+
* - Local/Custom IPFS node (IPFS_API_URL) - FREE, your own node
|
|
36
|
+
* - web3.storage (WEB3_STORAGE_TOKEN) - Free 5GB tier
|
|
37
|
+
* - Pinata (PINATA_API_KEY + PINATA_API_SECRET) - Free 1GB tier
|
|
38
|
+
* - Demo mode (generates deterministic CIDs when no credentials)
|
|
39
|
+
*/
|
|
40
|
+
export declare function uploadToIPFS(content: Buffer, options?: IPFSUploadOptions): Promise<IPFSUploadResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Pin content by CID
|
|
43
|
+
*/
|
|
44
|
+
export declare function pinContent(cid: string, options?: {
|
|
45
|
+
service?: PinningService;
|
|
46
|
+
name?: string;
|
|
47
|
+
}): Promise<{
|
|
48
|
+
success: boolean;
|
|
49
|
+
pinnedAt: string;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Unpin content by CID
|
|
53
|
+
*/
|
|
54
|
+
export declare function unpinContent(cid: string, options?: {
|
|
55
|
+
service?: PinningService;
|
|
56
|
+
}): Promise<{
|
|
57
|
+
success: boolean;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Check if content exists on IPFS
|
|
61
|
+
*/
|
|
62
|
+
export declare function checkContent(cid: string, gateway?: string): Promise<{
|
|
63
|
+
exists: boolean;
|
|
64
|
+
size?: number;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Get gateway URL for CID
|
|
68
|
+
*/
|
|
69
|
+
export declare function getGatewayURL(cid: string, gateway?: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Get IPNS URL for name
|
|
72
|
+
*/
|
|
73
|
+
export declare function getIPNSURL(name: string, gateway?: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Check if local IPFS node is available
|
|
76
|
+
*/
|
|
77
|
+
declare function checkLocalIPFSNode(): Promise<boolean>;
|
|
78
|
+
/**
|
|
79
|
+
* Check if real IPFS credentials are available
|
|
80
|
+
*/
|
|
81
|
+
export declare function hasIPFSCredentials(): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Get IPFS service status
|
|
84
|
+
*/
|
|
85
|
+
export declare function getIPFSServiceStatus(): {
|
|
86
|
+
service: 'local' | 'web3storage' | 'pinata' | 'demo';
|
|
87
|
+
configured: boolean;
|
|
88
|
+
message: string;
|
|
89
|
+
apiUrl?: string;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Export the local IPFS check for external use
|
|
93
|
+
*/
|
|
94
|
+
export { checkLocalIPFSNode };
|
|
95
|
+
//# sourceMappingURL=upload.d.ts.map
|