moflo 4.0.4 → 4.1.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 +221 -221
- 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/system-design/arch-system-design.md +154 -154
- package/.claude/agents/base-template-generator.md +42 -42
- 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/coder.md +265 -265
- package/.claude/agents/core/planner.md +167 -167
- package/.claude/agents/core/researcher.md +189 -189
- package/.claude/agents/core/reviewer.md +325 -325
- package/.claude/agents/core/tester.md +318 -318
- package/.claude/agents/custom/test-long-runner.md +44 -44
- 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/documentation/api-docs/docs-api-openapi.md +173 -173
- package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
- package/.claude/agents/dual-mode/codex-worker.md +211 -211
- package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
- 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 +537 -537
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +318 -318
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +190 -190
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +366 -366
- 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 +634 -634
- package/.claude/agents/goal/agent.md +815 -815
- package/.claude/agents/goal/code-goal-planner.md +445 -445
- package/.claude/agents/goal/goal-planner.md +167 -167
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
- package/.claude/agents/hive-mind/scout-explorer.md +241 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
- package/.claude/agents/hive-mind/worker-specialist.md +216 -216
- package/.claude/agents/neural/safla-neural.md +73 -73
- 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/reasoning/agent.md +815 -815
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/sona/sona-learning-optimizer.md +74 -74
- package/.claude/agents/sparc/architecture.md +471 -471
- package/.claude/agents/sparc/pseudocode.md +317 -317
- package/.claude/agents/sparc/refinement.md +524 -524
- package/.claude/agents/sparc/specification.md +275 -275
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +224 -224
- 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 +395 -395
- package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
- package/.claude/agents/swarm/mesh-coordinator.md +391 -391
- package/.claude/agents/templates/automation-smart-agent.md +204 -204
- package/.claude/agents/templates/coordinator-swarm-init.md +104 -104
- 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/migration-plan.md +745 -745
- 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 +182 -182
- package/.claude/agents/testing/production-validator.md +394 -394
- package/.claude/agents/testing/tdd-london-swarm.md +243 -243
- package/.claude/agents/testing/unit/tdd-london-swarm.md +243 -243
- package/.claude/agents/testing/validation/production-validator.md +394 -394
- package/.claude/agents/v3/v3-integration-architect.md +345 -345
- package/.claude/agents/v3/v3-memory-specialist.md +317 -317
- package/.claude/agents/v3/v3-performance-engineer.md +396 -396
- package/.claude/agents/v3/v3-queen-coordinator.md +97 -97
- package/.claude/agents/v3/v3-security-architect.md +173 -173
- package/.claude/commands/agents/README.md +10 -10
- package/.claude/commands/agents/agent-capabilities.md +21 -21
- 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 +26 -26
- 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/flow-nexus/app-store.md +123 -123
- package/.claude/commands/flow-nexus/challenges.md +119 -119
- package/.claude/commands/flow-nexus/login-registration.md +64 -64
- package/.claude/commands/flow-nexus/neural-network.md +133 -133
- package/.claude/commands/flow-nexus/payments.md +115 -115
- package/.claude/commands/flow-nexus/sandbox.md +82 -82
- package/.claude/commands/flow-nexus/swarm.md +86 -86
- package/.claude/commands/flow-nexus/user-tools.md +151 -151
- package/.claude/commands/flow-nexus/workflow.md +114 -114
- 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 +337 -337
- 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 +481 -481
- package/.claude/commands/github/swarm-pr.md +284 -284
- package/.claude/commands/github/sync-coordinator.md +300 -300
- 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 +27 -27
- 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 +73 -73
- package/.claude/commands/training/neural-train.md +25 -25
- 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/config/v3-dependency-optimization.json +265 -265
- package/.claude/config/v3-performance-targets.json +250 -250
- package/.claude/helpers/README.md +96 -96
- package/.claude/helpers/aggressive-microcompact.mjs +36 -36
- package/.claude/helpers/auto-memory-hook.mjs +363 -363
- package/.claude/helpers/context-persistence-hook.mjs +1979 -1979
- package/.claude/helpers/github-safe.js +106 -106
- package/.claude/helpers/learning-service.mjs +1144 -1144
- package/.claude/helpers/metrics-db.mjs +488 -488
- package/.claude/helpers/patch-aggressive-prune.mjs +184 -184
- package/.claude/mcp.json +12 -12
- package/.claude/settings.json +2 -2
- 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/agentic-jujutsu/SKILL.md +645 -645
- 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 +738 -738
- package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -1157
- package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -610
- package/.claude/skills/github-code-review/SKILL.md +1 -1
- package/.claude/skills/github-multi-repo/SKILL.md +2 -2
- package/.claude/skills/github-project-management/SKILL.md +1 -1
- package/.claude/skills/github-release-management/SKILL.md +2 -2
- package/.claude/skills/github-workflow-automation/SKILL.md +1 -1
- package/.claude/skills/hive-mind-advanced/SKILL.md +4 -4
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/pair-programming/SKILL.md +1202 -1202
- package/.claude/skills/performance-analysis/SKILL.md +563 -563
- 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 +2 -2
- package/.claude/skills/stream-chain/SKILL.md +563 -563
- package/.claude/skills/swarm-advanced/SKILL.md +4 -4
- 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 +649 -649
- package/.claude/skills/worker-benchmarks/skill.md +135 -135
- package/.claude/skills/worker-integration/skill.md +154 -154
- package/.claude/statusline.mjs +109 -109
- package/.claude-plugin/README.md +6 -6
- package/.claude-plugin/docs/INSTALLATION.md +4 -4
- package/.claude-plugin/docs/PLUGIN_SUMMARY.md +5 -5
- package/.claude-plugin/docs/QUICKSTART.md +1 -1
- package/.claude-plugin/docs/STRUCTURE.md +128 -128
- package/.claude-plugin/hooks/hooks.json +74 -74
- package/.claude-plugin/marketplace.json +5 -5
- package/.claude-plugin/plugin.json +4 -4
- package/README.md +148 -148
- package/bin/cli.js +12 -12
- package/bin/npx-repair.js +7 -7
- package/bin/npx-safe-launch.js +9 -9
- package/package.json +115 -114
- package/v3/@claude-flow/cli/README.md +5 -5
- package/v3/@claude-flow/cli/bin/cli.js +156 -156
- package/v3/@claude-flow/cli/bin/mcp-server.js +189 -189
- package/v3/@claude-flow/cli/dist/src/commands/analyze.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/analyze.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/claims.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/claims.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/completions.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/completions.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/config.js +36 -2
- package/v3/@claude-flow/cli/dist/src/commands/daemon.js +54 -7
- package/v3/@claude-flow/cli/dist/src/commands/deployment.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/deployment.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +30 -112
- package/v3/@claude-flow/cli/dist/src/commands/init.js +6 -1
- package/v3/@claude-flow/cli/dist/src/commands/memory.js +30 -30
- package/v3/@claude-flow/cli/dist/src/commands/neural.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/neural.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/orc.js +1 -0
- package/v3/@claude-flow/cli/dist/src/commands/performance.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/performance.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/plugins.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/plugins.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/providers.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/providers.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/route.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/route.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +23 -23
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +29 -29
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.js +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +113 -113
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +97 -97
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +51 -51
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +36 -36
- package/v3/@claude-flow/cli/dist/src/commands/security.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/commands/security.js +2 -2
- package/v3/@claude-flow/cli/dist/src/config/moflo-config.d.ts +13 -1
- package/v3/@claude-flow/cli/dist/src/config/moflo-config.js +93 -41
- package/v3/@claude-flow/cli/dist/src/index.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/index.js +2 -2
- package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +2 -2
- package/v3/@claude-flow/cli/dist/src/init/executor.js +3 -3
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +640 -640
- package/v3/@claude-flow/cli/dist/src/init/moflo-init.d.ts +10 -0
- package/v3/@claude-flow/cli/dist/src/init/moflo-init.js +101 -20
- package/v3/@claude-flow/cli/dist/src/init/settings-generator.js +2 -2
- package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +783 -783
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +30 -13
- package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js +1 -1
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +61 -61
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +2212 -2263
- package/v3/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.js +1 -1
- package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.js +1 -1
- package/v3/@claude-flow/cli/dist/src/services/agent-router.d.ts +14 -0
- package/v3/@claude-flow/cli/dist/src/services/agent-router.js +86 -7
- package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/v3/@claude-flow/cli/dist/src/services/index.d.ts +1 -3
- package/v3/@claude-flow/cli/dist/src/services/index.js +1 -2
- package/v3/@claude-flow/cli/dist/src/services/learning-service.js +54 -54
- package/v3/@claude-flow/cli/dist/src/services/ruvector-training.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/services/ruvector-training.js +1 -1
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +24 -3
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +123 -12
- package/v3/@claude-flow/cli/dist/src/services/workflow-gate.d.ts +1 -0
- package/v3/@claude-flow/cli/dist/src/services/workflow-gate.js +20 -5
- package/v3/@claude-flow/cli/dist/src/suggest.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/suggest.js +1 -1
- package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +23 -23
- package/v3/@claude-flow/cli/package.json +6 -6
- package/v3/@claude-flow/guidance/README.md +6 -6
- package/v3/@claude-flow/guidance/package.json +1 -1
- package/v3/@claude-flow/memory/README.md +1 -1
- package/v3/@claude-flow/shared/README.md +1 -1
- package/v3/@claude-flow/shared/package.json +42 -42
- package/v3/README.md +3 -3
|
@@ -1,184 +1,184 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Patch: Aggressive Text Pruning for Claude Code
|
|
4
|
-
*
|
|
5
|
-
* Extends Claude Code's micro-compaction (Vd function) to also prune old
|
|
6
|
-
* user/assistant TEXT content, not just tool results. This keeps context
|
|
7
|
-
* lean and prevents full compaction from ever being needed.
|
|
8
|
-
*
|
|
9
|
-
* What it does:
|
|
10
|
-
* After Vd() runs (pruning tool results), this patch adds a second pass
|
|
11
|
-
* that truncates old conversation text. It keeps the last N turns intact
|
|
12
|
-
* and replaces older text with brief summaries.
|
|
13
|
-
*
|
|
14
|
-
* How it works:
|
|
15
|
-
* Patches cli.js to insert a textPrune() function call after Vd().
|
|
16
|
-
* The function:
|
|
17
|
-
* 1. Counts total text tokens in the message array
|
|
18
|
-
* 2. If above threshold (configurable via CLAUDE_TEXT_PRUNE_THRESHOLD)
|
|
19
|
-
* 3. Keeps the last CLAUDE_TEXT_PRUNE_KEEP turns intact
|
|
20
|
-
* 4. Truncates older text blocks to first line + "[earlier context pruned]"
|
|
21
|
-
* 5. Preserves tool_use/tool_result structure (never breaks the API contract)
|
|
22
|
-
*
|
|
23
|
-
* Safety:
|
|
24
|
-
* - Only modifies text content blocks, never tool_use or tool_result
|
|
25
|
-
* - Always keeps last N turns fully intact
|
|
26
|
-
* - Preserves message structure (role, type, ids)
|
|
27
|
-
* - Falls back gracefully if anything fails
|
|
28
|
-
* - Can be reverted by running: node patch-aggressive-prune.mjs --revert
|
|
29
|
-
*
|
|
30
|
-
* Usage:
|
|
31
|
-
* node patch-aggressive-prune.mjs # Apply patch
|
|
32
|
-
* node patch-aggressive-prune.mjs --revert # Revert patch
|
|
33
|
-
* node patch-aggressive-prune.mjs --check # Check if patched
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
import { readFileSync, writeFileSync, copyFileSync, existsSync } from 'fs';
|
|
37
|
-
import { join, dirname } from 'path';
|
|
38
|
-
import { fileURLToPath } from 'url';
|
|
39
|
-
|
|
40
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
41
|
-
const __dirname = dirname(__filename);
|
|
42
|
-
const PROJECT_ROOT = join(__dirname, '../..');
|
|
43
|
-
const CLI_PATH = join(PROJECT_ROOT, 'node_modules/@anthropic-ai/claude-agent-sdk/cli.js');
|
|
44
|
-
const BACKUP_PATH = CLI_PATH + '.backup';
|
|
45
|
-
|
|
46
|
-
const PATCH_MARKER = '/*AGGRESSIVE_TEXT_PRUNE_PATCH*/';
|
|
47
|
-
|
|
48
|
-
// The text pruning function to inject
|
|
49
|
-
const TEXT_PRUNE_FUNCTION = `
|
|
50
|
-
/*AGGRESSIVE_TEXT_PRUNE_PATCH*/
|
|
51
|
-
function _aggressiveTextPrune(messages) {
|
|
52
|
-
try {
|
|
53
|
-
var KEEP = parseInt(process.env.CLAUDE_TEXT_PRUNE_KEEP || '10', 10);
|
|
54
|
-
var THRESHOLD = parseInt(process.env.CLAUDE_TEXT_PRUNE_THRESHOLD || '60000', 10);
|
|
55
|
-
var MAX_OLD_TEXT = parseInt(process.env.CLAUDE_TEXT_PRUNE_MAX_CHARS || '150', 10);
|
|
56
|
-
|
|
57
|
-
// Count text tokens roughly (4 chars per token)
|
|
58
|
-
var totalChars = 0;
|
|
59
|
-
for (var i = 0; i < messages.length; i++) {
|
|
60
|
-
var m = messages[i];
|
|
61
|
-
if ((m.type === 'user' || m.type === 'assistant') && Array.isArray(m.message?.content)) {
|
|
62
|
-
for (var j = 0; j < m.message.content.length; j++) {
|
|
63
|
-
var c = m.message.content[j];
|
|
64
|
-
if (c.type === 'text') totalChars += (c.text || '').length;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
var totalTokensEst = Math.ceil(totalChars / 4);
|
|
70
|
-
if (totalTokensEst < THRESHOLD) return messages;
|
|
71
|
-
|
|
72
|
-
// Find turn boundaries (user message = new turn)
|
|
73
|
-
var turnStarts = [];
|
|
74
|
-
for (var i = 0; i < messages.length; i++) {
|
|
75
|
-
if (messages[i].type === 'user') turnStarts.push(i);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Keep last KEEP turns intact
|
|
79
|
-
var cutoffIdx = turnStarts.length > KEEP ? turnStarts[turnStarts.length - KEEP] : 0;
|
|
80
|
-
if (cutoffIdx === 0) return messages;
|
|
81
|
-
|
|
82
|
-
var pruned = [];
|
|
83
|
-
var prunedChars = 0;
|
|
84
|
-
for (var i = 0; i < messages.length; i++) {
|
|
85
|
-
var m = messages[i];
|
|
86
|
-
if (i >= cutoffIdx) {
|
|
87
|
-
pruned.push(m);
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if ((m.type === 'user' || m.type === 'assistant') && Array.isArray(m.message?.content)) {
|
|
91
|
-
var newContent = [];
|
|
92
|
-
for (var j = 0; j < m.message.content.length; j++) {
|
|
93
|
-
var c = m.message.content[j];
|
|
94
|
-
if (c.type === 'text' && c.text && c.text.length > MAX_OLD_TEXT) {
|
|
95
|
-
var firstLine = c.text.split('\\n')[0].slice(0, MAX_OLD_TEXT);
|
|
96
|
-
prunedChars += c.text.length - firstLine.length - 30;
|
|
97
|
-
newContent.push({ ...c, text: firstLine + '\\n[earlier context pruned]' });
|
|
98
|
-
} else {
|
|
99
|
-
newContent.push(c);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
pruned.push({ ...m, message: { ...m.message, content: newContent } });
|
|
103
|
-
} else {
|
|
104
|
-
pruned.push(m);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
if (prunedChars > 1000) {
|
|
109
|
-
process.stderr?.write?.('[TextPrune] Pruned ~' + Math.round(prunedChars/4) + ' tokens of old text (kept last ' + KEEP + ' turns)\\n');
|
|
110
|
-
}
|
|
111
|
-
return pruned;
|
|
112
|
-
} catch(e) {
|
|
113
|
-
return messages;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/*END_AGGRESSIVE_TEXT_PRUNE_PATCH*/`;
|
|
117
|
-
|
|
118
|
-
// The injection point: after Vd() call, before CT2() call
|
|
119
|
-
const VD_CALL_PATTERN = 'z=await Vd(F,void 0,Y);if(F=z.messages,';
|
|
120
|
-
const PATCHED_PATTERN = 'z=await Vd(F,void 0,Y);if(F=_aggressiveTextPrune(z.messages),';
|
|
121
|
-
|
|
122
|
-
function check() {
|
|
123
|
-
const src = readFileSync(CLI_PATH, 'utf8');
|
|
124
|
-
const isPatched = src.includes(PATCH_MARKER);
|
|
125
|
-
console.log(isPatched ? 'PATCHED' : 'NOT PATCHED');
|
|
126
|
-
return isPatched;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function apply() {
|
|
130
|
-
if (check()) {
|
|
131
|
-
console.log('Already patched. Use --revert first to re-apply.');
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const src = readFileSync(CLI_PATH, 'utf8');
|
|
136
|
-
|
|
137
|
-
// Verify the injection point exists
|
|
138
|
-
if (!src.includes(VD_CALL_PATTERN)) {
|
|
139
|
-
console.error('ERROR: Could not find Vd() call pattern in cli.js.');
|
|
140
|
-
console.error('Claude Code may have been updated. Pattern expected:');
|
|
141
|
-
console.error(' ' + VD_CALL_PATTERN);
|
|
142
|
-
process.exit(1);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Backup
|
|
146
|
-
if (!existsSync(BACKUP_PATH)) {
|
|
147
|
-
copyFileSync(CLI_PATH, BACKUP_PATH);
|
|
148
|
-
console.log('Backup saved to:', BACKUP_PATH);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// Inject the function at the top of the file (after the first line)
|
|
152
|
-
let patched = src;
|
|
153
|
-
const firstNewline = patched.indexOf('\n');
|
|
154
|
-
patched = patched.slice(0, firstNewline + 1) + TEXT_PRUNE_FUNCTION + '\n' + patched.slice(firstNewline + 1);
|
|
155
|
-
|
|
156
|
-
// Patch the Vd() call site to also run our text pruner
|
|
157
|
-
patched = patched.replace(VD_CALL_PATTERN, PATCHED_PATTERN);
|
|
158
|
-
|
|
159
|
-
writeFileSync(CLI_PATH, patched);
|
|
160
|
-
console.log('PATCH APPLIED successfully.');
|
|
161
|
-
console.log('');
|
|
162
|
-
console.log('Configuration (via env vars in settings.json):');
|
|
163
|
-
console.log(' CLAUDE_TEXT_PRUNE_KEEP=10 # Keep last N turns intact');
|
|
164
|
-
console.log(' CLAUDE_TEXT_PRUNE_THRESHOLD=60000 # Start pruning above this token count');
|
|
165
|
-
console.log(' CLAUDE_TEXT_PRUNE_MAX_CHARS=150 # Truncate old text to this many chars');
|
|
166
|
-
console.log('');
|
|
167
|
-
console.log('Restart Claude Code for the patch to take effect.');
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function revert() {
|
|
171
|
-
if (!existsSync(BACKUP_PATH)) {
|
|
172
|
-
console.error('No backup found at:', BACKUP_PATH);
|
|
173
|
-
console.error('Cannot revert. Reinstall with: npm install @anthropic-ai/claude-agent-sdk');
|
|
174
|
-
process.exit(1);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
copyFileSync(BACKUP_PATH, CLI_PATH);
|
|
178
|
-
console.log('REVERTED to original cli.js from backup.');
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
const arg = process.argv[2];
|
|
182
|
-
if (arg === '--revert') revert();
|
|
183
|
-
else if (arg === '--check') check();
|
|
184
|
-
else apply();
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Patch: Aggressive Text Pruning for Claude Code
|
|
4
|
+
*
|
|
5
|
+
* Extends Claude Code's micro-compaction (Vd function) to also prune old
|
|
6
|
+
* user/assistant TEXT content, not just tool results. This keeps context
|
|
7
|
+
* lean and prevents full compaction from ever being needed.
|
|
8
|
+
*
|
|
9
|
+
* What it does:
|
|
10
|
+
* After Vd() runs (pruning tool results), this patch adds a second pass
|
|
11
|
+
* that truncates old conversation text. It keeps the last N turns intact
|
|
12
|
+
* and replaces older text with brief summaries.
|
|
13
|
+
*
|
|
14
|
+
* How it works:
|
|
15
|
+
* Patches cli.js to insert a textPrune() function call after Vd().
|
|
16
|
+
* The function:
|
|
17
|
+
* 1. Counts total text tokens in the message array
|
|
18
|
+
* 2. If above threshold (configurable via CLAUDE_TEXT_PRUNE_THRESHOLD)
|
|
19
|
+
* 3. Keeps the last CLAUDE_TEXT_PRUNE_KEEP turns intact
|
|
20
|
+
* 4. Truncates older text blocks to first line + "[earlier context pruned]"
|
|
21
|
+
* 5. Preserves tool_use/tool_result structure (never breaks the API contract)
|
|
22
|
+
*
|
|
23
|
+
* Safety:
|
|
24
|
+
* - Only modifies text content blocks, never tool_use or tool_result
|
|
25
|
+
* - Always keeps last N turns fully intact
|
|
26
|
+
* - Preserves message structure (role, type, ids)
|
|
27
|
+
* - Falls back gracefully if anything fails
|
|
28
|
+
* - Can be reverted by running: node patch-aggressive-prune.mjs --revert
|
|
29
|
+
*
|
|
30
|
+
* Usage:
|
|
31
|
+
* node patch-aggressive-prune.mjs # Apply patch
|
|
32
|
+
* node patch-aggressive-prune.mjs --revert # Revert patch
|
|
33
|
+
* node patch-aggressive-prune.mjs --check # Check if patched
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
import { readFileSync, writeFileSync, copyFileSync, existsSync } from 'fs';
|
|
37
|
+
import { join, dirname } from 'path';
|
|
38
|
+
import { fileURLToPath } from 'url';
|
|
39
|
+
|
|
40
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
41
|
+
const __dirname = dirname(__filename);
|
|
42
|
+
const PROJECT_ROOT = join(__dirname, '../..');
|
|
43
|
+
const CLI_PATH = join(PROJECT_ROOT, 'node_modules/@anthropic-ai/claude-agent-sdk/cli.js');
|
|
44
|
+
const BACKUP_PATH = CLI_PATH + '.backup';
|
|
45
|
+
|
|
46
|
+
const PATCH_MARKER = '/*AGGRESSIVE_TEXT_PRUNE_PATCH*/';
|
|
47
|
+
|
|
48
|
+
// The text pruning function to inject
|
|
49
|
+
const TEXT_PRUNE_FUNCTION = `
|
|
50
|
+
/*AGGRESSIVE_TEXT_PRUNE_PATCH*/
|
|
51
|
+
function _aggressiveTextPrune(messages) {
|
|
52
|
+
try {
|
|
53
|
+
var KEEP = parseInt(process.env.CLAUDE_TEXT_PRUNE_KEEP || '10', 10);
|
|
54
|
+
var THRESHOLD = parseInt(process.env.CLAUDE_TEXT_PRUNE_THRESHOLD || '60000', 10);
|
|
55
|
+
var MAX_OLD_TEXT = parseInt(process.env.CLAUDE_TEXT_PRUNE_MAX_CHARS || '150', 10);
|
|
56
|
+
|
|
57
|
+
// Count text tokens roughly (4 chars per token)
|
|
58
|
+
var totalChars = 0;
|
|
59
|
+
for (var i = 0; i < messages.length; i++) {
|
|
60
|
+
var m = messages[i];
|
|
61
|
+
if ((m.type === 'user' || m.type === 'assistant') && Array.isArray(m.message?.content)) {
|
|
62
|
+
for (var j = 0; j < m.message.content.length; j++) {
|
|
63
|
+
var c = m.message.content[j];
|
|
64
|
+
if (c.type === 'text') totalChars += (c.text || '').length;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var totalTokensEst = Math.ceil(totalChars / 4);
|
|
70
|
+
if (totalTokensEst < THRESHOLD) return messages;
|
|
71
|
+
|
|
72
|
+
// Find turn boundaries (user message = new turn)
|
|
73
|
+
var turnStarts = [];
|
|
74
|
+
for (var i = 0; i < messages.length; i++) {
|
|
75
|
+
if (messages[i].type === 'user') turnStarts.push(i);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Keep last KEEP turns intact
|
|
79
|
+
var cutoffIdx = turnStarts.length > KEEP ? turnStarts[turnStarts.length - KEEP] : 0;
|
|
80
|
+
if (cutoffIdx === 0) return messages;
|
|
81
|
+
|
|
82
|
+
var pruned = [];
|
|
83
|
+
var prunedChars = 0;
|
|
84
|
+
for (var i = 0; i < messages.length; i++) {
|
|
85
|
+
var m = messages[i];
|
|
86
|
+
if (i >= cutoffIdx) {
|
|
87
|
+
pruned.push(m);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if ((m.type === 'user' || m.type === 'assistant') && Array.isArray(m.message?.content)) {
|
|
91
|
+
var newContent = [];
|
|
92
|
+
for (var j = 0; j < m.message.content.length; j++) {
|
|
93
|
+
var c = m.message.content[j];
|
|
94
|
+
if (c.type === 'text' && c.text && c.text.length > MAX_OLD_TEXT) {
|
|
95
|
+
var firstLine = c.text.split('\\n')[0].slice(0, MAX_OLD_TEXT);
|
|
96
|
+
prunedChars += c.text.length - firstLine.length - 30;
|
|
97
|
+
newContent.push({ ...c, text: firstLine + '\\n[earlier context pruned]' });
|
|
98
|
+
} else {
|
|
99
|
+
newContent.push(c);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
pruned.push({ ...m, message: { ...m.message, content: newContent } });
|
|
103
|
+
} else {
|
|
104
|
+
pruned.push(m);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (prunedChars > 1000) {
|
|
109
|
+
process.stderr?.write?.('[TextPrune] Pruned ~' + Math.round(prunedChars/4) + ' tokens of old text (kept last ' + KEEP + ' turns)\\n');
|
|
110
|
+
}
|
|
111
|
+
return pruned;
|
|
112
|
+
} catch(e) {
|
|
113
|
+
return messages;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/*END_AGGRESSIVE_TEXT_PRUNE_PATCH*/`;
|
|
117
|
+
|
|
118
|
+
// The injection point: after Vd() call, before CT2() call
|
|
119
|
+
const VD_CALL_PATTERN = 'z=await Vd(F,void 0,Y);if(F=z.messages,';
|
|
120
|
+
const PATCHED_PATTERN = 'z=await Vd(F,void 0,Y);if(F=_aggressiveTextPrune(z.messages),';
|
|
121
|
+
|
|
122
|
+
function check() {
|
|
123
|
+
const src = readFileSync(CLI_PATH, 'utf8');
|
|
124
|
+
const isPatched = src.includes(PATCH_MARKER);
|
|
125
|
+
console.log(isPatched ? 'PATCHED' : 'NOT PATCHED');
|
|
126
|
+
return isPatched;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
function apply() {
|
|
130
|
+
if (check()) {
|
|
131
|
+
console.log('Already patched. Use --revert first to re-apply.');
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const src = readFileSync(CLI_PATH, 'utf8');
|
|
136
|
+
|
|
137
|
+
// Verify the injection point exists
|
|
138
|
+
if (!src.includes(VD_CALL_PATTERN)) {
|
|
139
|
+
console.error('ERROR: Could not find Vd() call pattern in cli.js.');
|
|
140
|
+
console.error('Claude Code may have been updated. Pattern expected:');
|
|
141
|
+
console.error(' ' + VD_CALL_PATTERN);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Backup
|
|
146
|
+
if (!existsSync(BACKUP_PATH)) {
|
|
147
|
+
copyFileSync(CLI_PATH, BACKUP_PATH);
|
|
148
|
+
console.log('Backup saved to:', BACKUP_PATH);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Inject the function at the top of the file (after the first line)
|
|
152
|
+
let patched = src;
|
|
153
|
+
const firstNewline = patched.indexOf('\n');
|
|
154
|
+
patched = patched.slice(0, firstNewline + 1) + TEXT_PRUNE_FUNCTION + '\n' + patched.slice(firstNewline + 1);
|
|
155
|
+
|
|
156
|
+
// Patch the Vd() call site to also run our text pruner
|
|
157
|
+
patched = patched.replace(VD_CALL_PATTERN, PATCHED_PATTERN);
|
|
158
|
+
|
|
159
|
+
writeFileSync(CLI_PATH, patched);
|
|
160
|
+
console.log('PATCH APPLIED successfully.');
|
|
161
|
+
console.log('');
|
|
162
|
+
console.log('Configuration (via env vars in settings.json):');
|
|
163
|
+
console.log(' CLAUDE_TEXT_PRUNE_KEEP=10 # Keep last N turns intact');
|
|
164
|
+
console.log(' CLAUDE_TEXT_PRUNE_THRESHOLD=60000 # Start pruning above this token count');
|
|
165
|
+
console.log(' CLAUDE_TEXT_PRUNE_MAX_CHARS=150 # Truncate old text to this many chars');
|
|
166
|
+
console.log('');
|
|
167
|
+
console.log('Restart Claude Code for the patch to take effect.');
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function revert() {
|
|
171
|
+
if (!existsSync(BACKUP_PATH)) {
|
|
172
|
+
console.error('No backup found at:', BACKUP_PATH);
|
|
173
|
+
console.error('Cannot revert. Reinstall with: npm install @anthropic-ai/claude-agent-sdk');
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
copyFileSync(BACKUP_PATH, CLI_PATH);
|
|
178
|
+
console.log('REVERTED to original cli.js from backup.');
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const arg = process.argv[2];
|
|
182
|
+
if (arg === '--revert') revert();
|
|
183
|
+
else if (arg === '--check') check();
|
|
184
|
+
else apply();
|
package/.claude/mcp.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mcpServers": {
|
|
3
|
-
"flow-nexus": {
|
|
4
|
-
"command": "node",
|
|
5
|
-
"args": ["/workspaces/flow-cloud/mcp/flow-nexus-sse/mcp-server-supabase.js"],
|
|
6
|
-
"env": {
|
|
7
|
-
"SUPABASE_URL": "${SUPABASE_URL}",
|
|
8
|
-
"SUPABASE_ANON_KEY": "${SUPABASE_ANON_KEY}",
|
|
9
|
-
"NODE_NO_WARNINGS": "1"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"flow-nexus": {
|
|
4
|
+
"command": "node",
|
|
5
|
+
"args": ["/workspaces/flow-cloud/mcp/flow-nexus-sse/mcp-server-supabase.js"],
|
|
6
|
+
"env": {
|
|
7
|
+
"SUPABASE_URL": "${SUPABASE_URL}",
|
|
8
|
+
"SUPABASE_ANON_KEY": "${SUPABASE_ANON_KEY}",
|
|
9
|
+
"NODE_NO_WARNINGS": "1"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
13
|
}
|
package/.claude/settings.json
CHANGED
|
@@ -179,8 +179,8 @@
|
|
|
179
179
|
]
|
|
180
180
|
},
|
|
181
181
|
"attribution": {
|
|
182
|
-
"commit": "Co-Authored-By:
|
|
183
|
-
"pr": "\ud83e\udd16 Generated with [claude-flow](https://github.com/
|
|
182
|
+
"commit": "Co-Authored-By: moflo <noreply@motailz.com>",
|
|
183
|
+
"pr": "\ud83e\udd16 Generated with [claude-flow](https://github.com/eric-cielo/moflo)"
|
|
184
184
|
},
|
|
185
185
|
"claudeFlow": {
|
|
186
186
|
"version": "3.5.2",
|