@claude-flow/cli 3.42.3 → 3.42.5
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 +178 -178
- package/.claude/agents/analysis/code-analyzer.md +209 -209
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +178 -178
- package/.claude/agents/architecture/arch-system-design.md +156 -156
- package/.claude/agents/architecture/system-design/arch-system-design.md +154 -154
- package/.claude/agents/browser/browser-agent.yaml +182 -182
- package/.claude/agents/consensus/byzantine-coordinator.md +62 -62
- package/.claude/agents/consensus/crdt-synchronizer.md +996 -996
- package/.claude/agents/consensus/gossip-coordinator.md +62 -62
- package/.claude/agents/consensus/performance-benchmarker.md +850 -850
- package/.claude/agents/consensus/quorum-manager.md +822 -822
- package/.claude/agents/consensus/raft-manager.md +62 -62
- package/.claude/agents/consensus/security-manager.md +621 -621
- package/.claude/agents/core/planner.md +374 -374
- package/.claude/agents/custom/test-long-runner.md +44 -44
- package/.claude/agents/data/data-ml-model.md +444 -444
- package/.claude/agents/data/ml/data-ml-model.md +192 -192
- package/.claude/agents/development/backend/dev-backend-api.md +141 -141
- package/.claude/agents/development/dev-backend-api.md +344 -344
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +163 -163
- package/.claude/agents/devops/ops-cicd-github.md +164 -164
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +173 -173
- package/.claude/agents/documentation/docs-api-openapi.md +354 -354
- package/.claude/agents/flow-nexus/app-store.md +87 -87
- package/.claude/agents/flow-nexus/authentication.md +68 -68
- package/.claude/agents/flow-nexus/challenges.md +80 -80
- package/.claude/agents/flow-nexus/neural-network.md +87 -87
- package/.claude/agents/flow-nexus/payments.md +82 -82
- package/.claude/agents/flow-nexus/sandbox.md +75 -75
- package/.claude/agents/flow-nexus/swarm.md +75 -75
- package/.claude/agents/flow-nexus/user-tools.md +95 -95
- package/.claude/agents/flow-nexus/workflow.md +83 -83
- package/.claude/agents/github/code-review-swarm.md +377 -377
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +575 -575
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +437 -437
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +604 -604
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +902 -902
- package/.claude/agents/goal/agent.md +815 -815
- package/.claude/agents/optimization/benchmark-suite.md +664 -664
- package/.claude/agents/optimization/load-balancer.md +430 -430
- package/.claude/agents/optimization/performance-monitor.md +671 -671
- package/.claude/agents/optimization/resource-allocator.md +673 -673
- package/.claude/agents/optimization/topology-optimizer.md +807 -807
- package/.claude/agents/payments/agentic-payments.md +126 -126
- package/.claude/agents/sona/sona-learning-optimizer.md +74 -74
- package/.claude/agents/sparc/architecture.md +698 -698
- package/.claude/agents/sparc/pseudocode.md +519 -519
- package/.claude/agents/sparc/refinement.md +801 -801
- package/.claude/agents/sparc/specification.md +477 -477
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +224 -224
- package/.claude/agents/specialized/spec-mobile-react-native.md +226 -226
- package/.claude/agents/sublinear/consensus-coordinator.md +337 -337
- package/.claude/agents/sublinear/matrix-optimizer.md +184 -184
- package/.claude/agents/sublinear/pagerank-analyzer.md +298 -298
- package/.claude/agents/sublinear/performance-optimizer.md +367 -367
- package/.claude/agents/sublinear/trading-predictor.md +245 -245
- package/.claude/agents/swarm/adaptive-coordinator.md +1126 -1126
- package/.claude/agents/swarm/hierarchical-coordinator.md +709 -709
- package/.claude/agents/swarm/mesh-coordinator.md +962 -962
- package/.claude/agents/templates/automation-smart-agent.md +204 -204
- package/.claude/agents/templates/base-template-generator.md +289 -289
- package/.claude/agents/templates/coordinator-swarm-init.md +89 -89
- package/.claude/agents/templates/github-pr-manager.md +176 -176
- package/.claude/agents/templates/implementer-sparc-coder.md +258 -258
- package/.claude/agents/templates/memory-coordinator.md +186 -186
- package/.claude/agents/templates/orchestrator-task.md +138 -138
- package/.claude/agents/templates/performance-analyzer.md +198 -198
- package/.claude/agents/templates/sparc-coordinator.md +513 -513
- package/.claude/agents/testing/production-validator.md +394 -394
- package/.claude/agents/testing/tdd-london-swarm.md +243 -243
- package/.claude/agents/v3/aidefence-guardian.md +282 -282
- package/.claude/agents/v3/claims-authorizer.md +208 -208
- package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -993
- package/.claude/agents/v3/ddd-domain-expert.md +220 -220
- package/.claude/agents/v3/injection-analyst.md +236 -236
- package/.claude/agents/v3/performance-engineer.md +1233 -1233
- package/.claude/agents/v3/pii-detector.md +151 -151
- package/.claude/agents/v3/reasoningbank-learner.md +213 -213
- package/.claude/agents/v3/security-architect-aidefence.md +410 -410
- package/.claude/agents/v3/security-architect.md +867 -867
- package/.claude/agents/v3/swarm-memory-manager.md +157 -157
- package/.claude/agents/v3/v3-integration-architect.md +205 -205
- package/.claude/commands/agents/README.md +50 -50
- package/.claude/commands/agents/agent-capabilities.md +140 -140
- package/.claude/commands/agents/agent-coordination.md +28 -28
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/agents/agent-types.md +216 -216
- package/.claude/commands/agents/health.md +139 -139
- package/.claude/commands/agents/list.md +100 -100
- package/.claude/commands/agents/logs.md +130 -130
- package/.claude/commands/agents/metrics.md +122 -122
- package/.claude/commands/agents/pool.md +127 -127
- package/.claude/commands/agents/spawn.md +140 -140
- package/.claude/commands/agents/status.md +115 -115
- package/.claude/commands/agents/stop.md +102 -102
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +53 -53
- package/.claude/commands/analysis/README.md +9 -9
- package/.claude/commands/analysis/bottleneck-detect.md +162 -162
- package/.claude/commands/analysis/performance-bottlenecks.md +58 -58
- package/.claude/commands/analysis/performance-report.md +25 -25
- package/.claude/commands/analysis/token-efficiency.md +44 -44
- package/.claude/commands/analysis/token-usage.md +25 -25
- package/.claude/commands/automation/README.md +9 -9
- package/.claude/commands/automation/auto-agent.md +122 -122
- package/.claude/commands/automation/self-healing.md +105 -105
- package/.claude/commands/automation/session-memory.md +89 -89
- package/.claude/commands/automation/smart-agents.md +72 -72
- package/.claude/commands/automation/smart-spawn.md +25 -25
- package/.claude/commands/automation/workflow-select.md +25 -25
- package/.claude/commands/claude-flow-help.md +103 -103
- package/.claude/commands/claude-flow-memory.md +107 -107
- package/.claude/commands/claude-flow-swarm.md +205 -205
- package/.claude/commands/coordination/README.md +9 -9
- package/.claude/commands/coordination/agent-spawn.md +25 -25
- package/.claude/commands/coordination/init.md +44 -44
- package/.claude/commands/coordination/orchestrate.md +43 -43
- package/.claude/commands/coordination/spawn.md +45 -45
- package/.claude/commands/coordination/swarm-init.md +85 -85
- package/.claude/commands/coordination/task-orchestrate.md +25 -25
- package/.claude/commands/github/README.md +11 -11
- package/.claude/commands/github/code-review-swarm.md +513 -513
- package/.claude/commands/github/code-review.md +25 -25
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/issue-triage.md +25 -25
- package/.claude/commands/github/multi-repo-swarm.md +518 -518
- package/.claude/commands/github/pr-enhance.md +26 -26
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/project-board-sync.md +470 -470
- package/.claude/commands/github/release-manager.md +339 -339
- package/.claude/commands/github/release-swarm.md +543 -543
- package/.claude/commands/github/repo-analyze.md +25 -25
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/swarm-issue.md +484 -484
- package/.claude/commands/github/swarm-pr.md +287 -287
- package/.claude/commands/github/sync-coordinator.md +302 -302
- package/.claude/commands/github/workflow-automation.md +441 -441
- package/.claude/commands/hive-mind/README.md +17 -17
- package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-init.md +18 -18
- package/.claude/commands/hive-mind/hive-mind-memory.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-resume.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -21
- package/.claude/commands/hive-mind/hive-mind-status.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-stop.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -8
- package/.claude/commands/hive-mind/hive-mind.md +27 -27
- package/.claude/commands/hooks/README.md +11 -11
- package/.claude/commands/hooks/overview.md +57 -57
- package/.claude/commands/hooks/post-edit.md +117 -117
- package/.claude/commands/hooks/post-task.md +112 -112
- package/.claude/commands/hooks/pre-edit.md +113 -113
- package/.claude/commands/hooks/pre-task.md +111 -111
- package/.claude/commands/hooks/session-end.md +118 -118
- package/.claude/commands/hooks/setup.md +102 -102
- package/.claude/commands/memory/README.md +9 -9
- package/.claude/commands/memory/memory-persist.md +25 -25
- package/.claude/commands/memory/memory-search.md +25 -25
- package/.claude/commands/memory/memory-usage.md +25 -25
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/monitoring/README.md +9 -9
- package/.claude/commands/monitoring/agent-metrics.md +25 -25
- package/.claude/commands/monitoring/agents.md +44 -44
- package/.claude/commands/monitoring/real-time-view.md +25 -25
- package/.claude/commands/monitoring/status.md +46 -46
- package/.claude/commands/monitoring/swarm-monitor.md +25 -25
- package/.claude/commands/optimization/README.md +9 -9
- package/.claude/commands/optimization/auto-topology.md +61 -61
- package/.claude/commands/optimization/cache-manage.md +25 -25
- package/.claude/commands/optimization/parallel-execute.md +25 -25
- package/.claude/commands/optimization/parallel-execution.md +49 -49
- package/.claude/commands/optimization/topology-optimize.md +25 -25
- package/.claude/commands/pair/README.md +260 -260
- package/.claude/commands/pair/commands.md +545 -545
- package/.claude/commands/pair/config.md +509 -509
- package/.claude/commands/pair/examples.md +511 -511
- package/.claude/commands/pair/modes.md +347 -347
- package/.claude/commands/pair/session.md +406 -406
- package/.claude/commands/pair/start.md +208 -208
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/stream-chain/pipeline.md +120 -120
- package/.claude/commands/stream-chain/run.md +69 -69
- package/.claude/commands/swarm/README.md +15 -15
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/swarm-analysis.md +8 -8
- package/.claude/commands/swarm/swarm-background.md +8 -8
- package/.claude/commands/swarm/swarm-init.md +19 -19
- package/.claude/commands/swarm/swarm-modes.md +8 -8
- package/.claude/commands/swarm/swarm-monitor.md +8 -8
- package/.claude/commands/swarm/swarm-spawn.md +19 -19
- package/.claude/commands/swarm/swarm-status.md +8 -8
- package/.claude/commands/swarm/swarm-strategies.md +8 -8
- package/.claude/commands/swarm/swarm.md +87 -87
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/training/README.md +9 -9
- package/.claude/commands/training/model-update.md +25 -25
- package/.claude/commands/training/neural-patterns.md +107 -107
- package/.claude/commands/training/neural-train.md +75 -75
- package/.claude/commands/training/pattern-learn.md +25 -25
- package/.claude/commands/training/specialization.md +62 -62
- package/.claude/commands/truth/start.md +142 -142
- package/.claude/commands/verify/check.md +49 -49
- package/.claude/commands/verify/start.md +127 -127
- package/.claude/commands/workflows/README.md +9 -9
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/commands/workflows/workflow-create.md +25 -25
- package/.claude/commands/workflows/workflow-execute.md +25 -25
- package/.claude/commands/workflows/workflow-export.md +25 -25
- package/.claude/eval/human-relevance-frozen-v1.json +17 -17
- package/.claude/evolve-proof/generation-0.json +211 -211
- package/.claude/evolve-proof/real-generation-0.json +406 -406
- package/.claude/evolve-proof/real-generation-1.json +406 -406
- package/.claude/helpers/README.md +96 -96
- package/.claude/helpers/adr-compliance.sh +186 -186
- package/.claude/helpers/auto-commit.sh +178 -178
- package/.claude/helpers/auto-memory-hook.mjs +430 -430
- package/.claude/helpers/checkpoint-manager.sh +251 -251
- package/.claude/helpers/daemon-manager.sh +252 -252
- package/.claude/helpers/ddd-tracker.sh +144 -144
- package/.claude/helpers/github-safe.js +156 -156
- package/.claude/helpers/github-setup.sh +45 -45
- package/.claude/helpers/guidance-hook.sh +13 -13
- package/.claude/helpers/guidance-hooks.sh +102 -102
- package/.claude/helpers/health-monitor.sh +108 -108
- package/.claude/helpers/helpers.manifest.json +6 -6
- package/.claude/helpers/hook-handler.cjs +606 -606
- package/.claude/helpers/intelligence.cjs +1169 -1169
- package/.claude/helpers/learning-hooks.sh +329 -329
- package/.claude/helpers/learning-optimizer.sh +127 -127
- package/.claude/helpers/learning-service.mjs +1144 -1144
- package/.claude/helpers/memory.js +83 -83
- package/.claude/helpers/metrics-db.mjs +503 -503
- package/.claude/helpers/pattern-consolidator.sh +86 -86
- package/.claude/helpers/perf-worker.sh +160 -160
- package/.claude/helpers/post-commit +16 -16
- package/.claude/helpers/pre-commit +26 -26
- package/.claude/helpers/quick-start.sh +19 -19
- package/.claude/helpers/router.js +105 -105
- package/.claude/helpers/security-scanner.sh +127 -127
- package/.claude/helpers/session.js +157 -157
- package/.claude/helpers/setup-mcp.sh +18 -18
- package/.claude/helpers/standard-checkpoint-hooks.sh +189 -189
- package/.claude/helpers/statusline-hook.sh +21 -21
- package/.claude/helpers/statusline.cjs +1290 -1290
- package/.claude/helpers/statusline.js +340 -340
- package/.claude/helpers/swarm-comms.sh +353 -353
- package/.claude/helpers/swarm-hooks.sh +761 -761
- package/.claude/helpers/swarm-monitor.sh +210 -210
- package/.claude/helpers/sync-v3-metrics.sh +245 -245
- package/.claude/helpers/update-v3-progress.sh +165 -165
- package/.claude/helpers/v3-quick-status.sh +57 -57
- package/.claude/helpers/v3.sh +110 -110
- package/.claude/helpers/validate-v3-config.sh +215 -215
- package/.claude/helpers/worker-manager.sh +170 -170
- package/.claude/proven-config.json +41 -41
- package/.claude/proven-config.manifest.json +37 -37
- package/.claude/proven-config.signed.json +41 -41
- package/.claude/settings.json +182 -182
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -550
- package/.claude/skills/agentdb-learning/SKILL.md +545 -545
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -339
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -509
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -339
- package/.claude/skills/browser/SKILL.md +204 -204
- package/.claude/skills/dual-mode/README.md +71 -71
- package/.claude/skills/dual-mode/dual-collect.md +103 -103
- package/.claude/skills/dual-mode/dual-coordinate.md +85 -85
- package/.claude/skills/dual-mode/dual-spawn.md +81 -81
- package/.claude/skills/flow-nexus-neural/SKILL.md +727 -727
- package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -1154
- package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -604
- package/.claude/skills/github-code-review/SKILL.md +1125 -1125
- package/.claude/skills/github-multi-repo/SKILL.md +862 -862
- package/.claude/skills/github-project-management/SKILL.md +1262 -1262
- package/.claude/skills/github-release-management/SKILL.md +1064 -1064
- package/.claude/skills/github-workflow-automation/SKILL.md +1047 -1047
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/pair-programming/SKILL.md +1202 -1202
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -446
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -201
- package/.claude/skills/skill-builder/SKILL.md +910 -910
- package/.claude/skills/sparc-methodology/SKILL.md +1106 -1106
- package/.claude/skills/stream-chain/SKILL.md +560 -560
- package/.claude/skills/swarm-advanced/SKILL.md +970 -970
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -179
- package/.claude/skills/v3-cli-modernization/SKILL.md +871 -871
- package/.claude/skills/v3-core-implementation/SKILL.md +796 -796
- package/.claude/skills/v3-ddd-architecture/SKILL.md +441 -441
- package/.claude/skills/v3-integration-deep/SKILL.md +240 -240
- package/.claude/skills/v3-mcp-optimization/SKILL.md +776 -776
- package/.claude/skills/v3-memory-unification/SKILL.md +173 -173
- package/.claude/skills/v3-performance-optimization/SKILL.md +389 -389
- package/.claude/skills/v3-security-overhaul/SKILL.md +81 -81
- package/.claude/skills/v3-swarm-coordination/SKILL.md +339 -339
- package/.claude/skills/verification-quality/SKILL.md +691 -691
- package/README.md +422 -422
- package/bin/cli.js +338 -338
- package/bin/mcp-server.js +224 -224
- package/bin/preinstall.cjs +2 -2
- package/catalog-manifest.json +2 -2
- package/dist/src/benchmarks/gaia-critic.js +24 -24
- package/dist/src/business-pods/bbs-budget-tracker.js +53 -53
- package/dist/src/commands/completions.js +409 -409
- package/dist/src/commands/daemon.js +44 -44
- package/dist/src/commands/doctor.js +4 -4
- package/dist/src/commands/embeddings.js +26 -26
- package/dist/src/commands/hive-mind.js +97 -97
- package/dist/src/commands/hooks.js +9 -9
- package/dist/src/commands/init.js +75 -75
- package/dist/src/commands/ruvector/backup.js +23 -23
- package/dist/src/commands/ruvector/benchmark.js +31 -31
- package/dist/src/commands/ruvector/import.js +14 -14
- package/dist/src/commands/ruvector/init.js +115 -115
- package/dist/src/commands/ruvector/migrate.js +99 -99
- package/dist/src/commands/ruvector/optimize.js +51 -51
- package/dist/src/commands/ruvector/setup.js +624 -624
- package/dist/src/commands/ruvector/status.js +38 -38
- package/dist/src/config/proven-config.js +2 -2
- package/dist/src/init/claudemd-generator.js +273 -273
- package/dist/src/init/executor.js +453 -453
- package/dist/src/init/helper-signing.js +2 -2
- package/dist/src/init/helpers-generator.js +917 -917
- package/dist/src/init/statusline-generator.js +24 -24
- package/dist/src/mcp-tools/agentdb-tools.js +15 -15
- package/dist/src/mcp-tools/browser-intent-tools.js +19 -19
- package/dist/src/mcp-tools/memory-tools.js +6 -4
- package/dist/src/mcp-tools/seraphina-tools.js +4 -4
- package/dist/src/memory/graph-edge-writer.js +22 -22
- package/dist/src/memory/memory-bridge.js +161 -127
- package/dist/src/memory/memory-initializer.js +416 -416
- package/dist/src/memory/rabitq-index.js +5 -5
- package/dist/src/proxy/verify.js +2 -2
- package/dist/src/runtime/headless.js +28 -28
- package/dist/src/services/distill-tuning.js +7 -7
- package/dist/src/services/headless-worker-executor.js +84 -84
- package/dist/src/services/memory-distillation.js +18 -18
- package/dist/src/transfer/deploy-seraphine.js +23 -23
- package/node_modules/@claude-flow/codex/.agents/skills/github-automation/SKILL.md +32 -32
- package/node_modules/@claude-flow/codex/.agents/skills/memory-management/SKILL.md +45 -45
- package/node_modules/@claude-flow/codex/.agents/skills/performance-analysis/SKILL.md +32 -32
- package/node_modules/@claude-flow/codex/.agents/skills/security-audit/SKILL.md +46 -46
- package/node_modules/@claude-flow/codex/.agents/skills/sparc-methodology/SKILL.md +46 -46
- package/node_modules/@claude-flow/codex/.agents/skills/swarm-orchestration/SKILL.md +53 -53
- package/node_modules/@claude-flow/codex/README.md +1044 -1044
- package/node_modules/@claude-flow/codex/dist/cli.js +0 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +13 -13
- package/node_modules/@claude-flow/codex/dist/generators/agents-md.js +664 -664
- package/node_modules/@claude-flow/codex/dist/generators/config-toml.js +455 -455
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.js +45 -45
- package/node_modules/@claude-flow/codex/dist/initializer.js +167 -167
- package/node_modules/@claude-flow/codex/dist/templates/index.js +15 -15
- package/node_modules/@claude-flow/mcp/README.md +429 -429
- package/node_modules/@claude-flow/plugin-agent-federation/README.md +49 -49
- package/node_modules/@claude-flow/plugin-agent-federation/dist/bin.js +0 -0
- package/node_modules/@claude-flow/security/README.md +292 -292
- package/node_modules/@claude-flow/security/dist/credential-generator.js +9 -9
- package/node_modules/@claude-flow/security/dist/oauth/callback-server.js +9 -9
- package/package.json +181 -181
- package/plugins/ruflo-metaharness/.claude-plugin/plugin.json +32 -32
- package/plugins/ruflo-metaharness/README.md +72 -72
- package/plugins/ruflo-metaharness/agents/metaharness-architect.md +58 -58
- package/plugins/ruflo-metaharness/commands/ruflo-metaharness.md +50 -50
- package/plugins/ruflo-metaharness/scripts/_darwin.mjs +210 -210
- package/plugins/ruflo-metaharness/scripts/_harness.mjs +334 -334
- package/plugins/ruflo-metaharness/scripts/_invoke.mjs +230 -230
- package/plugins/ruflo-metaharness/scripts/_redblue.mjs +143 -143
- package/plugins/ruflo-metaharness/scripts/_similarity.mjs +161 -161
- package/plugins/ruflo-metaharness/scripts/_spike-similarity.mjs +223 -223
- package/plugins/ruflo-metaharness/scripts/audit-list.mjs +158 -158
- package/plugins/ruflo-metaharness/scripts/audit-trend.mjs +272 -272
- package/plugins/ruflo-metaharness/scripts/bench-parse-mcp-scan.mjs +146 -146
- package/plugins/ruflo-metaharness/scripts/bench-recordpair-overhead.mjs +186 -186
- package/plugins/ruflo-metaharness/scripts/bench-similarity.mjs +177 -177
- package/plugins/ruflo-metaharness/scripts/bench.mjs +95 -95
- package/plugins/ruflo-metaharness/scripts/drift-from-history.mjs +363 -363
- package/plugins/ruflo-metaharness/scripts/evolve.mjs +404 -404
- package/plugins/ruflo-metaharness/scripts/genome.mjs +105 -105
- package/plugins/ruflo-metaharness/scripts/gepa.mjs +153 -153
- package/plugins/ruflo-metaharness/scripts/learn.mjs +127 -127
- package/plugins/ruflo-metaharness/scripts/mcp-scan.mjs +110 -110
- package/plugins/ruflo-metaharness/scripts/mint.mjs +126 -126
- package/plugins/ruflo-metaharness/scripts/oia-audit.mjs +228 -228
- package/plugins/ruflo-metaharness/scripts/redblue.mjs +286 -286
- package/plugins/ruflo-metaharness/scripts/router-parallel-analyze.mjs +250 -250
- package/plugins/ruflo-metaharness/scripts/score.mjs +92 -92
- package/plugins/ruflo-metaharness/scripts/security-bench.mjs +174 -174
- package/plugins/ruflo-metaharness/scripts/similarity.mjs +158 -158
- package/plugins/ruflo-metaharness/scripts/smoke.sh +2422 -2422
- package/plugins/ruflo-metaharness/scripts/test-graceful-degradation.mjs +165 -165
- package/plugins/ruflo-metaharness/scripts/test-mcp-tools.mjs +498 -498
- package/plugins/ruflo-metaharness/scripts/test-parallel-pipeline.mjs +204 -204
- package/plugins/ruflo-metaharness/scripts/test-pipeline-roundtrip.mjs +586 -586
- package/plugins/ruflo-metaharness/scripts/test-similarity.mjs +372 -372
- package/plugins/ruflo-metaharness/scripts/test-with-openrouter.mjs +229 -229
- package/plugins/ruflo-metaharness/scripts/threat-model.mjs +62 -62
- package/plugins/ruflo-metaharness/skills/harness-bench/SKILL.md +64 -64
- package/plugins/ruflo-metaharness/skills/harness-drift-from-history/SKILL.md +65 -65
- package/plugins/ruflo-metaharness/skills/harness-evolve/SKILL.md +131 -131
- package/plugins/ruflo-metaharness/skills/harness-genome/SKILL.md +57 -57
- package/plugins/ruflo-metaharness/skills/harness-gepa/SKILL.md +65 -65
- package/plugins/ruflo-metaharness/skills/harness-learn/SKILL.md +65 -65
- package/plugins/ruflo-metaharness/skills/harness-mcp-scan/SKILL.md +49 -49
- package/plugins/ruflo-metaharness/skills/harness-mint/SKILL.md +72 -72
- package/plugins/ruflo-metaharness/skills/harness-oia-audit/SKILL.md +79 -79
- package/plugins/ruflo-metaharness/skills/harness-score/SKILL.md +66 -66
- package/plugins/ruflo-metaharness/skills/harness-security-bench/SKILL.md +101 -101
- package/plugins/ruflo-metaharness/skills/harness-similarity/SKILL.md +67 -67
- package/plugins/ruflo-metaharness/skills/harness-threat-model/SKILL.md +41 -41
- package/scripts/postinstall.cjs +153 -153
- package/dist/src/ruvector/diskann-backend.d.ts +0 -78
- package/dist/src/ruvector/diskann-backend.js +0 -310
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// genome.mjs — wrapper around `metaharness genome <path>`.
|
|
3
|
-
//
|
|
4
|
-
// Returns the 7-section readiness report: repo_type / agent_topology /
|
|
5
|
-
// risk_score / mcp_surface / test_confidence / publish_readiness +
|
|
6
|
-
// verdict (ready | needs-work | blocked). Reads-only.
|
|
7
|
-
//
|
|
8
|
-
// USAGE
|
|
9
|
-
// node scripts/genome.mjs
|
|
10
|
-
// node scripts/genome.mjs --path <dir> --alert-on-risk-above 0.5 --format json
|
|
11
|
-
//
|
|
12
|
-
// EXIT CODES
|
|
13
|
-
// 0 Valid readiness report (including needs-work / blocked verdicts)
|
|
14
|
-
// 1 --alert-on-risk-above threshold breached
|
|
15
|
-
// 2 config error or genome failure (no valid readiness report)
|
|
16
|
-
|
|
17
|
-
import { runMetaharness, emitDegradedJsonAndExit } from './_harness.mjs';
|
|
18
|
-
|
|
19
|
-
const ARGS = (() => {
|
|
20
|
-
const a = { path: '.', format: 'json', alertRiskAbove: null };
|
|
21
|
-
for (let i = 2; i < process.argv.length; i++) {
|
|
22
|
-
const v = process.argv[i];
|
|
23
|
-
if (v === '--path') a.path = process.argv[++i];
|
|
24
|
-
else if (v === '--alert-on-risk-above') a.alertRiskAbove = parseFloat(process.argv[++i]);
|
|
25
|
-
else if (v === '--format') a.format = process.argv[++i];
|
|
26
|
-
}
|
|
27
|
-
return a;
|
|
28
|
-
})();
|
|
29
|
-
|
|
30
|
-
function main() {
|
|
31
|
-
const r = runMetaharness(['genome', ARGS.path]);
|
|
32
|
-
if (r.degraded) { emitDegradedJsonAndExit(r.reason); return; }
|
|
33
|
-
// Upstream uses 0/1/2 as a verdict channel:
|
|
34
|
-
// ready / needs-work / blocked. A non-zero status with a complete genome
|
|
35
|
-
// is therefore data, not a subprocess failure. Normalize valid reports to
|
|
36
|
-
// wrapper exit 0 so CLI and MCP callers can consume them; preserve the
|
|
37
|
-
// upstream verdict explicitly in the payload.
|
|
38
|
-
if (![0, 1, 2].includes(r.exitCode) || !isGenomePayload(r.json)) {
|
|
39
|
-
console.error(`genome: metaharness exited ${r.exitCode}`);
|
|
40
|
-
if (r.stderr) console.error(r.stderr.slice(0, 400));
|
|
41
|
-
process.exit(2);
|
|
42
|
-
}
|
|
43
|
-
// iter 112 — generatedAt for consistency with other --format json outputs
|
|
44
|
-
const payload = { ...r.json, path: ARGS.path, durationMs: r.durationMs,
|
|
45
|
-
generatedAt: new Date().toISOString(),
|
|
46
|
-
verdict: verdictFromExitCode(r.exitCode),
|
|
47
|
-
verdictExitCode: r.exitCode };
|
|
48
|
-
|
|
49
|
-
if (ARGS.alertRiskAbove !== null) {
|
|
50
|
-
if (!isFinite(ARGS.alertRiskAbove)) {
|
|
51
|
-
console.error(`genome: --alert-on-risk-above must be a finite number`);
|
|
52
|
-
process.exit(2);
|
|
53
|
-
}
|
|
54
|
-
payload.alert = {
|
|
55
|
-
threshold: ARGS.alertRiskAbove,
|
|
56
|
-
triggered: typeof payload.risk_score === 'number' && payload.risk_score > ARGS.alertRiskAbove,
|
|
57
|
-
reason: typeof payload.risk_score === 'number' && payload.risk_score > ARGS.alertRiskAbove
|
|
58
|
-
? `risk_score ${payload.risk_score} > ${ARGS.alertRiskAbove}`
|
|
59
|
-
: `risk_score ${payload.risk_score ?? 'unknown'} ≤ ${ARGS.alertRiskAbove} — OK`,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (ARGS.format === 'json') {
|
|
64
|
-
console.log(JSON.stringify(payload, null, 2));
|
|
65
|
-
} else {
|
|
66
|
-
console.log(`# harness-genome — ${ARGS.path}`);
|
|
67
|
-
console.log('');
|
|
68
|
-
console.log(`| Section | Value |`);
|
|
69
|
-
console.log(`|---|---|`);
|
|
70
|
-
console.log(`| repo_type | ${payload.repo_type ?? '—'} |`);
|
|
71
|
-
console.log(`| agent_topology | ${(payload.agent_topology || []).join(', ') || '—'} |`);
|
|
72
|
-
console.log(`| risk_score | ${payload.risk_score ?? '—'} |`);
|
|
73
|
-
console.log(`| mcp_surface | ${payload.mcp_surface ?? '—'} |`);
|
|
74
|
-
console.log(`| test_confidence | ${payload.test_confidence ?? '—'} |`);
|
|
75
|
-
console.log(`| publish_readiness | ${payload.publish_readiness ?? '—'} |`);
|
|
76
|
-
console.log(`| verdict | ${payload.verdict} (upstream exit ${payload.verdictExitCode}) |`);
|
|
77
|
-
console.log(`| **duration** | ${payload.durationMs}ms |`);
|
|
78
|
-
console.log('');
|
|
79
|
-
if (payload.alert) {
|
|
80
|
-
console.log(payload.alert.triggered ? `⚠ **ALERT**: ${payload.alert.reason}` : `✓ ${payload.alert.reason}`);
|
|
81
|
-
console.log('');
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (payload.alert?.triggered) process.exit(1);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function isGenomePayload(value) {
|
|
89
|
-
return !!value
|
|
90
|
-
&& typeof value === 'object'
|
|
91
|
-
&& typeof value.repo_type === 'string'
|
|
92
|
-
&& Array.isArray(value.agent_topology)
|
|
93
|
-
&& typeof value.risk_score === 'number'
|
|
94
|
-
&& typeof value.mcp_surface === 'string'
|
|
95
|
-
&& typeof value.test_confidence === 'number'
|
|
96
|
-
&& typeof value.publish_readiness === 'number';
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
function verdictFromExitCode(exitCode) {
|
|
100
|
-
if (exitCode === 0) return 'ready';
|
|
101
|
-
if (exitCode === 1) return 'needs-work';
|
|
102
|
-
return 'blocked';
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
main();
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// genome.mjs — wrapper around `metaharness genome <path>`.
|
|
3
|
+
//
|
|
4
|
+
// Returns the 7-section readiness report: repo_type / agent_topology /
|
|
5
|
+
// risk_score / mcp_surface / test_confidence / publish_readiness +
|
|
6
|
+
// verdict (ready | needs-work | blocked). Reads-only.
|
|
7
|
+
//
|
|
8
|
+
// USAGE
|
|
9
|
+
// node scripts/genome.mjs
|
|
10
|
+
// node scripts/genome.mjs --path <dir> --alert-on-risk-above 0.5 --format json
|
|
11
|
+
//
|
|
12
|
+
// EXIT CODES
|
|
13
|
+
// 0 Valid readiness report (including needs-work / blocked verdicts)
|
|
14
|
+
// 1 --alert-on-risk-above threshold breached
|
|
15
|
+
// 2 config error or genome failure (no valid readiness report)
|
|
16
|
+
|
|
17
|
+
import { runMetaharness, emitDegradedJsonAndExit } from './_harness.mjs';
|
|
18
|
+
|
|
19
|
+
const ARGS = (() => {
|
|
20
|
+
const a = { path: '.', format: 'json', alertRiskAbove: null };
|
|
21
|
+
for (let i = 2; i < process.argv.length; i++) {
|
|
22
|
+
const v = process.argv[i];
|
|
23
|
+
if (v === '--path') a.path = process.argv[++i];
|
|
24
|
+
else if (v === '--alert-on-risk-above') a.alertRiskAbove = parseFloat(process.argv[++i]);
|
|
25
|
+
else if (v === '--format') a.format = process.argv[++i];
|
|
26
|
+
}
|
|
27
|
+
return a;
|
|
28
|
+
})();
|
|
29
|
+
|
|
30
|
+
function main() {
|
|
31
|
+
const r = runMetaharness(['genome', ARGS.path]);
|
|
32
|
+
if (r.degraded) { emitDegradedJsonAndExit(r.reason); return; }
|
|
33
|
+
// Upstream uses 0/1/2 as a verdict channel:
|
|
34
|
+
// ready / needs-work / blocked. A non-zero status with a complete genome
|
|
35
|
+
// is therefore data, not a subprocess failure. Normalize valid reports to
|
|
36
|
+
// wrapper exit 0 so CLI and MCP callers can consume them; preserve the
|
|
37
|
+
// upstream verdict explicitly in the payload.
|
|
38
|
+
if (![0, 1, 2].includes(r.exitCode) || !isGenomePayload(r.json)) {
|
|
39
|
+
console.error(`genome: metaharness exited ${r.exitCode}`);
|
|
40
|
+
if (r.stderr) console.error(r.stderr.slice(0, 400));
|
|
41
|
+
process.exit(2);
|
|
42
|
+
}
|
|
43
|
+
// iter 112 — generatedAt for consistency with other --format json outputs
|
|
44
|
+
const payload = { ...r.json, path: ARGS.path, durationMs: r.durationMs,
|
|
45
|
+
generatedAt: new Date().toISOString(),
|
|
46
|
+
verdict: verdictFromExitCode(r.exitCode),
|
|
47
|
+
verdictExitCode: r.exitCode };
|
|
48
|
+
|
|
49
|
+
if (ARGS.alertRiskAbove !== null) {
|
|
50
|
+
if (!isFinite(ARGS.alertRiskAbove)) {
|
|
51
|
+
console.error(`genome: --alert-on-risk-above must be a finite number`);
|
|
52
|
+
process.exit(2);
|
|
53
|
+
}
|
|
54
|
+
payload.alert = {
|
|
55
|
+
threshold: ARGS.alertRiskAbove,
|
|
56
|
+
triggered: typeof payload.risk_score === 'number' && payload.risk_score > ARGS.alertRiskAbove,
|
|
57
|
+
reason: typeof payload.risk_score === 'number' && payload.risk_score > ARGS.alertRiskAbove
|
|
58
|
+
? `risk_score ${payload.risk_score} > ${ARGS.alertRiskAbove}`
|
|
59
|
+
: `risk_score ${payload.risk_score ?? 'unknown'} ≤ ${ARGS.alertRiskAbove} — OK`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (ARGS.format === 'json') {
|
|
64
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
65
|
+
} else {
|
|
66
|
+
console.log(`# harness-genome — ${ARGS.path}`);
|
|
67
|
+
console.log('');
|
|
68
|
+
console.log(`| Section | Value |`);
|
|
69
|
+
console.log(`|---|---|`);
|
|
70
|
+
console.log(`| repo_type | ${payload.repo_type ?? '—'} |`);
|
|
71
|
+
console.log(`| agent_topology | ${(payload.agent_topology || []).join(', ') || '—'} |`);
|
|
72
|
+
console.log(`| risk_score | ${payload.risk_score ?? '—'} |`);
|
|
73
|
+
console.log(`| mcp_surface | ${payload.mcp_surface ?? '—'} |`);
|
|
74
|
+
console.log(`| test_confidence | ${payload.test_confidence ?? '—'} |`);
|
|
75
|
+
console.log(`| publish_readiness | ${payload.publish_readiness ?? '—'} |`);
|
|
76
|
+
console.log(`| verdict | ${payload.verdict} (upstream exit ${payload.verdictExitCode}) |`);
|
|
77
|
+
console.log(`| **duration** | ${payload.durationMs}ms |`);
|
|
78
|
+
console.log('');
|
|
79
|
+
if (payload.alert) {
|
|
80
|
+
console.log(payload.alert.triggered ? `⚠ **ALERT**: ${payload.alert.reason}` : `✓ ${payload.alert.reason}`);
|
|
81
|
+
console.log('');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (payload.alert?.triggered) process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function isGenomePayload(value) {
|
|
89
|
+
return !!value
|
|
90
|
+
&& typeof value === 'object'
|
|
91
|
+
&& typeof value.repo_type === 'string'
|
|
92
|
+
&& Array.isArray(value.agent_topology)
|
|
93
|
+
&& typeof value.risk_score === 'number'
|
|
94
|
+
&& typeof value.mcp_surface === 'string'
|
|
95
|
+
&& typeof value.test_confidence === 'number'
|
|
96
|
+
&& typeof value.publish_readiness === 'number';
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function verdictFromExitCode(exitCode) {
|
|
100
|
+
if (exitCode === 0) return 'ready';
|
|
101
|
+
if (exitCode === 1) return 'needs-work';
|
|
102
|
+
return 'blocked';
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
main();
|
|
@@ -1,153 +1,153 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// gepa.mjs — surfaces the `@metaharness/darwin/gepa` LIBRARY exports.
|
|
3
|
-
//
|
|
4
|
-
// Unlike every other script in this plugin, gepa has no CLI equivalent —
|
|
5
|
-
// GEPA (darwin 0.8.0's genetic-evolution prompt-adaptation engine) ships as
|
|
6
|
-
// a library entry (`import { ... } from '@metaharness/darwin/gepa'`). This
|
|
7
|
-
// script wraps the subprocess-safe subset:
|
|
8
|
-
//
|
|
9
|
-
// genome load + validate a genome (default: the shipped cand-6 — the
|
|
10
|
-
// first holdout-confirmed cheap-tier policy promotion)
|
|
11
|
-
// validate validateGenome(json) → structural errors[]
|
|
12
|
-
// render buildSystemFromGenome(genome) → the system prompt a genome
|
|
13
|
-
// compiles to (inspect what a policy actually says)
|
|
14
|
-
// analyze analyzeTranscript(entries) → failure-class breakdown
|
|
15
|
-
//
|
|
16
|
-
// NOT SURFACED: `gepaOptimize` — it takes an in-process `evaluate(candidate)`
|
|
17
|
-
// callback ("bring your own evaluator") which cannot cross a subprocess
|
|
18
|
-
// boundary. Optimization runs belong either in library consumers
|
|
19
|
-
// (import '@metaharness/darwin/gepa' directly) or behind the darwin CLI's
|
|
20
|
-
// `evolve` verb (scripts/evolve.mjs), which pairs GEPA with its sandbox
|
|
21
|
-
// evaluators.
|
|
22
|
-
//
|
|
23
|
-
// MODULE RESOLUTION (ADR-150 graceful degradation)
|
|
24
|
-
// ================================================
|
|
25
|
-
// Delegated to _invoke.importOptionalLibrary (family-wide consolidation):
|
|
26
|
-
// 1. Try bare `import('@metaharness/darwin/gepa')` — free when the optional
|
|
27
|
-
// dep is installed in an ancestor node_modules.
|
|
28
|
-
// 2. Fall back to a ruflo-owned versioned cache install
|
|
29
|
-
// (~/.ruflo/darwin-cache-<pin>) — the versioned dir means pin bumps
|
|
30
|
-
// invalidate stale caches automatically.
|
|
31
|
-
// 3. Both fail → `{degraded: true}` exit 0. Never throws.
|
|
32
|
-
//
|
|
33
|
-
// EXIT CODES
|
|
34
|
-
// 0 op completed (or degraded)
|
|
35
|
-
// 1 --alert-on-invalid and validate found errors
|
|
36
|
-
// 2 config error (bad op / missing file)
|
|
37
|
-
|
|
38
|
-
import { readFileSync, existsSync } from 'node:fs';
|
|
39
|
-
import { importGepa, DARWIN_VERSION_PIN } from './_darwin.mjs';
|
|
40
|
-
|
|
41
|
-
// Pin lives in _darwin.mjs (DARWIN_VERSION_PIN) — single source of truth.
|
|
42
|
-
const DARWIN_PIN_VERSION = DARWIN_VERSION_PIN.split('@').pop();
|
|
43
|
-
|
|
44
|
-
const ARGS = (() => {
|
|
45
|
-
const a = {
|
|
46
|
-
op: null,
|
|
47
|
-
path: null, // genome JSON path (genome/validate/render); default cand-6
|
|
48
|
-
transcript: null, // transcript JSON path (analyze)
|
|
49
|
-
ext: undefined, // render — target file extension hint
|
|
50
|
-
glob: undefined, // render — target glob hint
|
|
51
|
-
alertOnInvalid: false,
|
|
52
|
-
format: 'json',
|
|
53
|
-
};
|
|
54
|
-
for (let i = 2; i < process.argv.length; i++) {
|
|
55
|
-
const v = process.argv[i];
|
|
56
|
-
if (v === '--op') a.op = process.argv[++i];
|
|
57
|
-
else if (v === '--path') a.path = process.argv[++i];
|
|
58
|
-
else if (v === '--transcript') a.transcript = process.argv[++i];
|
|
59
|
-
else if (v === '--ext') a.ext = process.argv[++i];
|
|
60
|
-
else if (v === '--glob') a.glob = process.argv[++i];
|
|
61
|
-
else if (v === '--alert-on-invalid') a.alertOnInvalid = true;
|
|
62
|
-
else if (v === '--format') a.format = process.argv[++i];
|
|
63
|
-
}
|
|
64
|
-
return a;
|
|
65
|
-
})();
|
|
66
|
-
|
|
67
|
-
function emitDegradedAndExit(reason) {
|
|
68
|
-
console.log(JSON.stringify({
|
|
69
|
-
degraded: true,
|
|
70
|
-
reason,
|
|
71
|
-
hint: 'Install with `npm i -D @metaharness/darwin@' + DARWIN_PIN_VERSION
|
|
72
|
-
+ '` or verify network access — the gepa entry ships inside the darwin package.',
|
|
73
|
-
generatedAt: new Date().toISOString(),
|
|
74
|
-
}, null, 2));
|
|
75
|
-
process.exit(0); // ADR-150 — ruflo stays operational without MetaHarness
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function readJsonFile(path, label) {
|
|
79
|
-
if (!path || !existsSync(path)) {
|
|
80
|
-
console.error(`gepa: ${label} file not found: ${path}`);
|
|
81
|
-
process.exit(2);
|
|
82
|
-
}
|
|
83
|
-
try {
|
|
84
|
-
return JSON.parse(readFileSync(path, 'utf8'));
|
|
85
|
-
} catch (e) {
|
|
86
|
-
console.error(`gepa: ${label} is not valid JSON: ${e?.message ?? e}`);
|
|
87
|
-
process.exit(2);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function loadGenomeOrExit(gepa) {
|
|
92
|
-
if (ARGS.path) {
|
|
93
|
-
if (!existsSync(ARGS.path)) {
|
|
94
|
-
console.error(`gepa: --path genome file not found: ${ARGS.path}`);
|
|
95
|
-
process.exit(2);
|
|
96
|
-
}
|
|
97
|
-
// upstream signature: loadGenome(readFileSync, path) — fs injected.
|
|
98
|
-
return { genome: gepa.loadGenome(readFileSync, ARGS.path), source: ARGS.path };
|
|
99
|
-
}
|
|
100
|
-
return { genome: gepa.loadCand6Genome(), source: gepa.CAND6_GENOME_PATH };
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
async function main() {
|
|
104
|
-
const OPS = ['genome', 'validate', 'render', 'analyze'];
|
|
105
|
-
if (!OPS.includes(ARGS.op)) {
|
|
106
|
-
console.error(`gepa: --op must be one of ${OPS.join('|')}`);
|
|
107
|
-
process.exit(2);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const gepa = await importGepa();
|
|
111
|
-
if (!gepa) emitDegradedAndExit('metaharness-darwin-not-available');
|
|
112
|
-
|
|
113
|
-
const start = Date.now();
|
|
114
|
-
let out;
|
|
115
|
-
|
|
116
|
-
if (ARGS.op === 'genome') {
|
|
117
|
-
const { genome, source } = loadGenomeOrExit(gepa);
|
|
118
|
-
const errors = gepa.validateGenome(genome);
|
|
119
|
-
out = { op: 'genome', source, valid: errors.length === 0, errors, genome };
|
|
120
|
-
} else if (ARGS.op === 'validate') {
|
|
121
|
-
// validate takes raw JSON (not loadGenome) so structurally-broken files
|
|
122
|
-
// reach validateGenome instead of throwing in the loader.
|
|
123
|
-
const raw = ARGS.path
|
|
124
|
-
? readJsonFile(ARGS.path, '--path genome')
|
|
125
|
-
: gepa.loadCand6Genome();
|
|
126
|
-
const errors = gepa.validateGenome(raw);
|
|
127
|
-
out = { op: 'validate', source: ARGS.path ?? gepa.CAND6_GENOME_PATH, valid: errors.length === 0, errors };
|
|
128
|
-
} else if (ARGS.op === 'render') {
|
|
129
|
-
const { genome, source } = loadGenomeOrExit(gepa);
|
|
130
|
-
const system = gepa.buildSystemFromGenome(genome, ARGS.ext, ARGS.glob);
|
|
131
|
-
out = { op: 'render', source, chars: system.length, system };
|
|
132
|
-
} else {
|
|
133
|
-
// analyze
|
|
134
|
-
const entries = readJsonFile(ARGS.transcript, '--transcript');
|
|
135
|
-
if (!Array.isArray(entries)) {
|
|
136
|
-
console.error('gepa: --transcript must be a JSON array of transcript entries');
|
|
137
|
-
process.exit(2);
|
|
138
|
-
}
|
|
139
|
-
const analysis = gepa.analyzeTranscript(entries);
|
|
140
|
-
out = { op: 'analyze', source: ARGS.transcript, entries: entries.length, analysis };
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
out.durationMs = Date.now() - start;
|
|
144
|
-
console.log(JSON.stringify(out, null, 2));
|
|
145
|
-
|
|
146
|
-
if (ARGS.alertOnInvalid && out.valid === false) process.exit(1);
|
|
147
|
-
process.exit(0);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
main().catch((e) => {
|
|
151
|
-
console.error(`gepa: ${e?.message ?? e}`);
|
|
152
|
-
process.exit(2);
|
|
153
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// gepa.mjs — surfaces the `@metaharness/darwin/gepa` LIBRARY exports.
|
|
3
|
+
//
|
|
4
|
+
// Unlike every other script in this plugin, gepa has no CLI equivalent —
|
|
5
|
+
// GEPA (darwin 0.8.0's genetic-evolution prompt-adaptation engine) ships as
|
|
6
|
+
// a library entry (`import { ... } from '@metaharness/darwin/gepa'`). This
|
|
7
|
+
// script wraps the subprocess-safe subset:
|
|
8
|
+
//
|
|
9
|
+
// genome load + validate a genome (default: the shipped cand-6 — the
|
|
10
|
+
// first holdout-confirmed cheap-tier policy promotion)
|
|
11
|
+
// validate validateGenome(json) → structural errors[]
|
|
12
|
+
// render buildSystemFromGenome(genome) → the system prompt a genome
|
|
13
|
+
// compiles to (inspect what a policy actually says)
|
|
14
|
+
// analyze analyzeTranscript(entries) → failure-class breakdown
|
|
15
|
+
//
|
|
16
|
+
// NOT SURFACED: `gepaOptimize` — it takes an in-process `evaluate(candidate)`
|
|
17
|
+
// callback ("bring your own evaluator") which cannot cross a subprocess
|
|
18
|
+
// boundary. Optimization runs belong either in library consumers
|
|
19
|
+
// (import '@metaharness/darwin/gepa' directly) or behind the darwin CLI's
|
|
20
|
+
// `evolve` verb (scripts/evolve.mjs), which pairs GEPA with its sandbox
|
|
21
|
+
// evaluators.
|
|
22
|
+
//
|
|
23
|
+
// MODULE RESOLUTION (ADR-150 graceful degradation)
|
|
24
|
+
// ================================================
|
|
25
|
+
// Delegated to _invoke.importOptionalLibrary (family-wide consolidation):
|
|
26
|
+
// 1. Try bare `import('@metaharness/darwin/gepa')` — free when the optional
|
|
27
|
+
// dep is installed in an ancestor node_modules.
|
|
28
|
+
// 2. Fall back to a ruflo-owned versioned cache install
|
|
29
|
+
// (~/.ruflo/darwin-cache-<pin>) — the versioned dir means pin bumps
|
|
30
|
+
// invalidate stale caches automatically.
|
|
31
|
+
// 3. Both fail → `{degraded: true}` exit 0. Never throws.
|
|
32
|
+
//
|
|
33
|
+
// EXIT CODES
|
|
34
|
+
// 0 op completed (or degraded)
|
|
35
|
+
// 1 --alert-on-invalid and validate found errors
|
|
36
|
+
// 2 config error (bad op / missing file)
|
|
37
|
+
|
|
38
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
39
|
+
import { importGepa, DARWIN_VERSION_PIN } from './_darwin.mjs';
|
|
40
|
+
|
|
41
|
+
// Pin lives in _darwin.mjs (DARWIN_VERSION_PIN) — single source of truth.
|
|
42
|
+
const DARWIN_PIN_VERSION = DARWIN_VERSION_PIN.split('@').pop();
|
|
43
|
+
|
|
44
|
+
const ARGS = (() => {
|
|
45
|
+
const a = {
|
|
46
|
+
op: null,
|
|
47
|
+
path: null, // genome JSON path (genome/validate/render); default cand-6
|
|
48
|
+
transcript: null, // transcript JSON path (analyze)
|
|
49
|
+
ext: undefined, // render — target file extension hint
|
|
50
|
+
glob: undefined, // render — target glob hint
|
|
51
|
+
alertOnInvalid: false,
|
|
52
|
+
format: 'json',
|
|
53
|
+
};
|
|
54
|
+
for (let i = 2; i < process.argv.length; i++) {
|
|
55
|
+
const v = process.argv[i];
|
|
56
|
+
if (v === '--op') a.op = process.argv[++i];
|
|
57
|
+
else if (v === '--path') a.path = process.argv[++i];
|
|
58
|
+
else if (v === '--transcript') a.transcript = process.argv[++i];
|
|
59
|
+
else if (v === '--ext') a.ext = process.argv[++i];
|
|
60
|
+
else if (v === '--glob') a.glob = process.argv[++i];
|
|
61
|
+
else if (v === '--alert-on-invalid') a.alertOnInvalid = true;
|
|
62
|
+
else if (v === '--format') a.format = process.argv[++i];
|
|
63
|
+
}
|
|
64
|
+
return a;
|
|
65
|
+
})();
|
|
66
|
+
|
|
67
|
+
function emitDegradedAndExit(reason) {
|
|
68
|
+
console.log(JSON.stringify({
|
|
69
|
+
degraded: true,
|
|
70
|
+
reason,
|
|
71
|
+
hint: 'Install with `npm i -D @metaharness/darwin@' + DARWIN_PIN_VERSION
|
|
72
|
+
+ '` or verify network access — the gepa entry ships inside the darwin package.',
|
|
73
|
+
generatedAt: new Date().toISOString(),
|
|
74
|
+
}, null, 2));
|
|
75
|
+
process.exit(0); // ADR-150 — ruflo stays operational without MetaHarness
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function readJsonFile(path, label) {
|
|
79
|
+
if (!path || !existsSync(path)) {
|
|
80
|
+
console.error(`gepa: ${label} file not found: ${path}`);
|
|
81
|
+
process.exit(2);
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
return JSON.parse(readFileSync(path, 'utf8'));
|
|
85
|
+
} catch (e) {
|
|
86
|
+
console.error(`gepa: ${label} is not valid JSON: ${e?.message ?? e}`);
|
|
87
|
+
process.exit(2);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function loadGenomeOrExit(gepa) {
|
|
92
|
+
if (ARGS.path) {
|
|
93
|
+
if (!existsSync(ARGS.path)) {
|
|
94
|
+
console.error(`gepa: --path genome file not found: ${ARGS.path}`);
|
|
95
|
+
process.exit(2);
|
|
96
|
+
}
|
|
97
|
+
// upstream signature: loadGenome(readFileSync, path) — fs injected.
|
|
98
|
+
return { genome: gepa.loadGenome(readFileSync, ARGS.path), source: ARGS.path };
|
|
99
|
+
}
|
|
100
|
+
return { genome: gepa.loadCand6Genome(), source: gepa.CAND6_GENOME_PATH };
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function main() {
|
|
104
|
+
const OPS = ['genome', 'validate', 'render', 'analyze'];
|
|
105
|
+
if (!OPS.includes(ARGS.op)) {
|
|
106
|
+
console.error(`gepa: --op must be one of ${OPS.join('|')}`);
|
|
107
|
+
process.exit(2);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const gepa = await importGepa();
|
|
111
|
+
if (!gepa) emitDegradedAndExit('metaharness-darwin-not-available');
|
|
112
|
+
|
|
113
|
+
const start = Date.now();
|
|
114
|
+
let out;
|
|
115
|
+
|
|
116
|
+
if (ARGS.op === 'genome') {
|
|
117
|
+
const { genome, source } = loadGenomeOrExit(gepa);
|
|
118
|
+
const errors = gepa.validateGenome(genome);
|
|
119
|
+
out = { op: 'genome', source, valid: errors.length === 0, errors, genome };
|
|
120
|
+
} else if (ARGS.op === 'validate') {
|
|
121
|
+
// validate takes raw JSON (not loadGenome) so structurally-broken files
|
|
122
|
+
// reach validateGenome instead of throwing in the loader.
|
|
123
|
+
const raw = ARGS.path
|
|
124
|
+
? readJsonFile(ARGS.path, '--path genome')
|
|
125
|
+
: gepa.loadCand6Genome();
|
|
126
|
+
const errors = gepa.validateGenome(raw);
|
|
127
|
+
out = { op: 'validate', source: ARGS.path ?? gepa.CAND6_GENOME_PATH, valid: errors.length === 0, errors };
|
|
128
|
+
} else if (ARGS.op === 'render') {
|
|
129
|
+
const { genome, source } = loadGenomeOrExit(gepa);
|
|
130
|
+
const system = gepa.buildSystemFromGenome(genome, ARGS.ext, ARGS.glob);
|
|
131
|
+
out = { op: 'render', source, chars: system.length, system };
|
|
132
|
+
} else {
|
|
133
|
+
// analyze
|
|
134
|
+
const entries = readJsonFile(ARGS.transcript, '--transcript');
|
|
135
|
+
if (!Array.isArray(entries)) {
|
|
136
|
+
console.error('gepa: --transcript must be a JSON array of transcript entries');
|
|
137
|
+
process.exit(2);
|
|
138
|
+
}
|
|
139
|
+
const analysis = gepa.analyzeTranscript(entries);
|
|
140
|
+
out = { op: 'analyze', source: ARGS.transcript, entries: entries.length, analysis };
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
out.durationMs = Date.now() - start;
|
|
144
|
+
console.log(JSON.stringify(out, null, 2));
|
|
145
|
+
|
|
146
|
+
if (ARGS.alertOnInvalid && out.valid === false) process.exit(1);
|
|
147
|
+
process.exit(0);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
main().catch((e) => {
|
|
151
|
+
console.error(`gepa: ${e?.message ?? e}`);
|
|
152
|
+
process.exit(2);
|
|
153
|
+
});
|