claude-flow-novice 2.6.0 → 2.9.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/cfn-dev-team/coordinators/README.md +42 -0
- package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +440 -0
- package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/cto-agent.md +154 -187
- package/.claude/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +50 -0
- package/.claude/agents/{product-owner-team → cfn-dev-team/coordinators}/product-owner-agent.md +7 -40
- package/.claude/agents/{cfn-loop → cfn-dev-team/coordinators}/product-owner.md +73 -18
- package/.claude/agents/cfn-dev-team/developers/README.md +69 -0
- package/.claude/agents/cfn-dev-team/developers/backend-dev.md +77 -0
- package/.claude/agents/{core-agents → cfn-dev-team/developers}/coder.md +132 -27
- package/.claude/agents/cfn-dev-team/developers/react-frontend-engineer.md +121 -0
- package/.claude/agents/{frontend → cfn-dev-team/developers}/state-architect.md +1 -0
- package/.claude/agents/{frontend → cfn-dev-team/developers}/ui-designer.md +1 -0
- package/.claude/agents/cfn-dev-team/reviewers/README.md +58 -0
- package/.claude/agents/{analysis → cfn-dev-team/reviewers}/code-quality-validator.md +9 -18
- package/.claude/agents/{core-agents → cfn-dev-team/reviewers}/reviewer.md +62 -23
- package/.claude/agents/cfn-dev-team/testers/README.md +94 -0
- package/.claude/agents/{testing → cfn-dev-team/testers}/e2e/playwright-agent.md +2 -21
- package/.claude/agents/{testing → cfn-dev-team/testers}/interaction-tester.md +2 -21
- package/.claude/agents/{testing → cfn-dev-team/testers}/playwright-tester.md +1 -1
- package/.claude/agents/cfn-dev-team/testers/tester.md +139 -0
- package/.claude/agents/cfn-dev-team/testers/unit/tdd-london-swarm.md +49 -0
- package/.claude/agents/cfn-dev-team/testers/validation/production-validator.md +33 -0
- package/.claude/cfn-data/cfn-loop.db +0 -0
- package/.claude/cfn-data/cfn_loop_logs.db +0 -0
- package/.claude/commands/{CFN_COORDINATOR_PARAMETERS.md → cfn/CFN_COORDINATOR_PARAMETERS.md} +22 -22
- package/.claude/commands/{cfn-loop-epic.md → cfn/cfn-loop-epic.md} +6 -6
- package/.claude/commands/{cfn-loop-single.md → cfn/cfn-loop-single.md} +9 -9
- package/.claude/commands/{cfn-loop-sprints.md → cfn/cfn-loop-sprints.md} +1 -1
- package/.claude/commands/{cfn-loop.md → cfn/cfn-loop.md} +9 -9
- package/.claude/commands/cfn/cfn-mode.md +20 -0
- package/.claude/commands/{cfn-optimize-agents.md → cfn/cfn-optimize-agents.md} +1 -1
- package/.claude/commands/{context-curate.md → cfn/context-curate.md} +2 -2
- package/.claude/commands/{context-inject.md → cfn/context-inject.md} +3 -3
- package/.claude/commands/{context-reflect.md → cfn/context-reflect.md} +1 -1
- package/.claude/commands/{context-stats.md → cfn/context-stats.md} +1 -1
- package/.claude/commands/{list-agents-rebuild.md → cfn/list-agents-rebuild.md} +12 -12
- package/.claude/commands/cfn/write-plan.md +104 -0
- package/.claude/hooks/cfn-BACKUP_USAGE.md +243 -0
- package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +79 -0
- package/.claude/hooks/cfn-post-edit.sh +21 -0
- package/.claude/hooks/cfn-pre-edit-backup.sh +71 -0
- package/.claude/hooks/cfn-restore-from-backup.sh +37 -0
- package/.claude/skills/cfn-loop-orchestration/README.md +41 -0
- package/.claude/skills/cfn-redis-coordination/README.md +65 -0
- package/.claude/skills/cfn-webapp-testing/README.md +142 -0
- package/CFN-CLAUDE.md +776 -0
- package/README.md +598 -251
- package/dist/agents/agent-loader.js +146 -165
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/cli/agent-command.js +2 -0
- package/dist/cli/agent-command.js.map +1 -1
- package/dist/cli/agent-definition-parser.js +7 -0
- package/dist/cli/agent-definition-parser.js.map +1 -1
- package/dist/cli/agent-executor.js +145 -11
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-prompt-builder.js +81 -1
- package/dist/cli/agent-prompt-builder.js.map +1 -1
- package/dist/cli/agent-spawn.js +10 -1
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/anthropic-client.js +192 -13
- package/dist/cli/anthropic-client.js.map +1 -1
- package/dist/cli/cfn-context.js +150 -0
- package/dist/cli/cfn-context.js.map +1 -1
- package/dist/cli/cfn-fork.js +159 -0
- package/dist/cli/cfn-fork.js.map +1 -0
- package/dist/cli/cli-agent-context.js +8 -3
- package/dist/cli/cli-agent-context.js.map +1 -1
- package/dist/cli/conversation-fork.js +201 -0
- package/dist/cli/conversation-fork.js.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init-command.js +20 -0
- package/dist/cli/init-command.js.map +1 -0
- package/dist/cli/tool-definitions.js +263 -0
- package/dist/cli/tool-definitions.js.map +1 -0
- package/dist/cli/tool-executor.js +247 -0
- package/dist/cli/tool-executor.js.map +1 -0
- package/dist/hello.js +8 -0
- package/dist/hello.js.map +1 -0
- package/package.json +26 -12
- package/scripts/README.md +68 -0
- package/scripts/cfn-intervention-example.sh +21 -0
- package/scripts/init-project.js +148 -0
- package/scripts/migrate-test-infrastructure.sh +40 -0
- package/scripts/restructure-cfn-namespace.sh +161 -0
- package/scripts/validate-test-migration.sh +49 -0
- package/scripts/verify-no-secrets.sh +55 -0
- package/.claude/SLASH-COMMANDS-READY.md +0 -53
- package/.claude/WORKING-SETUP.md +0 -67
- package/.claude/ace-system-overview.md +0 -524
- package/.claude/agent-principles/agent-template.md +0 -96
- package/.claude/agents/CLAUDE.md +0 -995
- package/.claude/agents/README-VALIDATION.md +0 -243
- package/.claude/agents/agent-principles/README.md +0 -226
- package/.claude/agents/agent-principles/agent-type-guidelines.md +0 -465
- package/.claude/agents/agent-principles/format-selection.md +0 -224
- package/.claude/agents/agent-principles/phase4-template-optimization.md +0 -494
- package/.claude/agents/agent-principles/prompt-engineering.md +0 -501
- package/.claude/agents/agent-principles/quality-metrics.md +0 -375
- package/.claude/agents/analysis/code-analyzer.md +0 -192
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -133
- package/.claude/agents/analysis/perf-analyzer.md +0 -230
- package/.claude/agents/architecture/system-architect.md +0 -161
- package/.claude/agents/architecture/system-architect.md.backup +0 -603
- package/.claude/agents/code-booster.md +0 -131
- package/.claude/agents/consensus/consensus-builder.md +0 -159
- package/.claude/agents/consensus/crdt-synchronizer.md +0 -192
- package/.claude/agents/consensus/performance-benchmarker.md +0 -101
- package/.claude/agents/consensus/quorum-manager.md +0 -168
- package/.claude/agents/consensus/raft-manager.md +0 -106
- package/.claude/agents/consensus/security-manager.md +0 -107
- package/.claude/agents/context/context-curator.md +0 -84
- package/.claude/agents/context/context-reflector.md +0 -81
- package/.claude/agents/context-curator.md +0 -167
- package/.claude/agents/context-reflector.md +0 -65
- package/.claude/agents/core-agents/analyst.md +0 -170
- package/.claude/agents/core-agents/architect.md +0 -200
- package/.claude/agents/core-agents/base-template-generator.md +0 -188
- package/.claude/agents/core-agents/cfn-loop-coordinator.md +0 -134
- package/.claude/agents/core-agents/code-quality-validator.md +0 -149
- package/.claude/agents/core-agents/context-curator.md +0 -452
- package/.claude/agents/core-agents/context-reflector.md +0 -273
- package/.claude/agents/core-agents/coordinator.md +0 -182
- package/.claude/agents/core-agents/cost-savings-cfn-loop-coordinator.md +0 -235
- package/.claude/agents/core-agents/cost-savings-coordinator.md +0 -167
- package/.claude/agents/core-agents/performance-benchmarker.md +0 -148
- package/.claude/agents/core-agents/planner.md +0 -174
- package/.claude/agents/core-agents/security-manager.md +0 -111
- package/.claude/agents/core-agents/tester.md +0 -170
- package/.claude/agents/custom/agent-builder.md +0 -637
- package/.claude/agents/development/backend/dev-backend-api.md +0 -139
- package/.claude/agents/development/backend-dev.md +0 -165
- package/.claude/agents/development/npm-package-specialist.md +0 -347
- package/.claude/agents/devops/devops-engineer.md +0 -148
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -98
- package/.claude/agents/documentation/api-docs.md +0 -103
- package/.claude/agents/frontend/README.md +0 -640
- package/.claude/agents/frontend/interaction-tester.md +0 -139
- package/.claude/agents/frontend/react-frontend-engineer.md +0 -9
- package/.claude/agents/github/github-commit-agent.md +0 -118
- package/.claude/agents/goal/goal-planner.md +0 -183
- package/.claude/agents/personas/accessibility-advocate-persona.md +0 -107
- package/.claude/agents/planning-team/api-designer-persona.md +0 -147
- package/.claude/agents/planning-team/security-architect-persona.md +0 -190
- package/.claude/agents/planning-team/system-architect-persona.md +0 -190
- package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +0 -161
- package/.claude/agents/product-owner-team/power-user-persona.md +0 -182
- package/.claude/agents/security/security-specialist-existing.md +0 -154
- package/.claude/agents/security/security-specialist.md +0 -185
- package/.claude/agents/sparc/architecture.md +0 -149
- package/.claude/agents/sparc/pseudocode.md +0 -159
- package/.claude/agents/sparc/refinement.md +0 -106
- package/.claude/agents/sparc/specification.md +0 -157
- package/.claude/agents/specialized/cli-agent-optimizer.md +0 -122
- package/.claude/agents/specialized/code-booster.md +0 -143
- package/.claude/agents/specialized/devops-engineer.md +0 -150
- package/.claude/agents/specialized/mobile/mobile-dev.md +0 -210
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -191
- package/.claude/agents/specialized/rust-developer.md +0 -166
- package/.claude/agents/specialized/rust-enterprise-developer.md +0 -144
- package/.claude/agents/specialized/rust-mvp-developer.md +0 -142
- package/.claude/agents/testing/production-validator.md +0 -179
- package/.claude/agents/testing/tdd-london-swarm.md +0 -209
- package/.claude/agents/testing/unit/tdd-london-swarm.md +0 -43
- package/.claude/agents/testing/validation/production-validator.md +0 -43
- package/.claude/agents/validate-agent.js +0 -841
- package/.claude/agents-ignore/cfn-coordinator-enterprise.md +0 -1303
- package/.claude/agents-ignore/cfn-coordinator-mvp.md +0 -942
- package/.claude/agents-ignore/cfn-coordinator-standard.md +0 -1062
- package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator-enhanced.md +0 -145
- package/.claude/agents-ignore/deprecated-coordinators/adaptive-coordinator.md +0 -161
- package/.claude/agents-ignore/deprecated-coordinators/blocking-coordinator-example.md +0 -732
- package/.claude/agents-ignore/deprecated-coordinators/byzantine-coordinator.md +0 -94
- package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-enterprise.md +0 -323
- package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-mvp.md +0 -157
- package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-standard.md +0 -229
- package/.claude/agents-ignore/deprecated-coordinators/cfn-coordinator-unified.md +0 -149
- package/.claude/agents-ignore/deprecated-coordinators/coordinator-hybrid.md +0 -231
- package/.claude/agents-ignore/deprecated-coordinators/gossip-coordinator.md +0 -165
- package/.claude/agents-ignore/deprecated-coordinators/hierarchical-coordinator.md +0 -91
- package/.claude/agents-ignore/deprecated-coordinators/mesh-coordinator.md +0 -131
- package/.claude/agents-ignore/deprecated-coordinators/task-coordinator.md +0 -105
- package/.claude/agents-ignore/deprecated-coordinators/test-coordinator.md +0 -141
- package/.claude/api-configs/config-current-zai-config.env +0 -62
- package/.claude/api-configs/config-test-zai-config.env +0 -62
- package/.claude/api-configs/env-backups/before-anthropic-20251020-025404.env +0 -62
- package/.claude/api-configs/env-backups/before-restore-20251020-025431.env +0 -62
- package/.claude/architecture/mesh-get-polling-design.md +0 -87
- package/.claude/architecture/mesh-get-polling-implementation.md +0 -89
- package/.claude/architecture/typescript-microservices.md +0 -50
- package/.claude/artifacts/reflection-merge-logs/cli-agent-spawning-v2.5.2-merge-report.md +0 -61
- package/.claude/cfn-loop-rules.md +0 -73
- package/.claude/cfn-mode-patterns.md +0 -571
- package/.claude/claude-md-backup-pre-skills.md +0 -15
- package/.claude/commands/agents/README.md +0 -10
- package/.claude/commands/agents/agent-capabilities.md +0 -21
- package/.claude/commands/agents/agent-coordination.md +0 -28
- package/.claude/commands/agents/agent-spawning.md +0 -28
- package/.claude/commands/agents/agent-types.md +0 -26
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/analysis/README.md +0 -9
- package/.claude/commands/analysis/bottleneck-detect.md +0 -162
- package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
- package/.claude/commands/analysis/performance-report.md +0 -25
- package/.claude/commands/analysis/token-efficiency.md +0 -45
- package/.claude/commands/analysis/token-usage.md +0 -25
- package/.claude/commands/automation/README.md +0 -9
- package/.claude/commands/automation/auto-agent.md +0 -122
- package/.claude/commands/automation/self-healing.md +0 -106
- package/.claude/commands/automation/session-memory.md +0 -90
- package/.claude/commands/automation/smart-agents.md +0 -73
- package/.claude/commands/automation/smart-spawn.md +0 -25
- package/.claude/commands/automation/workflow-select.md +0 -25
- package/.claude/commands/claude-md.js +0 -237
- package/.claude/commands/claude-soul.js +0 -28
- package/.claude/commands/cli-integration.js +0 -216
- package/.claude/commands/coordination/README.md +0 -9
- package/.claude/commands/coordination/agent-spawn.md +0 -25
- package/.claude/commands/coordination/coordination-system.md +0 -88
- package/.claude/commands/coordination/init.md +0 -44
- package/.claude/commands/coordination/orchestrate.md +0 -43
- package/.claude/commands/coordination/spawn.md +0 -45
- package/.claude/commands/coordination/swarm-init.md +0 -85
- package/.claude/commands/coordination/task-orchestrate.md +0 -25
- package/.claude/commands/github/README.md +0 -11
- package/.claude/commands/github/code-review-swarm.md +0 -514
- package/.claude/commands/github/code-review.md +0 -25
- package/.claude/commands/github/github-modes.md +0 -147
- package/.claude/commands/github/github-swarm.md +0 -121
- package/.claude/commands/github/issue-tracker.md +0 -292
- package/.claude/commands/github/issue-triage.md +0 -25
- package/.claude/commands/github/multi-repo-swarm.md +0 -519
- package/.claude/commands/github/pr-enhance.md +0 -26
- package/.claude/commands/github/pr-manager.md +0 -170
- package/.claude/commands/github/project-board-sync.md +0 -471
- package/.claude/commands/github/release-manager.md +0 -338
- package/.claude/commands/github/release-swarm.md +0 -544
- package/.claude/commands/github/repo-analyze.md +0 -25
- package/.claude/commands/github/repo-architect.md +0 -367
- package/.claude/commands/github/swarm-issue.md +0 -482
- package/.claude/commands/github/swarm-pr.md +0 -285
- package/.claude/commands/github/sync-coordinator.md +0 -301
- package/.claude/commands/github/workflow-automation.md +0 -442
- package/.claude/commands/github.js +0 -638
- package/.claude/commands/hive-mind/README.md +0 -17
- package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-init.md +0 -18
- package/.claude/commands/hive-mind/hive-mind-memory.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -21
- package/.claude/commands/hive-mind/hive-mind-status.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-stop.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
- package/.claude/commands/hive-mind/hive-mind.md +0 -27
- package/.claude/commands/hooks/README.md +0 -11
- package/.claude/commands/hooks/overview.md +0 -58
- package/.claude/commands/hooks/post-edit.md +0 -117
- package/.claude/commands/hooks/post-task.md +0 -112
- package/.claude/commands/hooks/pre-edit.md +0 -113
- package/.claude/commands/hooks/pre-task.md +0 -111
- package/.claude/commands/hooks/session-end.md +0 -118
- package/.claude/commands/hooks/session-start.md +0 -9
- package/.claude/commands/hooks/setup.md +0 -103
- package/.claude/commands/hooks.js +0 -651
- package/.claude/commands/index.js +0 -119
- package/.claude/commands/memory/README.md +0 -9
- package/.claude/commands/memory/memory-bank.md +0 -58
- package/.claude/commands/memory/memory-persist.md +0 -25
- package/.claude/commands/memory/memory-search.md +0 -25
- package/.claude/commands/memory/memory-usage.md +0 -25
- package/.claude/commands/memory/neural.md +0 -47
- package/.claude/commands/memory/usage.md +0 -46
- package/.claude/commands/monitoring/README.md +0 -9
- package/.claude/commands/monitoring/agent-metrics.md +0 -25
- package/.claude/commands/monitoring/agents.md +0 -44
- package/.claude/commands/monitoring/real-time-view.md +0 -25
- package/.claude/commands/monitoring/status.md +0 -46
- package/.claude/commands/monitoring/swarm-monitor.md +0 -25
- package/.claude/commands/neural.js +0 -572
- package/.claude/commands/optimization/README.md +0 -9
- package/.claude/commands/optimization/auto-topology.md +0 -62
- package/.claude/commands/optimization/cache-manage.md +0 -25
- package/.claude/commands/optimization/parallel-execute.md +0 -25
- package/.claude/commands/optimization/parallel-execution.md +0 -50
- package/.claude/commands/optimization/topology-optimize.md +0 -25
- package/.claude/commands/pair/README.md +0 -261
- package/.claude/commands/pair/commands.md +0 -546
- package/.claude/commands/pair/config.md +0 -510
- package/.claude/commands/pair/examples.md +0 -512
- package/.claude/commands/pair/modes.md +0 -348
- package/.claude/commands/pair/session.md +0 -407
- package/.claude/commands/pair/start.md +0 -209
- package/.claude/commands/parse-epic.js +0 -180
- package/.claude/commands/performance.js +0 -582
- package/.claude/commands/register-all-commands.js +0 -320
- package/.claude/commands/register-claude-md.js +0 -82
- package/.claude/commands/register-claude-soul.js +0 -80
- package/.claude/commands/sparc/analyzer.md +0 -52
- package/.claude/commands/sparc/architect.md +0 -53
- package/.claude/commands/sparc/batch-executor.md +0 -54
- package/.claude/commands/sparc/coder.md +0 -54
- package/.claude/commands/sparc/debugger.md +0 -54
- package/.claude/commands/sparc/designer.md +0 -53
- package/.claude/commands/sparc/documenter.md +0 -54
- package/.claude/commands/sparc/innovator.md +0 -54
- package/.claude/commands/sparc/memory-manager.md +0 -54
- package/.claude/commands/sparc/optimizer.md +0 -54
- package/.claude/commands/sparc/orchestrator.md +0 -132
- package/.claude/commands/sparc/researcher.md +0 -54
- package/.claude/commands/sparc/reviewer.md +0 -54
- package/.claude/commands/sparc/sparc-modes.md +0 -174
- package/.claude/commands/sparc/swarm-coordinator.md +0 -54
- package/.claude/commands/sparc/tdd.md +0 -54
- package/.claude/commands/sparc/tester.md +0 -54
- package/.claude/commands/sparc/workflow-manager.md +0 -54
- package/.claude/commands/sparc.js +0 -110
- package/.claude/commands/stream-chain/pipeline.md +0 -121
- package/.claude/commands/stream-chain/run.md +0 -70
- package/.claude/commands/swarm/README.md +0 -15
- package/.claude/commands/swarm/analysis.md +0 -95
- package/.claude/commands/swarm/development.md +0 -96
- package/.claude/commands/swarm/examples.md +0 -168
- package/.claude/commands/swarm/maintenance.md +0 -102
- package/.claude/commands/swarm/optimization.md +0 -117
- package/.claude/commands/swarm/research.md +0 -136
- package/.claude/commands/swarm/swarm-analysis.md +0 -8
- package/.claude/commands/swarm/swarm-background.md +0 -8
- package/.claude/commands/swarm/swarm-init.md +0 -19
- package/.claude/commands/swarm/swarm-modes.md +0 -8
- package/.claude/commands/swarm/swarm-monitor.md +0 -8
- package/.claude/commands/swarm/swarm-spawn.md +0 -19
- package/.claude/commands/swarm/swarm-status.md +0 -8
- package/.claude/commands/swarm/swarm-strategies.md +0 -8
- package/.claude/commands/swarm/swarm.md +0 -27
- package/.claude/commands/swarm/testing.md +0 -131
- package/.claude/commands/swarm.js +0 -423
- package/.claude/commands/testing/playwright-e2e.md +0 -288
- package/.claude/commands/training/README.md +0 -9
- package/.claude/commands/training/model-update.md +0 -25
- package/.claude/commands/training/neural-patterns.md +0 -74
- package/.claude/commands/training/neural-train.md +0 -25
- package/.claude/commands/training/pattern-learn.md +0 -25
- package/.claude/commands/training/specialization.md +0 -63
- package/.claude/commands/truth/start.md +0 -143
- package/.claude/commands/validate-commands.js +0 -223
- package/.claude/commands/verify/check.md +0 -50
- package/.claude/commands/verify/start.md +0 -128
- package/.claude/commands/workflow.js +0 -606
- package/.claude/commands/workflows/README.md +0 -9
- package/.claude/commands/workflows/development.md +0 -78
- package/.claude/commands/workflows/research.md +0 -63
- package/.claude/commands/workflows/workflow-create.md +0 -25
- package/.claude/commands/workflows/workflow-execute.md +0 -25
- package/.claude/commands/workflows/workflow-export.md +0 -25
- package/.claude/coordinator-feedback-pattern.md +0 -326
- package/.claude/coordinator-patterns.md +0 -126
- package/.claude/core/agent-manager.js +0 -80
- package/.claude/core/agent-manager.js.map +0 -1
- package/.claude/core/config.js +0 -1221
- package/.claude/core/config.js.map +0 -1
- package/.claude/core/event-bus.js +0 -136
- package/.claude/core/event-bus.js.map +0 -1
- package/.claude/core/index.js +0 -6
- package/.claude/core/index.js.map +0 -1
- package/.claude/core/json-persistence.js +0 -112
- package/.claude/core/json-persistence.js.map +0 -1
- package/.claude/core/logger.js +0 -245
- package/.claude/core/logger.js.map +0 -1
- package/.claude/core/orchestrator-fixed.js +0 -236
- package/.claude/core/orchestrator-fixed.js.map +0 -1
- package/.claude/core/orchestrator.js +0 -1136
- package/.claude/core/orchestrator.js.map +0 -1
- package/.claude/core/persistence.js +0 -185
- package/.claude/core/persistence.js.map +0 -1
- package/.claude/core/project-manager.js +0 -80
- package/.claude/core/project-manager.js.map +0 -1
- package/.claude/core/slash-command.js +0 -24
- package/.claude/core/version.js +0 -35
- package/.claude/core/version.js.map +0 -1
- package/.claude/helpers/checkpoint-manager.sh +0 -251
- package/.claude/helpers/github-safe.js +0 -106
- package/.claude/helpers/github-setup.sh +0 -28
- package/.claude/helpers/quick-start.sh +0 -19
- package/.claude/helpers/setup-mcp.sh +0 -18
- package/.claude/helpers/standard-checkpoint-hooks.sh +0 -179
- package/.claude/hooks.json +0 -21
- package/.claude/logs/sprint1-hybrid-routing-v2-decision.json +0 -18
- package/.claude/redis-agent-dependencies.md +0 -494
- package/.claude/root-claude-distribute/CLAUDE.md +0 -428
- package/.claude/settings.json +0 -129
- package/.claude/settings.local.json +0 -33
- package/.claude/skills/CFN-LOOP-VALIDATION.md +0 -202
- package/.claude/skills/REDIS-COORDINATION.md +0 -187
- package/.claude/skills/SKILL.md +0 -229
- package/.claude/skills/ace-system/SKILL.md +0 -364
- package/.claude/skills/ace-system/add-bullet.sh +0 -145
- package/.claude/skills/ace-system/invoke-context-curate.sh +0 -192
- package/.claude/skills/ace-system/invoke-context-inject.sh +0 -166
- package/.claude/skills/ace-system/invoke-context-query.sh +0 -127
- package/.claude/skills/ace-system/invoke-context-reflect.sh +0 -98
- package/.claude/skills/ace-system/invoke-context-stats.sh +0 -188
- package/.claude/skills/ace-system/log-merge.sh +0 -67
- package/.claude/skills/ace-system/query-reflections.sh +0 -35
- package/.claude/skills/ace-system/store-reflection.sh +0 -149
- package/.claude/skills/ace-system/test-ace-skill.sh +0 -312
- package/.claude/skills/ace-system/update-reflection.sh +0 -41
- package/.claude/skills/agent-execution/execute-agent.sh +0 -126
- package/.claude/skills/agent-spawning/SKILL.md +0 -135
- package/.claude/skills/agent-spawning/agent-selection-guide.md +0 -814
- package/.claude/skills/agent-spawning/check-dependencies.sh +0 -30
- package/.claude/skills/agent-spawning/spawn-agent.sh +0 -263
- package/.claude/skills/agent-spawning/spawn-templates.sh +0 -613
- package/.claude/skills/analytics/description-refinement-guide.md +0 -164
- package/.claude/skills/analytics/log-skill-invocation.js +0 -122
- package/.claude/skills/analytics/run-production-criteria-tests.sh +0 -126
- package/.claude/skills/analytics/skill-analytics-dashboard.js +0 -113
- package/.claude/skills/analytics/skill-invocation-hook.sh +0 -28
- package/.claude/skills/analytics/skill-invocations.sql +0 -58
- package/.claude/skills/analytics/test-corpus.json +0 -32
- package/.claude/skills/analytics/test-data-generator.js +0 -115
- package/.claude/skills/analytics/test-manual-override-rate.js +0 -285
- package/.claude/skills/analytics/validate-skill-selection.js +0 -188
- package/.claude/skills/cfn-loop-validation/SKILL.md +0 -263
- package/.claude/skills/cfn-loop-validation/check-dependencies.sh +0 -31
- package/.claude/skills/cfn-loop-validation/config.json +0 -161
- package/.claude/skills/cfn-loop-validation/consensus-calculator.js +0 -477
- package/.claude/skills/cfn-loop-validation/evidence-chain.sql +0 -163
- package/.claude/skills/cfn-loop-validation/examples/README.md +0 -453
- package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +0 -234
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +0 -132
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +0 -115
- package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +0 -186
- package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +0 -252
- package/.claude/skills/cfn-loop-validation/validate-iteration.sh +0 -134
- package/.claude/skills/cfn-loop-validation.sh +0 -70
- package/.claude/skills/config-management/SKILL.md +0 -34
- package/.claude/skills/config-management/check-dependencies.sh +0 -56
- package/.claude/skills/config-management/config.json +0 -32
- package/.claude/skills/config-management/manage-config.sh +0 -113
- package/.claude/skills/consensus-calculator.js +0 -45
- package/.claude/skills/event-bus/SKILL.md +0 -412
- package/.claude/skills/event-bus/config.json +0 -111
- package/.claude/skills/event-bus/eventbus-wrapper.cjs +0 -69
- package/.claude/skills/event-bus/invoke-event-publish.sh +0 -147
- package/.claude/skills/event-bus/invoke-event-subscribe.sh +0 -171
- package/.claude/skills/event-bus/invoke-lifecycle-track.sh +0 -201
- package/.claude/skills/event-bus/test-event-bus.sh +0 -280
- package/.claude/skills/evidence-chain.sql +0 -66
- package/.claude/skills/fleet-manager/SKILL.md +0 -412
- package/.claude/skills/fleet-manager/config.json +0 -60
- package/.claude/skills/fleet-manager/invoke-fleet-allocate.sh +0 -182
- package/.claude/skills/fleet-manager/invoke-fleet-balance.sh +0 -239
- package/.claude/skills/fleet-manager/invoke-fleet-metrics.sh +0 -193
- package/.claude/skills/fleet-manager/invoke-fleet-register.sh +0 -124
- package/.claude/skills/fleet-manager/test-fleet-manager.sh +0 -345
- package/.claude/skills/hook-pipeline/SKILL.md +0 -148
- package/.claude/skills/hook-pipeline/auto-resolve.sh +0 -66
- package/.claude/skills/hook-pipeline/check-dependencies.sh +0 -40
- package/.claude/skills/hook-pipeline/feedback-resolver.sh +0 -452
- package/.claude/skills/hook-pipeline/post-edit-handler.sh +0 -154
- package/.claude/skills/hook-pipeline/security-scan.json +0 -60
- package/.claude/skills/hook-pipeline/security-scanner.sh +0 -121
- package/.claude/skills/hook-pipeline/test-root-warning-resolution.sh +0 -148
- package/.claude/skills/hybrid-routing/SKILL.md +0 -46
- package/.claude/skills/hybrid-routing/check-dependencies.sh +0 -52
- package/.claude/skills/hybrid-routing/config.json +0 -26
- package/.claude/skills/hybrid-routing/spawn-worker.sh +0 -44
- package/.claude/skills/process-lifecycle/SKILL.md +0 -39
- package/.claude/skills/process-lifecycle/check-dependencies.sh +0 -58
- package/.claude/skills/process-lifecycle/config.json +0 -39
- package/.claude/skills/process-lifecycle/process-manager.sh +0 -144
- package/.claude/skills/redis-coordination/AGENT_LOGGING.md +0 -280
- package/.claude/skills/redis-coordination/BZPOPMIN_FIX_SUMMARY.md +0 -209
- package/.claude/skills/redis-coordination/HEARTBEAT.md +0 -57
- package/.claude/skills/redis-coordination/HEARTBEAT_MONITORING.md +0 -267
- package/.claude/skills/redis-coordination/README.md +0 -64
- package/.claude/skills/redis-coordination/SECURITY_REVIEW.md +0 -25
- package/.claude/skills/redis-coordination/SHUTDOWN_HANDLING.md +0 -164
- package/.claude/skills/redis-coordination/SKILL.md +0 -118
- package/.claude/skills/redis-coordination/agent-log.sh +0 -124
- package/.claude/skills/redis-coordination/agent-recovery.sh +0 -75
- package/.claude/skills/redis-coordination/cancel-swarm.sh +0 -221
- package/.claude/skills/redis-coordination/cfn-loop-relaunch.sh +0 -29
- package/.claude/skills/redis-coordination/check-dependencies.sh +0 -32
- package/.claude/skills/redis-coordination/complete-swarm.sh +0 -75
- package/.claude/skills/redis-coordination/config.json +0 -61
- package/.claude/skills/redis-coordination/examples/README.md +0 -73
- package/.claude/skills/redis-coordination/examples/grafana-dashboard.json +0 -352
- package/.claude/skills/redis-coordination/examples/hierarchical-pattern.sh +0 -127
- package/.claude/skills/redis-coordination/examples/mesh-pattern.sh +0 -171
- package/.claude/skills/redis-coordination/examples/timeout-handling.sh +0 -227
- package/.claude/skills/redis-coordination/examples/waiting-mode-pattern.sh +0 -239
- package/.claude/skills/redis-coordination/get-agent-timeout.sh +0 -177
- package/.claude/skills/redis-coordination/heartbeat-functions.sh +0 -137
- package/.claude/skills/redis-coordination/heartbeat-protocol.md +0 -106
- package/.claude/skills/redis-coordination/heartbeat.sh +0 -126
- package/.claude/skills/redis-coordination/init-swarm.sh +0 -148
- package/.claude/skills/redis-coordination/invoke-redis-pattern.sh +0 -220
- package/.claude/skills/redis-coordination/invoke-waiting-mode.sh +0 -417
- package/.claude/skills/redis-coordination/list-active-swarms.sh +0 -147
- package/.claude/skills/redis-coordination/metrics-export.sh +0 -674
- package/.claude/skills/redis-coordination/metrics-schema.json +0 -66
- package/.claude/skills/redis-coordination/metrics-storage.md +0 -31
- package/.claude/skills/redis-coordination/monitor-heartbeats.sh +0 -101
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh +0 -993
- package/.claude/skills/redis-coordination/orchestrate-cfn-loop.sh.backup-1760949407 +0 -933
- package/.claude/skills/redis-coordination/phase4-wake-queue-test-report.md +0 -82
- package/.claude/skills/redis-coordination/priority-wake-mechanism.md +0 -75
- package/.claude/skills/redis-coordination/priority_wake.py +0 -134
- package/.claude/skills/redis-coordination/query-dlq.sh +0 -162
- package/.claude/skills/redis-coordination/redis-pattern.sh +0 -619
- package/.claude/skills/redis-coordination/send-heartbeat.sh +0 -73
- package/.claude/skills/redis-coordination/store-epic-context.sh +0 -123
- package/.claude/skills/redis-coordination/test-bzpopmin-fix.sh +0 -274
- package/.claude/skills/redis-coordination/test-cancel-swarm.sh +0 -276
- package/.claude/skills/redis-coordination/test-dlq.sh +0 -129
- package/.claude/skills/redis-coordination/test-iteration-feedback.sh +0 -320
- package/.claude/skills/redis-coordination/test-orchestrator.sh +0 -224
- package/.claude/skills/redis-coordination/test-priority-wake-phase4-unix.sh +0 -148
- package/.claude/skills/redis-coordination/test-priority-wake-phase4.sh +0 -163
- package/.claude/skills/redis-coordination/test-priority-wake.sh +0 -138
- package/.claude/skills/redis-coordination/test-quick-fix.sh +0 -81
- package/.claude/skills/redis-coordination/test-quorum-absolute.sh +0 -45
- package/.claude/skills/redis-coordination/test-quorum-fallback.sh +0 -68
- package/.claude/skills/redis-coordination/test-quorum-percentage.sh +0 -56
- package/.claude/skills/redis-coordination/test-quorum-with-retry.sh +0 -81
- package/.claude/skills/redis-coordination/test-quorum.sh +0 -57
- package/.claude/skills/redis-coordination/test-shutdown-handling.sh +0 -187
- package/.claude/skills/redis-coordination/test-shutdown.sh +0 -160
- package/.claude/skills/redis-coordination/test-utils-unix.sh +0 -97
- package/.claude/skills/redis-coordination/test-utils.sh +0 -97
- package/.claude/skills/redis-coordination/test-waiting-mode.sh +0 -59
- package/.claude/skills/redis-coordination/tests/dlq-functionality-test.sh +0 -102
- package/.claude/skills/redis-coordination/tests/edge-cases-test.sh +0 -99
- package/.claude/skills/redis-coordination/tests/integration-test.sh +0 -170
- package/.claude/skills/redis-coordination/tests/retry-mechanism-test.sh +0 -82
- package/.claude/skills/redis-coordination/tests/run-test-suite.sh +0 -92
- package/.claude/skills/redis-coordination/tests/test-heartbeat-monitoring.sh +0 -418
- package/.claude/skills/redis-coordination/tests/test-heartbeat-simple.sh +0 -124
- package/.claude/skills/redis-coordination/tests/test-utils.sh +0 -122
- package/.claude/skills/skill-builder/SKILL.md +0 -910
- package/.claude/skills/sqlite-memory/IMPLEMENTATION_REPORT.md +0 -393
- package/.claude/skills/sqlite-memory/QUICK_REFERENCE.md +0 -204
- package/.claude/skills/sqlite-memory/SKILL.md +0 -415
- package/.claude/skills/sqlite-memory/acl-queries.sql +0 -452
- package/.claude/skills/sqlite-memory/check-dependencies.sh +0 -36
- package/.claude/skills/sqlite-memory/config.json +0 -45
- package/.claude/skills/sqlite-memory/memory-cli.sh +0 -88
- package/.claude/skills/sqlite-memory/test-state-persistence.js +0 -187
- package/.claude/skills/sqlite-memory/ttl-cleanup.sh +0 -274
- package/.claude/skills/test-execution/SKILL.md +0 -128
- package/.claude/skills/test-execution/check-dependencies.sh +0 -36
- package/.claude/skills/test-execution/test-cache-reader.sh +0 -134
- package/.claude/skills/test-execution/test-concurrent-conflicts.sh +0 -115
- package/.claude/skills/test-execution/test-coordinator-pattern.sh +0 -109
- package/.claude/skills/test-execution-coordinator-pattern.md +0 -228
- package/.claude/skills/transparency-middleware/Cargo.toml +0 -18
- package/.claude/skills/transparency-middleware/SECURITY.md +0 -41
- package/.claude/skills/transparency-middleware/SKILL.md +0 -91
- package/.claude/skills/transparency-middleware/TEST_RESULTS.md +0 -174
- package/.claude/skills/transparency-middleware/config.json +0 -31
- package/.claude/skills/transparency-middleware/examples/basic-usage.ts +0 -39
- package/.claude/skills/transparency-middleware/examples/batch-processing.ts +0 -52
- package/.claude/skills/transparency-middleware/examples/custom-filtering.ts +0 -61
- package/.claude/skills/transparency-middleware/invoke-transparency-filter.sh +0 -98
- package/.claude/skills/transparency-middleware/invoke-transparency-init.sh +0 -224
- package/.claude/skills/transparency-middleware/invoke-transparency-level.sh +0 -333
- package/.claude/skills/transparency-middleware/invoke-transparency-metrics.sh +0 -345
- package/.claude/skills/transparency-middleware/invoke-transparency-observe.sh +0 -140
- package/.claude/skills/transparency-middleware/invoke-transparency-stop.sh +0 -235
- package/.claude/skills/transparency-middleware/memory_query.rs +0 -85
- package/.claude/skills/transparency-middleware/memory_repository.rs +0 -140
- package/.claude/skills/transparency-middleware/memory_schema.rs +0 -64
- package/.claude/skills/transparency-middleware/middleware-config.sh +0 -29
- package/.claude/skills/transparency-middleware/performance-benchmark.sh +0 -79
- package/.claude/skills/transparency-middleware/test-e2e.sh +0 -406
- package/.claude/skills/transparency-middleware/test-integration.sh +0 -162
- package/.claude/skills/transparency-middleware/test-transparency-skill.sh +0 -368
- package/.claude/skills/transparency-middleware/test-transparency-skill.sh.unix +0 -126
- package/.claude/skills/transparency-middleware/tests/input-validation.sh +0 -93
- package/.claude/skills/transparency-middleware/wrap-agent.sh +0 -132
- package/.claude/skills/web-portal/DESIGN.md +0 -117
- package/.claude/skills/web-portal/SKILL.md +0 -679
- package/.claude/skills/web-portal/invoke-portal-agents.sh +0 -129
- package/.claude/skills/web-portal/invoke-portal-dashboard.sh +0 -85
- package/.claude/skills/web-portal/invoke-portal-events.sh +0 -125
- package/.claude/skills/web-portal/invoke-portal-metrics.sh +0 -112
- package/.claude/skills/web-portal/invoke-portal-start.sh +0 -135
- package/.claude/skills/web-portal/invoke-portal-stop.sh +0 -121
- package/.claude/skills/web-portal/test-web-portal-skill.sh +0 -51
- package/.claude/skills/web-portal/validate-deployment.sh +0 -85
- package/.claude/slash-commands.json +0 -92
- package/.claude/spawn-pattern-examples.md +0 -500
- package/.claude/sprint-configs/cfn-naming-standardization.json +0 -729
- package/.claude/sprint-reports/sprint-1.4-self-correction-monitoring.json +0 -64
- package/.claude/swarm-memory.db +0 -0
- package/.claude/templates/agent-optimization-plan.md +0 -439
- package/.claude/templates/bulk-optimization-strategy.md +0 -367
- package/.claude/templates/cfn-loop-mechanics.md +0 -80
- package/.claude/templates/coordinator-patterns.md +0 -75
- package/.claude/templates/memory-operations.md +0 -200
- package/.claude/templates/post-edit-validation.md +0 -109
- package/.claude/templates/redis-coordination.md +0 -140
- package/.claude/templates/remaining-agent-analysis.md +0 -121
- package/.claude/templates/swarm-coordination.md +0 -103
- package/.claude/templates/team-dynamics.md +0 -82
- package/CLAUDE.md +0 -502
- package/dist/cli/cli-agent-context.test.js +0 -451
- package/dist/cli/cli-agent-context.test.js.map +0 -1
- package/dist/coordination/fleet-manager.test.js +0 -141
- package/dist/coordination/fleet-manager.test.js.map +0 -1
- package/dist/middleware/transparency-middleware.test.js +0 -184
- package/dist/middleware/transparency-middleware.test.js.map +0 -1
- package/readme/CLAUDE.md +0 -429
- /package/.claude/agents/{core-agents → cfn-dev-team/developers}/researcher.md +0 -0
- /package/.claude/commands/{README.md → cfn/README.md} +0 -0
- /package/.claude/commands/{auto-compact.md → cfn/auto-compact.md} +0 -0
- /package/.claude/commands/{cfn-claude-sync.md → cfn/cfn-claude-sync.md} +0 -0
- /package/.claude/commands/{cfn-loop-document.md → cfn/cfn-loop-document.md} +0 -0
- /package/.claude/commands/{claude-md.md → cfn/claude-md.md} +0 -0
- /package/.claude/commands/{claude-soul.md → cfn/claude-soul.md} +0 -0
- /package/.claude/commands/{context-query.md → cfn/context-query.md} +0 -0
- /package/.claude/commands/{cost-savings-off.md → cfn/cost-savings-off.md} +0 -0
- /package/.claude/commands/{cost-savings-on.md → cfn/cost-savings-on.md} +0 -0
- /package/.claude/commands/{cost-savings-status.md → cfn/cost-savings-status.md} +0 -0
- /package/.claude/commands/{custom-routing-activate.md → cfn/custom-routing-activate.md} +0 -0
- /package/.claude/commands/{custom-routing-deactivate.md → cfn/custom-routing-deactivate.md} +0 -0
- /package/.claude/commands/{dependency-recommendations.md → cfn/dependency-recommendations.md} +0 -0
- /package/.claude/commands/{fullstack.md → cfn/fullstack.md} +0 -0
- /package/.claude/commands/{github-commit.md → cfn/github-commit.md} +0 -0
- /package/.claude/commands/{github.md → cfn/github.md} +0 -0
- /package/.claude/commands/{hello-world-tests.md → cfn/hello-world-tests.md} +0 -0
- /package/.claude/commands/{hooks.md → cfn/hooks.md} +0 -0
- /package/.claude/commands/{launch-web-dashboard.md → cfn/launch-web-dashboard.md} +0 -0
- /package/.claude/commands/{metrics-summary.md → cfn/metrics-summary.md} +0 -0
- /package/.claude/commands/{neural.md → cfn/neural.md} +0 -0
- /package/.claude/commands/{parse-epic.md → cfn/parse-epic.md} +0 -0
- /package/.claude/commands/{performance.md → cfn/performance.md} +0 -0
- /package/.claude/commands/{sparc.md → cfn/sparc.md} +0 -0
- /package/.claude/commands/{suggest-improvements.md → cfn/suggest-improvements.md} +0 -0
- /package/.claude/commands/{suggest-templates.md → cfn/suggest-templates.md} +0 -0
- /package/.claude/commands/{swarm.md → cfn/swarm.md} +0 -0
- /package/.claude/commands/{switch-api.md → cfn/switch-api.md} +0 -0
- /package/.claude/commands/{workflow.md → cfn/workflow.md} +0 -0
- /package/.claude/hooks/{invoke-post-edit.sh → cfn-invoke-post-edit.sh} +0 -0
- /package/.claude/hooks/{post-edit.config.json → cfn-post-edit.config.json} +0 -0
- /package/.claude/skills/{agent-spawning → cfn-agent-spawning}/README.md +0 -0
- /package/.claude/skills/{analytics → cfn-analytics}/README.md +0 -0
- /package/.claude/skills/{config-management → cfn-config-management}/README.md +0 -0
- /package/.claude/skills/{event-bus → cfn-event-bus}/README.md +0 -0
- /package/.claude/skills/{fleet-manager → cfn-fleet-manager}/README.md +0 -0
- /package/.claude/skills/{hook-pipeline → cfn-hook-pipeline}/README.md +0 -0
- /package/.claude/skills/{hybrid-routing → cfn-hybrid-routing}/README.md +0 -0
- /package/.claude/skills/{process-lifecycle → cfn-process-lifecycle}/README.md +0 -0
- /package/.claude/skills/{sqlite-memory → cfn-sqlite-memory}/README.md +0 -0
- /package/.claude/skills/{test-execution → cfn-test-execution}/README.md +0 -0
- /package/.claude/skills/{transparency-middleware → cfn-transparency-middleware}/README.md +0 -0
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Test Agents Persist State Autonomously
|
|
4
|
-
* Simulates 10 agents across 5 sessions with state persistence
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import fs from 'fs';
|
|
8
|
-
import path from 'path';
|
|
9
|
-
import crypto from 'crypto';
|
|
10
|
-
import { fileURLToPath } from 'url';
|
|
11
|
-
|
|
12
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
-
const __dirname = path.dirname(__filename);
|
|
14
|
-
|
|
15
|
-
// Simple in-memory SQLite simulation (since actual SQLite may not be fully integrated)
|
|
16
|
-
class SimpleSQLiteMemory {
|
|
17
|
-
constructor(dbPath) {
|
|
18
|
-
this.dbPath = dbPath;
|
|
19
|
-
this.data = {};
|
|
20
|
-
|
|
21
|
-
// Load existing data if file exists
|
|
22
|
-
if (fs.existsSync(dbPath)) {
|
|
23
|
-
try {
|
|
24
|
-
this.data = JSON.parse(fs.readFileSync(dbPath, 'utf8'));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
this.data = {};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async set(key, value) {
|
|
32
|
-
this.data[key] = {
|
|
33
|
-
value,
|
|
34
|
-
timestamp: Date.now()
|
|
35
|
-
};
|
|
36
|
-
this._persist();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
async get(key) {
|
|
40
|
-
const entry = this.data[key];
|
|
41
|
-
return entry ? entry.value : null;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
_persist() {
|
|
45
|
-
const dir = path.dirname(this.dbPath);
|
|
46
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
47
|
-
fs.writeFileSync(this.dbPath, JSON.stringify(this.data, null, 2));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
async function testStatePersistence() {
|
|
52
|
-
const results = {
|
|
53
|
-
total_agents: 10,
|
|
54
|
-
total_sessions: 5,
|
|
55
|
-
persistence_tests: [],
|
|
56
|
-
successful_persistence: 0,
|
|
57
|
-
failed_persistence: 0
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
const swarmId = 'test-state-persistence-' + Date.now();
|
|
61
|
-
const dbPath = path.join(process.cwd(), '.artifacts/analytics/test-state-persistence.db');
|
|
62
|
-
|
|
63
|
-
console.log('═══════════════════════════════════════════════════════════');
|
|
64
|
-
console.log('🧪 Testing Agent State Persistence (10 agents × 5 sessions)');
|
|
65
|
-
console.log('SQLite Memory: 5-level ACL with autonomous persistence');
|
|
66
|
-
console.log('═══════════════════════════════════════════════════════════\n');
|
|
67
|
-
|
|
68
|
-
// Session 1: Create 10 agents, each stores state
|
|
69
|
-
console.log('──────────────────────────────────────');
|
|
70
|
-
console.log('📝 Session 1: Creating 10 agents and storing state');
|
|
71
|
-
console.log('──────────────────────────────────────');
|
|
72
|
-
|
|
73
|
-
const agentStates = [];
|
|
74
|
-
const memory = new SimpleSQLiteMemory(dbPath);
|
|
75
|
-
|
|
76
|
-
for (let i = 1; i <= 10; i++) {
|
|
77
|
-
const agentId = `agent-${i}`;
|
|
78
|
-
|
|
79
|
-
// Agent stores complex state
|
|
80
|
-
const state = {
|
|
81
|
-
agentId,
|
|
82
|
-
sessionId: 1,
|
|
83
|
-
taskProgress: Math.floor(Math.random() * 50), // Start at 0-50%
|
|
84
|
-
context: crypto.randomBytes(8).toString('hex'),
|
|
85
|
-
timestamp: Date.now(),
|
|
86
|
-
aclLevel: 1 // Agent-level (encrypted)
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
await memory.set(`agent/${agentId}/state`, state);
|
|
90
|
-
agentStates.push(state);
|
|
91
|
-
|
|
92
|
-
console.log(` ✓ Agent ${i} stored state (progress: ${state.taskProgress}%, context: ${state.context.substring(0, 8)}...)`);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
console.log(`\n✅ Session 1 complete: 10 agents initialized\n`);
|
|
96
|
-
|
|
97
|
-
// Sessions 2-5: Agents retrieve and update state
|
|
98
|
-
for (let session = 2; session <= 5; session++) {
|
|
99
|
-
console.log('──────────────────────────────────────');
|
|
100
|
-
console.log(`🔄 Session ${session}: Agents retrieve previous state`);
|
|
101
|
-
console.log('──────────────────────────────────────');
|
|
102
|
-
|
|
103
|
-
for (let i = 1; i <= 10; i++) {
|
|
104
|
-
const agentId = `agent-${i}`;
|
|
105
|
-
|
|
106
|
-
// Agent retrieves state from previous session
|
|
107
|
-
const retrieved = await memory.get(`agent/${agentId}/state`);
|
|
108
|
-
|
|
109
|
-
const test = {
|
|
110
|
-
agentId,
|
|
111
|
-
session,
|
|
112
|
-
original: agentStates[i - 1],
|
|
113
|
-
retrieved,
|
|
114
|
-
persisted: false
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
if (retrieved &&
|
|
118
|
-
retrieved.agentId === agentStates[i - 1].agentId &&
|
|
119
|
-
retrieved.context === agentStates[i - 1].context) {
|
|
120
|
-
|
|
121
|
-
console.log(` ✅ Agent ${i} retrieved state (progress: ${retrieved.taskProgress}% → ${Math.min(100, retrieved.taskProgress + 15)}%)`);
|
|
122
|
-
test.persisted = true;
|
|
123
|
-
results.successful_persistence++;
|
|
124
|
-
|
|
125
|
-
// Update state for next session
|
|
126
|
-
agentStates[i - 1] = {
|
|
127
|
-
...retrieved,
|
|
128
|
-
sessionId: session,
|
|
129
|
-
taskProgress: Math.min(100, retrieved.taskProgress + 15),
|
|
130
|
-
timestamp: Date.now()
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
await memory.set(`agent/${agentId}/state`, agentStates[i - 1]);
|
|
134
|
-
} else {
|
|
135
|
-
console.log(` ❌ Agent ${i} failed to retrieve state`);
|
|
136
|
-
test.persisted = false;
|
|
137
|
-
results.failed_persistence++;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
results.persistence_tests.push(test);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
console.log(`\n✅ Session ${session} complete: ${results.successful_persistence} successful retrievals so far\n`);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Calculate persistence rate
|
|
147
|
-
const totalTests = 10 * 4; // 10 agents × 4 retrieval sessions (sessions 2-5)
|
|
148
|
-
const persistenceRate = (results.successful_persistence / totalTests) * 100;
|
|
149
|
-
|
|
150
|
-
const report = {
|
|
151
|
-
...results,
|
|
152
|
-
total_tests: totalTests,
|
|
153
|
-
persistence_rate: parseFloat(persistenceRate.toFixed(2)),
|
|
154
|
-
passed: persistenceRate === 100,
|
|
155
|
-
threshold: 100,
|
|
156
|
-
test_date: new Date().toISOString(),
|
|
157
|
-
db_path: dbPath
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
console.log('═══════════════════════════════════════════════════════════');
|
|
161
|
-
console.log('TEST RESULTS');
|
|
162
|
-
console.log('═══════════════════════════════════════════════════════════');
|
|
163
|
-
console.log(`Total agents: ${report.total_agents}`);
|
|
164
|
-
console.log(`Total sessions: ${report.total_sessions}`);
|
|
165
|
-
console.log(`Total persistence tests: ${report.total_tests}`);
|
|
166
|
-
console.log(`Successful: ${report.successful_persistence}`);
|
|
167
|
-
console.log(`Failed: ${report.failed_persistence}`);
|
|
168
|
-
console.log(`Persistence rate: ${report.persistence_rate}%`);
|
|
169
|
-
console.log(`Threshold: ${report.threshold}%`);
|
|
170
|
-
console.log(`Status: ${report.passed ? '✅ PASSED' : '❌ FAILED'}`);
|
|
171
|
-
console.log('');
|
|
172
|
-
|
|
173
|
-
// Save report
|
|
174
|
-
const reportPath = path.join(process.cwd(), '.artifacts/analytics/state-persistence-test.json');
|
|
175
|
-
fs.mkdirSync(path.dirname(reportPath), { recursive: true });
|
|
176
|
-
fs.writeFileSync(reportPath, JSON.stringify(report, null, 2));
|
|
177
|
-
|
|
178
|
-
// Cleanup test database
|
|
179
|
-
if (fs.existsSync(dbPath)) {
|
|
180
|
-
fs.unlinkSync(dbPath);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return report;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
const report = await testStatePersistence();
|
|
187
|
-
process.exit(report.passed ? 0 : 1);
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# SQLite TTL Cleanup Script
|
|
4
|
-
# Automated cleanup of expired memory entries based on ACL levels
|
|
5
|
-
# Supports Redis+SQLite integration with configurable retention policies
|
|
6
|
-
|
|
7
|
-
set -e # Exit on error
|
|
8
|
-
|
|
9
|
-
# Configuration
|
|
10
|
-
DB_PATH="${DB_PATH:-./swarm-memory.db}"
|
|
11
|
-
REDIS_HOST="${REDIS_HOST:-localhost}"
|
|
12
|
-
REDIS_PORT="${REDIS_PORT:-6379}"
|
|
13
|
-
LOG_FILE="${LOG_FILE:-./logs/ttl-cleanup.log}"
|
|
14
|
-
DRY_RUN="${DRY_RUN:-false}"
|
|
15
|
-
|
|
16
|
-
# Create logs directory if it doesn't exist
|
|
17
|
-
mkdir -p "$(dirname "$LOG_FILE")"
|
|
18
|
-
|
|
19
|
-
# Logging function
|
|
20
|
-
log() {
|
|
21
|
-
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
# Error handling
|
|
25
|
-
error_exit() {
|
|
26
|
-
log "ERROR: $1"
|
|
27
|
-
exit 1
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
# Check if database exists
|
|
31
|
-
if [ ! -f "$DB_PATH" ]; then
|
|
32
|
-
error_exit "Database file not found: $DB_PATH"
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
# Check if Redis is available
|
|
36
|
-
check_redis() {
|
|
37
|
-
if ! redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping > /dev/null 2>&1; then
|
|
38
|
-
log "WARNING: Redis not available at $REDIS_HOST:$REDIS_PORT"
|
|
39
|
-
return 1
|
|
40
|
-
fi
|
|
41
|
-
return 0
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
# Get database statistics
|
|
45
|
-
get_db_stats() {
|
|
46
|
-
sqlite3 "$DB_PATH" <<EOF
|
|
47
|
-
-- Get memory counts by ACL level
|
|
48
|
-
SELECT
|
|
49
|
-
'ACL_Level_' || acl_level as acl_level,
|
|
50
|
-
COUNT(*) as total_count,
|
|
51
|
-
SUM(CASE WHEN expires_at > datetime('now') THEN 1 ELSE 0 END) as active_count,
|
|
52
|
-
SUM(CASE WHEN expires_at <= datetime('now') THEN 1 ELSE 0 END) as expired_count
|
|
53
|
-
FROM memory_store
|
|
54
|
-
GROUP BY acl_level;
|
|
55
|
-
|
|
56
|
-
-- Get total database size
|
|
57
|
-
SELECT
|
|
58
|
-
'Database_Size' as metric,
|
|
59
|
-
COUNT(*) as total_records,
|
|
60
|
-
SUM(LENGTH(value)) as total_bytes
|
|
61
|
-
FROM memory_store;
|
|
62
|
-
EOF
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
# Cleanup expired entries by ACL level
|
|
66
|
-
cleanup_acl_level() {
|
|
67
|
-
local acl_level=$1
|
|
68
|
-
local retention_days=$2
|
|
69
|
-
|
|
70
|
-
log "Cleaning up ACL Level $acl_level entries older than $retention_days days..."
|
|
71
|
-
|
|
72
|
-
# SQLite cleanup query
|
|
73
|
-
local cleanup_sql="
|
|
74
|
-
DELETE FROM memory_store
|
|
75
|
-
WHERE acl_level = $acl_level
|
|
76
|
-
AND expires_at <= datetime('now', '-$retention_days days')
|
|
77
|
-
AND acl_level != 5; -- Skip system audit logs (level 5)
|
|
78
|
-
"
|
|
79
|
-
|
|
80
|
-
if [ "$DRY_RUN" = "true" ]; then
|
|
81
|
-
# Count what would be deleted
|
|
82
|
-
local count=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM memory_store WHERE acl_level = $acl_level AND expires_at <= datetime('now', '-$retention_days days') AND acl_level != 5;")
|
|
83
|
-
log "[DRY RUN] Would delete $count entries from ACL Level $acl_level"
|
|
84
|
-
return 0
|
|
85
|
-
fi
|
|
86
|
-
|
|
87
|
-
# Execute cleanup
|
|
88
|
-
local deleted_count=$(sqlite3 "$DB_PATH" "$cleanup_sql")
|
|
89
|
-
log "Deleted $deleted_count entries from ACL Level $acl_level"
|
|
90
|
-
|
|
91
|
-
# Sync with Redis if available
|
|
92
|
-
if check_redis; then
|
|
93
|
-
sync_redis_cleanup "$acl_level"
|
|
94
|
-
fi
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
# Sync Redis cleanup with SQLite
|
|
98
|
-
sync_redis_cleanup() {
|
|
99
|
-
local acl_level=$1
|
|
100
|
-
|
|
101
|
-
log "Syncing Redis cleanup for ACL Level $acl_level..."
|
|
102
|
-
|
|
103
|
-
# Get keys that should be removed from Redis
|
|
104
|
-
local redis_keys=$(sqlite3 "$DB_PATH" "
|
|
105
|
-
SELECT key FROM memory_store
|
|
106
|
-
WHERE acl_level = $acl_level
|
|
107
|
-
AND expires_at <= datetime('now')
|
|
108
|
-
")
|
|
109
|
-
|
|
110
|
-
# Remove from Redis
|
|
111
|
-
while IFS= read -r key; do
|
|
112
|
-
if [ -n "$key" ]; then
|
|
113
|
-
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" DEL "$key" > /dev/null 2>&1 || true
|
|
114
|
-
fi
|
|
115
|
-
done <<< "$redis_keys"
|
|
116
|
-
|
|
117
|
-
log "Redis sync completed for ACL Level $acl_level"
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
# Cleanup Redis TTL entries
|
|
121
|
-
cleanup_redis_ttl() {
|
|
122
|
-
log "Cleaning up Redis TTL entries..."
|
|
123
|
-
|
|
124
|
-
if [ "$DRY_RUN" = "true" ]; then
|
|
125
|
-
local redis_count=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" DBSIZE)
|
|
126
|
-
log "[DRY RUN] Redis has $redis_count keys, would clean expired ones"
|
|
127
|
-
return 0
|
|
128
|
-
fi
|
|
129
|
-
|
|
130
|
-
# Redis doesn't have automatic TTL cleanup in the same way, but we can
|
|
131
|
-
# check and clean keys that should have expired
|
|
132
|
-
local redis_keys=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" --scan --pattern "memory:*")
|
|
133
|
-
|
|
134
|
-
while IFS= read -r key; do
|
|
135
|
-
if [ -n "$key" ]; then
|
|
136
|
-
local ttl=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" TTL "$key")
|
|
137
|
-
if [ "$ttl" -eq -2 ]; then
|
|
138
|
-
# Key doesn't exist in Redis but exists in SQLite (stale)
|
|
139
|
-
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" DEL "$key" > /dev/null 2>&1 || true
|
|
140
|
-
elif [ "$ttl" -eq -1 ]; then
|
|
141
|
-
# Key has no TTL, check if it should have one based on ACL level
|
|
142
|
-
local acl_level=$(sqlite3 "$DB_PATH" "SELECT acl_level FROM memory_store WHERE key = '$key' LIMIT 1")
|
|
143
|
-
if [ -n "$acl_level" ] && [ "$acl_level" -le 4 ]; then
|
|
144
|
-
# Should have TTL, remove it
|
|
145
|
-
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" DEL "$key" > /dev/null 2>&1 || true
|
|
146
|
-
fi
|
|
147
|
-
fi
|
|
148
|
-
fi
|
|
149
|
-
done <<< "$redis_keys"
|
|
150
|
-
|
|
151
|
-
log "Redis TTL cleanup completed"
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
# Optimize database
|
|
155
|
-
optimize_database() {
|
|
156
|
-
log "Optimizing SQLite database..."
|
|
157
|
-
|
|
158
|
-
if [ "$DRY_RUN" = "true" ]; then
|
|
159
|
-
log "[DRY RUN] Would optimize database (VACUUM and ANALYZE)"
|
|
160
|
-
return 0
|
|
161
|
-
fi
|
|
162
|
-
|
|
163
|
-
sqlite3 "$DB_PATH" "VACUUM;"
|
|
164
|
-
sqlite3 "$DB_PATH" "ANALYZE;"
|
|
165
|
-
|
|
166
|
-
log "Database optimization completed"
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
# Generate cleanup report
|
|
170
|
-
generate_report() {
|
|
171
|
-
log "Generating cleanup report..."
|
|
172
|
-
|
|
173
|
-
local report_file="logs/cleanup-report-$(date '+%Y%m%d-%H%M%S').txt"
|
|
174
|
-
|
|
175
|
-
{
|
|
176
|
-
echo "SQLite TTL Cleanup Report"
|
|
177
|
-
echo "========================"
|
|
178
|
-
echo "Generated: $(date)"
|
|
179
|
-
echo "Database: $DB_PATH"
|
|
180
|
-
echo "Redis: $REDIS_HOST:$REDIS_PORT"
|
|
181
|
-
echo "Dry Run: $DRY_RUN"
|
|
182
|
-
echo ""
|
|
183
|
-
|
|
184
|
-
echo "Database Statistics:"
|
|
185
|
-
get_db_stats
|
|
186
|
-
|
|
187
|
-
echo ""
|
|
188
|
-
echo "Cleanup Summary:"
|
|
189
|
-
echo "================"
|
|
190
|
-
echo "ACL Level 1 (Agent): Cleaned entries older than 1 day"
|
|
191
|
-
echo "ACL Level 2 (Team): Cleaned entries older than 7 days"
|
|
192
|
-
echo "ACL Level 3 (Swarm): Cleaned entries older than 2 days"
|
|
193
|
-
echo "ACL Level 4 (Project): Cleaned entries older than 30 days"
|
|
194
|
-
echo "ACL Level 5 (System): Never cleaned (permanent storage)"
|
|
195
|
-
|
|
196
|
-
} > "$report_file"
|
|
197
|
-
|
|
198
|
-
log "Cleanup report generated: $report_file"
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
# Main cleanup function
|
|
202
|
-
main() {
|
|
203
|
-
log "Starting TTL cleanup process..."
|
|
204
|
-
|
|
205
|
-
# Check prerequisites
|
|
206
|
-
if [ ! -f "$DB_PATH" ]; then
|
|
207
|
-
error_exit "Database file not found: $DB_PATH"
|
|
208
|
-
fi
|
|
209
|
-
|
|
210
|
-
# Show current stats
|
|
211
|
-
log "Current database statistics:"
|
|
212
|
-
get_db_stats
|
|
213
|
-
|
|
214
|
-
# Cleanup by ACL level with different retention policies
|
|
215
|
-
cleanup_acl_level 1 1 # Agent: 1 day retention
|
|
216
|
-
cleanup_acl_level 2 7 # Team: 7 days retention
|
|
217
|
-
cleanup_acl_level 3 2 # Swarm: 2 days retention
|
|
218
|
-
cleanup_acl_level 4 30 # Project: 30 days retention
|
|
219
|
-
# Level 5 (System) is never cleaned
|
|
220
|
-
|
|
221
|
-
# Cleanup Redis TTL entries
|
|
222
|
-
cleanup_redis_ttl
|
|
223
|
-
|
|
224
|
-
# Optimize database
|
|
225
|
-
optimize_database
|
|
226
|
-
|
|
227
|
-
# Generate report
|
|
228
|
-
generate_report
|
|
229
|
-
|
|
230
|
-
log "TTL cleanup process completed successfully"
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
# Parse command line arguments
|
|
234
|
-
while [[ $# -gt 0 ]]; do
|
|
235
|
-
case $1 in
|
|
236
|
-
--dry-run)
|
|
237
|
-
DRY_RUN="true"
|
|
238
|
-
shift
|
|
239
|
-
;;
|
|
240
|
-
--redis-host)
|
|
241
|
-
REDIS_HOST="$2"
|
|
242
|
-
shift 2
|
|
243
|
-
;;
|
|
244
|
-
--redis-port)
|
|
245
|
-
REDIS_PORT="$2"
|
|
246
|
-
shift 2
|
|
247
|
-
;;
|
|
248
|
-
--db-path)
|
|
249
|
-
DB_PATH="$2"
|
|
250
|
-
shift 2
|
|
251
|
-
;;
|
|
252
|
-
--log-file)
|
|
253
|
-
LOG_FILE="$2"
|
|
254
|
-
shift 2
|
|
255
|
-
;;
|
|
256
|
-
--help)
|
|
257
|
-
echo "Usage: $0 [OPTIONS]"
|
|
258
|
-
echo "Options:"
|
|
259
|
-
echo " --dry-run Show what would be deleted without actually deleting"
|
|
260
|
-
echo " --redis-host HOST Redis host (default: localhost)"
|
|
261
|
-
echo " --redis-port PORT Redis port (default: 6379)"
|
|
262
|
-
echo " --db-path PATH SQLite database path (default: ./swarm-memory.db)"
|
|
263
|
-
echo " --log-file FILE Log file path (default: ./logs/ttl-cleanup.log)"
|
|
264
|
-
echo " --help Show this help message"
|
|
265
|
-
exit 0
|
|
266
|
-
;;
|
|
267
|
-
*)
|
|
268
|
-
error_exit "Unknown option: $1"
|
|
269
|
-
;;
|
|
270
|
-
esac
|
|
271
|
-
done
|
|
272
|
-
|
|
273
|
-
# Run main function
|
|
274
|
-
main "$@"
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Test Execution
|
|
3
|
-
version: 1.2.0
|
|
4
|
-
complexity: High
|
|
5
|
-
status: OPERATIONAL (Specialized Use Case)
|
|
6
|
-
keywords: [
|
|
7
|
-
"coordinator-pattern",
|
|
8
|
-
"distributed test framework",
|
|
9
|
-
"single-run caching",
|
|
10
|
-
"conflict prevention",
|
|
11
|
-
"resource-optimized testing",
|
|
12
|
-
"test distribution",
|
|
13
|
-
"parallel test management"
|
|
14
|
-
]
|
|
15
|
-
triggers: [
|
|
16
|
-
"3+ agents need test results simultaneously",
|
|
17
|
-
"preventing test conflicts in multi-agent scenarios",
|
|
18
|
-
"distributed test environments with resource contention"
|
|
19
|
-
]
|
|
20
|
-
performance_targets: {
|
|
21
|
-
"test_run_time_ms": 5000,
|
|
22
|
-
"coverage_accuracy_pct": 95,
|
|
23
|
-
"caching_efficiency_pct": 90,
|
|
24
|
-
"max_concurrent_workers": 10
|
|
25
|
-
}
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
# Test Execution Skill
|
|
29
|
-
|
|
30
|
-
**Pattern:** Coordinator-Cached Test Execution
|
|
31
|
-
**Status:** OPERATIONAL - Specialized for multi-agent concurrent testing
|
|
32
|
-
|
|
33
|
-
## When to Use This Skill
|
|
34
|
-
|
|
35
|
-
**USE when:**
|
|
36
|
-
- 3+ agents need test results simultaneously
|
|
37
|
-
- Multi-agent swarms testing in parallel
|
|
38
|
-
- Preventing port/resource conflicts is critical
|
|
39
|
-
- Distributed testing environments
|
|
40
|
-
|
|
41
|
-
**DO NOT USE when:**
|
|
42
|
-
- Single agent testing → Use `npm test` directly
|
|
43
|
-
- Code validation → Use `.claude/hooks/invoke-post-edit.sh`
|
|
44
|
-
- Simple test execution → Use `npm test` directly
|
|
45
|
-
- Development workflow → Use standard npm scripts
|
|
46
|
-
|
|
47
|
-
## Problem Statement
|
|
48
|
-
|
|
49
|
-
Concurrent test execution causes conflicts, resource contention, and flaky results. Multiple agents running tests simultaneously creates:
|
|
50
|
-
- Port conflicts (test servers)
|
|
51
|
-
- Database/file system race conditions
|
|
52
|
-
- Unreliable coverage reports
|
|
53
|
-
- Wasted computation from duplicate test runs
|
|
54
|
-
|
|
55
|
-
## Solution: Coordinator Pattern
|
|
56
|
-
|
|
57
|
-
**Single Test Execution:** One coordinator agent runs all tests once
|
|
58
|
-
**Cached Results:** Results stored in Redis + JSON file
|
|
59
|
-
**Worker Reads:** All other agents read cached results (never execute tests)
|
|
60
|
-
|
|
61
|
-
## Implementation
|
|
62
|
-
|
|
63
|
-
### Scripts Available
|
|
64
|
-
|
|
65
|
-
1. **test-coordinator-pattern.sh** - Coordinator runs tests, caches to Redis
|
|
66
|
-
2. **test-cache-reader.sh** - Workers read cached results
|
|
67
|
-
3. **test-concurrent-conflicts.sh** - Validates coordinator pattern (20 runs)
|
|
68
|
-
|
|
69
|
-
### Usage
|
|
70
|
-
|
|
71
|
-
**Coordinator Agent (runs tests):**
|
|
72
|
-
```bash
|
|
73
|
-
# Run tests once and cache results
|
|
74
|
-
./.claude/skills/test-execution/test-coordinator-pattern.sh swarm-123
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**Worker Agents (read cache):**
|
|
78
|
-
```bash
|
|
79
|
-
# Read cached test results (waits for coordinator)
|
|
80
|
-
./.claude/skills/test-execution/test-cache-reader.sh swarm-123 worker-1
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
**Validate Pattern:**
|
|
84
|
-
```bash
|
|
85
|
-
# Test concurrent execution (20 cycles)
|
|
86
|
-
./.claude/skills/test-execution/test-concurrent-conflicts.sh
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Workflow
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
1. Coordinator detects "run tests" signal
|
|
93
|
-
2. Coordinator terminates existing test processes
|
|
94
|
-
3. Coordinator runs: npm test -- --run --reporter=json
|
|
95
|
-
4. Results cached to:
|
|
96
|
-
- Redis: swarm:${SWARM_ID}:tests:metadata
|
|
97
|
-
- File: test-results.json
|
|
98
|
-
5. Workers wait for completion signal (max 5min timeout)
|
|
99
|
-
6. Workers read cached results
|
|
100
|
-
7. All agents use same test results (no conflicts)
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Performance Metrics
|
|
104
|
-
|
|
105
|
-
- Test execution: 1x instead of Nx (N = number of agents)
|
|
106
|
-
- Cache read latency: <100ms
|
|
107
|
-
- Conflict prevention: 100% (validated with 20 concurrent runs)
|
|
108
|
-
- Resource savings: ~90% (no duplicate test processes)
|
|
109
|
-
|
|
110
|
-
## Integration with Other Skills
|
|
111
|
-
|
|
112
|
-
- **Post-Edit Hooks:** Use `.claude/hooks/invoke-post-edit.sh` for TypeScript validation (simpler, faster)
|
|
113
|
-
- **Redis Coordination:** Uses same Redis pub/sub infrastructure
|
|
114
|
-
- **CFN Loop Validation:** Can integrate test results into consensus calculation
|
|
115
|
-
|
|
116
|
-
## Current Project Status
|
|
117
|
-
|
|
118
|
-
**Active Tests:** None in `/src` (legacy tests in `/packages`)
|
|
119
|
-
**Jest Configuration:** Installed (29.7.0) but not actively used
|
|
120
|
-
**Recommendation:** Skill is operational but currently unnecessary. Use `npm test` directly for development.
|
|
121
|
-
|
|
122
|
-
## Future Use Cases
|
|
123
|
-
|
|
124
|
-
When multi-agent swarms become active and need concurrent testing:
|
|
125
|
-
1. Designate one agent as test coordinator
|
|
126
|
-
2. Coordinator uses `test-coordinator-pattern.sh`
|
|
127
|
-
3. Workers use `test-cache-reader.sh`
|
|
128
|
-
4. Validate with `test-concurrent-conflicts.sh`
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Dependency checker for Test Execution
|
|
3
|
-
|
|
4
|
-
check_command() {
|
|
5
|
-
if command -v "$1" &> /dev/null; then
|
|
6
|
-
VERSION=$($1 --version 2>&1 | head -n1)
|
|
7
|
-
echo "✅ $1: $VERSION"
|
|
8
|
-
return 0
|
|
9
|
-
else
|
|
10
|
-
echo "❌ $1: NOT FOUND"
|
|
11
|
-
return 1
|
|
12
|
-
fi
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
echo "Checking dependencies for Test Execution..."
|
|
16
|
-
MISSING=0
|
|
17
|
-
|
|
18
|
-
# Required dependencies
|
|
19
|
-
check_command "node" || MISSING=$((MISSING+1))
|
|
20
|
-
check_command "npm" || MISSING=$((MISSING+1))
|
|
21
|
-
check_command "jq" || MISSING=$((MISSING+1))
|
|
22
|
-
|
|
23
|
-
# Optional dependencies
|
|
24
|
-
if ! command -v "redis-cli" &> /dev/null; then
|
|
25
|
-
echo "⚠️ redis-cli: NOT FOUND (optional - for result caching)"
|
|
26
|
-
fi
|
|
27
|
-
|
|
28
|
-
if [ $MISSING -eq 0 ]; then
|
|
29
|
-
echo ""
|
|
30
|
-
echo "✅ All required dependencies installed"
|
|
31
|
-
exit 0
|
|
32
|
-
else
|
|
33
|
-
echo ""
|
|
34
|
-
echo "❌ Missing $MISSING required dependencies"
|
|
35
|
-
exit 1
|
|
36
|
-
fi
|