claude-flow-novice 2.15.4 → 2.15.6
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/cfn-extras/.gs-api-quota.json +16 -0
- package/.claude/cfn-extras/.gs-progress-state.json +22 -0
- package/.claude/cfn-extras/GOOGLE_SHEETS_IMPLEMENTATION_SUMMARY.md +414 -0
- package/.claude/cfn-extras/agents/google-sheets/README.md +114 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-advanced-analytics-specialist.md +288 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-api-integrator.md +127 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-automation-scripting-specialist.md +195 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-business-validator.md +179 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-collaboration-security-specialist.md +240 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +214 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-transformer.md +127 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-validation-quality-specialist.md +177 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-validator.md +119 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-data-visualization-specialist.md +135 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-design-layout-specialist.md +109 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-engineer.md +127 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-engineering-specialist.md +138 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-formula-validator.md +128 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-generalist.md +645 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-integration-api-specialist.md +258 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-performance-analyst.md +125 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-performance-optimization-specialist.md +211 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-schema-designer.md +130 -0
- package/.claude/cfn-extras/agents/google-sheets/google-sheets-template-architecture-specialist.md +259 -0
- package/.claude/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +617 -0
- package/.claude/cfn-extras/skills/GOOGLE_SHEETS_SKILLS_README.md +453 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/SKILL.md +272 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/api-call.sh +254 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/test.sh +174 -0
- package/.claude/cfn-extras/skills/google-sheets-api-coordinator/validate.sh +98 -0
- package/.claude/cfn-extras/skills/google-sheets-decomposition/SKILL.md +269 -0
- package/.claude/cfn-extras/skills/google-sheets-decomposition/decompose.sh +313 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/SKILL.md +237 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/build-formula.sh +220 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/test.sh +172 -0
- package/.claude/cfn-extras/skills/google-sheets-formula-builder/validate.sh +98 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/SKILL.md +287 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/test.sh +385 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/track-progress.sh +516 -0
- package/.claude/cfn-extras/skills/google-sheets-progress/validate.sh +119 -0
- package/.claude/cfn-extras/skills/google-sheets-sprint-order/SKILL.md +277 -0
- package/.claude/cfn-extras/skills/google-sheets-sprint-order/order-sprints.sh +233 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/SKILL.md +352 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/test.sh +355 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/validate-state.sh +374 -0
- package/.claude/cfn-extras/skills/google-sheets-validation/validate.sh +128 -0
- package/.claude/commands/cfn-context.md +10 -0
- package/.claude/commands/cfn-loop-cli.md +44 -14
- package/.claude/commands/google-sheets/google-sheets-loop.md +289 -0
- package/.claude/skills/cfn-agent-selector/SKILL.md +143 -0
- package/.claude/skills/cfn-agent-selector/select-agents.sh +94 -0
- package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -2
- package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +21 -2
- package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +11 -5
- package/.claude/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +348 -0
- package/.claude/skills/cfn-docker-redis-coordination/README.md +294 -0
- package/.claude/skills/cfn-docker-redis-coordination/jest.config.js +37 -0
- package/.claude/skills/cfn-docker-redis-coordination/package-lock.json +5259 -0
- package/.claude/skills/cfn-docker-redis-coordination/package.json +40 -0
- package/.claude/skills/cfn-docker-redis-coordination/src/coordinator.ts +801 -0
- package/.claude/skills/cfn-docker-redis-coordination/src/index.ts +42 -0
- package/.claude/skills/cfn-docker-redis-coordination/src/types.ts +351 -0
- package/.claude/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +1464 -0
- package/.claude/skills/cfn-docker-redis-coordination/tsconfig.json +30 -0
- package/.claude/skills/cfn-loop-orchestration/.eslintrc.js +56 -0
- package/.claude/skills/cfn-loop-orchestration/.prettierrc.json +18 -0
- package/.claude/skills/cfn-loop-orchestration/README.md +149 -41
- package/.claude/skills/cfn-loop-orchestration/jest.config.js +67 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate-wrapper.sh +268 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +147 -16
- package/.claude/skills/cfn-loop-orchestration/package-lock.json +5470 -0
- package/.claude/skills/cfn-loop-orchestration/package.json +49 -0
- package/.claude/skills/cfn-loop-orchestration/src/agent-spawner/agent-spawner.ts +34 -0
- package/.claude/skills/cfn-loop-orchestration/src/gate-checker/gate-checker.ts +36 -0
- package/.claude/skills/cfn-loop-orchestration/src/index.ts +14 -0
- package/.claude/skills/cfn-loop-orchestration/src/orchestrator/orchestrator.ts +31 -0
- package/.claude/skills/cfn-loop-orchestration/src/redis/redis-coordinator.ts +72 -0
- package/.claude/skills/cfn-loop-orchestration/src/types.ts +188 -0
- package/.claude/skills/cfn-loop-orchestration/src/utils/logger.ts +32 -0
- package/.claude/skills/cfn-loop-orchestration/tests/setup.ts +22 -0
- package/.claude/skills/cfn-loop-orchestration/tests/types.test.ts +132 -0
- package/.claude/skills/cfn-loop-orchestration/tsconfig.json +54 -0
- package/.claude/skills/cfn-redis-coordination/bash-wrappers/store-context.sh +23 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.d.ts +92 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.js +329 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-logger.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.d.ts +75 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.js +302 -0
- package/.claude/skills/cfn-redis-coordination/dist/agent-recovery.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.d.ts +58 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.js +237 -0
- package/.claude/skills/cfn-redis-coordination/dist/completion-reporter.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.d.ts +63 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.js +230 -0
- package/.claude/skills/cfn-redis-coordination/dist/context-manager.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.d.ts +45 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.js +114 -0
- package/.claude/skills/cfn-redis-coordination/dist/index.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.d.ts +31 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.js +185 -0
- package/.claude/skills/cfn-redis-coordination/dist/mode-detector.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.d.ts +191 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.js +509 -0
- package/.claude/skills/cfn-redis-coordination/dist/redis-client.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.d.ts +75 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.js +281 -0
- package/.claude/skills/cfn-redis-coordination/dist/result-collector.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.d.ts +75 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.js +354 -0
- package/.claude/skills/cfn-redis-coordination/dist/swarm-manager.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.d.ts +62 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.js +305 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-analyzer.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.d.ts +97 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.js +283 -0
- package/.claude/skills/cfn-redis-coordination/dist/task-executor.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.d.ts +176 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.js +81 -0
- package/.claude/skills/cfn-redis-coordination/dist/types.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts +86 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts.map +1 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.js +419 -0
- package/.claude/skills/cfn-redis-coordination/dist/waiting-coordinator.js.map +1 -0
- package/.claude/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +553 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -2
- package/.claude/skills/cfn-redis-coordination/jest.config.js +23 -0
- package/.claude/skills/cfn-redis-coordination/package-lock.json +5272 -0
- package/.claude/skills/cfn-redis-coordination/package.json +45 -0
- package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +21 -8
- package/.claude/skills/cfn-redis-coordination/redis-functions.sh +3 -2
- package/.claude/skills/cfn-redis-coordination/src/agent-logger.ts +446 -0
- package/.claude/skills/cfn-redis-coordination/src/agent-recovery.ts +454 -0
- package/.claude/skills/cfn-redis-coordination/src/completion-reporter.ts +396 -0
- package/.claude/skills/cfn-redis-coordination/src/context-manager.ts +327 -0
- package/.claude/skills/cfn-redis-coordination/src/index.ts +82 -0
- package/.claude/skills/cfn-redis-coordination/src/mode-detector.ts +155 -0
- package/.claude/skills/cfn-redis-coordination/src/redis/redis-client.ts +305 -0
- package/.claude/skills/cfn-redis-coordination/src/redis/redis-functions.ts +283 -0
- package/.claude/skills/cfn-redis-coordination/src/redis-client.ts +654 -0
- package/.claude/skills/cfn-redis-coordination/src/result-collector.ts +437 -0
- package/.claude/skills/cfn-redis-coordination/src/swarm-manager.ts +494 -0
- package/.claude/skills/cfn-redis-coordination/src/task-analyzer.ts +404 -0
- package/.claude/skills/cfn-redis-coordination/src/task-executor.ts +423 -0
- package/.claude/skills/cfn-redis-coordination/src/types.ts +235 -0
- package/.claude/skills/cfn-redis-coordination/src/waiting-coordinator.ts +587 -0
- package/.claude/skills/cfn-redis-coordination/test-connection-attempts.js +70 -0
- package/.claude/skills/cfn-redis-coordination/test-mode-simple.js +121 -0
- package/.claude/skills/cfn-redis-coordination/test-redis-check.js +84 -0
- package/.claude/skills/cfn-redis-coordination/test-task-mode-redis.cjs +391 -0
- package/.claude/skills/cfn-redis-coordination/tests/coordination.test.ts +779 -0
- package/.claude/skills/cfn-redis-coordination/tsconfig.json +31 -0
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +172 -2
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +1 -1
- package/claude-assets/agents/custom/cfn-redis-operations.md +530 -0
- package/claude-assets/agents/custom/cfn-system-expert.md +77 -0
- package/claude-assets/cfn-extras/.gs-api-quota.json +16 -0
- package/claude-assets/cfn-extras/.gs-progress-state.json +22 -0
- package/claude-assets/cfn-extras/GOOGLE_SHEETS_IMPLEMENTATION_SUMMARY.md +414 -0
- package/claude-assets/cfn-extras/agents/google-sheets/README.md +114 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-advanced-analytics-specialist.md +288 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-api-integrator.md +127 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-automation-scripting-specialist.md +195 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-business-validator.md +179 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-collaboration-security-specialist.md +240 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-coordinator.md +214 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-transformer.md +127 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-validation-quality-specialist.md +177 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-validator.md +119 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-data-visualization-specialist.md +135 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-design-layout-specialist.md +109 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-engineer.md +127 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-engineering-specialist.md +138 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-formula-validator.md +128 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-generalist.md +645 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-integration-api-specialist.md +258 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-performance-analyst.md +125 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-performance-optimization-specialist.md +211 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-schema-designer.md +130 -0
- package/claude-assets/cfn-extras/agents/google-sheets/google-sheets-template-architecture-specialist.md +259 -0
- package/claude-assets/cfn-extras/docs/GOOGLE_SHEETS_CFN_LOOP.md +617 -0
- package/claude-assets/cfn-extras/skills/GOOGLE_SHEETS_SKILLS_README.md +453 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/SKILL.md +272 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/api-call.sh +254 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/test.sh +174 -0
- package/claude-assets/cfn-extras/skills/google-sheets-api-coordinator/validate.sh +98 -0
- package/claude-assets/cfn-extras/skills/google-sheets-decomposition/SKILL.md +269 -0
- package/claude-assets/cfn-extras/skills/google-sheets-decomposition/decompose.sh +313 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/SKILL.md +237 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/build-formula.sh +220 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/test.sh +172 -0
- package/claude-assets/cfn-extras/skills/google-sheets-formula-builder/validate.sh +98 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/SKILL.md +287 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/test.sh +385 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/track-progress.sh +516 -0
- package/claude-assets/cfn-extras/skills/google-sheets-progress/validate.sh +119 -0
- package/claude-assets/cfn-extras/skills/google-sheets-sprint-order/SKILL.md +277 -0
- package/claude-assets/cfn-extras/skills/google-sheets-sprint-order/order-sprints.sh +233 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/SKILL.md +352 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/test.sh +355 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/validate-state.sh +374 -0
- package/claude-assets/cfn-extras/skills/google-sheets-validation/validate.sh +128 -0
- package/claude-assets/commands/cfn-context.md +10 -0
- package/claude-assets/commands/cfn-loop-cli.md +44 -14
- package/claude-assets/commands/google-sheets/google-sheets-loop.md +289 -0
- package/claude-assets/hooks/cfn-pre-execution/SESSION_START_README.md +87 -0
- package/claude-assets/hooks/cfn-pre-execution/TEST_SESSION_START.md +128 -0
- package/claude-assets/hooks/cfn-pre-execution/session-start-context.sh +111 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/INTEGRATION_EXAMPLE.md +209 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/README.md +130 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/SKILL.md +243 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/agent-mappings.json +142 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/select-agents.sh +173 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/task-classifier.sh +71 -0
- package/claude-assets/skills/cfn-agent-selection-with-fallback/test-agent-selection.sh +282 -0
- package/claude-assets/skills/cfn-agent-selector/SKILL.md +143 -0
- package/claude-assets/skills/cfn-agent-selector/select-agents.sh +94 -0
- package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh +22 -2
- package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +21 -2
- package/claude-assets/skills/cfn-docker-coordination/.eslintrc.json +33 -0
- package/claude-assets/skills/cfn-docker-coordination/README.md +349 -0
- package/claude-assets/skills/cfn-docker-coordination/docker-helpers.sh +433 -0
- package/claude-assets/skills/cfn-docker-coordination/jest.config.js +25 -0
- package/claude-assets/skills/cfn-docker-coordination/package-lock.json +6827 -0
- package/claude-assets/skills/cfn-docker-coordination/package.json +38 -0
- package/claude-assets/skills/cfn-docker-coordination/src/agent-container.ts +471 -0
- package/claude-assets/skills/cfn-docker-coordination/src/docker-client.ts +483 -0
- package/claude-assets/skills/cfn-docker-coordination/src/health-checker.ts +418 -0
- package/claude-assets/skills/cfn-docker-coordination/src/index.ts +45 -0
- package/claude-assets/skills/cfn-docker-coordination/src/network-manager.ts +377 -0
- package/claude-assets/skills/cfn-docker-coordination/src/types.ts +412 -0
- package/claude-assets/skills/cfn-docker-coordination/src/volume-manager.ts +389 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/agent-container.test.ts +379 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/docker-client.test.ts +345 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/health-checker.test.ts +535 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/integration.test.ts +193 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/network-manager.test.ts +352 -0
- package/claude-assets/skills/cfn-docker-coordination/tests/setup.ts +36 -0
- package/claude-assets/skills/cfn-docker-coordination/tsconfig.json +29 -0
- package/claude-assets/skills/cfn-docker-logging/INTEGRATION.md +268 -0
- package/claude-assets/skills/cfn-docker-logging/SAMPLE_OUTPUTS.md +237 -0
- package/claude-assets/skills/cfn-docker-logging/SKILL.md +442 -0
- package/claude-assets/skills/cfn-docker-logging/capture-container-logs.sh +120 -0
- package/claude-assets/skills/cfn-docker-logging/enable-logging.sh +430 -0
- package/claude-assets/skills/cfn-docker-logging/init-hybrid-logging.sh +210 -0
- package/claude-assets/skills/cfn-docker-logging/queries/analytics-summary.sh +87 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-agent-timeline.sh +51 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-consensus-history.sh +56 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-coordination-timeline.sh +39 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-failed-containers.sh +40 -0
- package/claude-assets/skills/cfn-docker-logging/queries/query-gate-checks.sh +39 -0
- package/claude-assets/skills/cfn-docker-logging/schema.sql +111 -0
- package/claude-assets/skills/cfn-docker-logging/sqlite-helpers.sh +240 -0
- package/claude-assets/skills/cfn-docker-logging/test-hybrid-logging.sh +331 -0
- package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +11 -5
- package/claude-assets/skills/cfn-docker-redis-coordination/MIGRATION_SUMMARY.md +348 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/README.md +294 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/jest.config.js +37 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/package-lock.json +5259 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/package.json +40 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/src/coordinator.ts +801 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/src/index.ts +42 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/src/types.ts +351 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/tests/coordinator.test.ts +1464 -0
- package/claude-assets/skills/cfn-docker-redis-coordination/tsconfig.json +30 -0
- package/claude-assets/skills/cfn-error-logging/.eslintrc.json +57 -0
- package/claude-assets/skills/cfn-error-logging/.prettierrc.json +10 -0
- package/claude-assets/skills/cfn-error-logging/MIGRATION_SUMMARY.md +485 -0
- package/claude-assets/skills/cfn-error-logging/package.json +47 -0
- package/claude-assets/skills/cfn-error-logging/src/error-logger.ts +1042 -0
- package/claude-assets/skills/cfn-error-logging/src/index.ts +12 -0
- package/claude-assets/skills/cfn-error-logging/src/types.ts +456 -0
- package/claude-assets/skills/cfn-error-logging/tests/error-logger.test.ts +1302 -0
- package/claude-assets/skills/cfn-error-logging/tsconfig.json +38 -0
- package/claude-assets/skills/cfn-loop-orchestration/.eslintrc.js +56 -0
- package/claude-assets/skills/cfn-loop-orchestration/.prettierrc.json +18 -0
- package/claude-assets/skills/cfn-loop-orchestration/README.md +149 -41
- package/claude-assets/skills/cfn-loop-orchestration/jest.config.js +67 -0
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate-wrapper.sh +268 -0
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +147 -16
- package/claude-assets/skills/cfn-loop-orchestration/package-lock.json +5470 -0
- package/claude-assets/skills/cfn-loop-orchestration/package.json +49 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/agent-spawner/agent-spawner.ts +34 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/gate-checker/gate-checker.ts +36 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/index.ts +14 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/orchestrator/orchestrator.ts +31 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/redis/redis-coordinator.ts +72 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/types.ts +188 -0
- package/claude-assets/skills/cfn-loop-orchestration/src/utils/logger.ts +32 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/setup.ts +22 -0
- package/claude-assets/skills/cfn-loop-orchestration/tests/types.test.ts +132 -0
- package/claude-assets/skills/cfn-loop-orchestration/tsconfig.json +54 -0
- package/claude-assets/skills/cfn-redis-coordination/bash-wrappers/store-context.sh +23 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.d.ts +92 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.js +329 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-logger.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.d.ts +75 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.js +302 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/agent-recovery.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.d.ts +58 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.js +237 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/completion-reporter.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.d.ts +63 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.js +230 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/context-manager.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.d.ts +45 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.js +114 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/index.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.d.ts +31 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.js +185 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/mode-detector.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.d.ts +191 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.js +509 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/redis-client.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.d.ts +75 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.js +281 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/result-collector.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.d.ts +75 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.js +354 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/swarm-manager.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.d.ts +62 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.js +305 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-analyzer.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.d.ts +97 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.js +283 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/task-executor.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.d.ts +176 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.js +81 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/types.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts +86 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.d.ts.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.js +419 -0
- package/claude-assets/skills/cfn-redis-coordination/dist/waiting-coordinator.js.map +1 -0
- package/claude-assets/skills/cfn-redis-coordination/docs/migration/PHASE_3_REDIS_COORDINATION_COMPLETION_REPORT.md +553 -0
- package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +3 -2
- package/claude-assets/skills/cfn-redis-coordination/jest.config.js +23 -0
- package/claude-assets/skills/cfn-redis-coordination/package-lock.json +5272 -0
- package/claude-assets/skills/cfn-redis-coordination/package.json +45 -0
- package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +21 -8
- package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +3 -2
- package/claude-assets/skills/cfn-redis-coordination/src/agent-logger.ts +446 -0
- package/claude-assets/skills/cfn-redis-coordination/src/agent-recovery.ts +454 -0
- package/claude-assets/skills/cfn-redis-coordination/src/completion-reporter.ts +396 -0
- package/claude-assets/skills/cfn-redis-coordination/src/context-manager.ts +327 -0
- package/claude-assets/skills/cfn-redis-coordination/src/index.ts +82 -0
- package/claude-assets/skills/cfn-redis-coordination/src/mode-detector.ts +155 -0
- package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-client.ts +305 -0
- package/claude-assets/skills/cfn-redis-coordination/src/redis/redis-functions.ts +283 -0
- package/claude-assets/skills/cfn-redis-coordination/src/redis-client.ts +654 -0
- package/claude-assets/skills/cfn-redis-coordination/src/result-collector.ts +437 -0
- package/claude-assets/skills/cfn-redis-coordination/src/swarm-manager.ts +494 -0
- package/claude-assets/skills/cfn-redis-coordination/src/task-analyzer.ts +404 -0
- package/claude-assets/skills/cfn-redis-coordination/src/task-executor.ts +423 -0
- package/claude-assets/skills/cfn-redis-coordination/src/types.ts +235 -0
- package/claude-assets/skills/cfn-redis-coordination/src/waiting-coordinator.ts +587 -0
- package/claude-assets/skills/cfn-redis-coordination/test-connection-attempts.js +70 -0
- package/claude-assets/skills/cfn-redis-coordination/test-mode-simple.js +121 -0
- package/claude-assets/skills/cfn-redis-coordination/test-redis-check.js +84 -0
- package/claude-assets/skills/cfn-redis-coordination/test-task-mode-redis.cjs +391 -0
- package/claude-assets/skills/cfn-redis-coordination/tests/coordination.test.ts +779 -0
- package/claude-assets/skills/cfn-redis-coordination/tsconfig.json +31 -0
- package/claude-assets/skills/cfn-skill-propagation/README.md +233 -0
- package/claude-assets/skills/cfn-skill-propagation/package-lock.json +5174 -0
- package/claude-assets/skills/cfn-skill-propagation/package.json +52 -0
- package/claude-assets/skills/cfn-skill-propagation/propagate-skill-update.sh +32 -0
- package/claude-assets/skills/cfn-skill-propagation/src/cli.ts +75 -0
- package/claude-assets/skills/cfn-skill-propagation/src/database-adapter.ts +239 -0
- package/claude-assets/skills/cfn-skill-propagation/src/file-system-adapter.ts +113 -0
- package/claude-assets/skills/cfn-skill-propagation/src/index.ts +72 -0
- package/claude-assets/skills/cfn-skill-propagation/src/logger.ts +43 -0
- package/claude-assets/skills/cfn-skill-propagation/src/metadata-parser.ts +154 -0
- package/claude-assets/skills/cfn-skill-propagation/src/skill-propagator.ts +274 -0
- package/claude-assets/skills/cfn-skill-propagation/src/skill-validator.ts +179 -0
- package/claude-assets/skills/cfn-skill-propagation/src/types.ts +143 -0
- package/claude-assets/skills/cfn-skill-propagation/src/version-manager.ts +118 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/file-system-adapter.test.ts +91 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/metadata-parser.test.ts +176 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/skill-propagator.test.ts +209 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/skill-validator.test.ts +203 -0
- package/claude-assets/skills/cfn-skill-propagation/tests/version-manager.test.ts +115 -0
- package/claude-assets/skills/cfn-skill-propagation/tsconfig.json +34 -0
- package/claude-assets/skills/task-classifier/SKILL.md +81 -0
- package/claude-assets/skills/task-classifier/classify-task.sh +62 -0
- package/claude-assets/skills/workflow-codification/package-lock.json +5170 -0
- package/claude-assets/skills/workflow-codification/package.json +30 -0
- package/claude-assets/skills/workflow-codification/src/index.ts +24 -0
- package/claude-assets/skills/workflow-codification/src/pattern-analyzer.ts +537 -0
- package/claude-assets/skills/workflow-codification/src/types.ts +180 -0
- package/claude-assets/skills/workflow-codification/tests/pattern-analyzer.test.ts +960 -0
- package/claude-assets/skills/workflow-codification/tsconfig.json +34 -0
- package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
- package/dist/agent-spawner/agent-spawner.js +448 -0
- package/dist/agent-spawner/agent-spawner.js.map +1 -0
- package/dist/agent-spawner/index.js +10 -0
- package/dist/agent-spawner/index.js.map +1 -0
- package/dist/agent-spawner/types.js +14 -0
- package/dist/agent-spawner/types.js.map +1 -0
- package/dist/cli/agent-executor.js +47 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-spawn.js +4 -1
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/config-manager.js +109 -91
- package/dist/cli/config-manager.js.map +1 -1
- package/dist/cli/conversation-fork-cleanup.js +201 -0
- package/dist/cli/conversation-fork-cleanup.js.map +1 -0
- package/dist/cli/conversation-fork.js +16 -3
- package/dist/cli/conversation-fork.js.map +1 -1
- package/dist/cli/tool-executor.js +3 -1
- package/dist/cli/tool-executor.js.map +1 -1
- package/dist/gate-checker/gate-checker.js +292 -0
- package/dist/gate-checker/gate-checker.js.map +1 -0
- package/dist/gate-checker/types.js +94 -0
- package/dist/gate-checker/types.js.map +1 -0
- package/dist/lib/database-service/connection-pool-manager.js +2 -1
- package/dist/lib/database-service/connection-pool-manager.js.map +1 -1
- package/dist/orchestrator/index.js +10 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/orchestrate.js +496 -0
- package/dist/orchestrator/orchestrate.js.map +1 -0
- package/dist/orchestrator/types.js +58 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/docs/BUG_19_MEMORY_LEAK_TASK_MODE.md +405 -0
- package/docs/MEMORY_CLEANUP_GUIDE.md +358 -0
- package/docs/MEMORY_LEAK_FIX_SUMMARY.md +322 -0
- package/docs/REDIS_CLEANUP_EXECUTIVE_SUMMARY.md +319 -0
- package/docs/REDIS_CLEANUP_VERIFICATION_REPORT.md +574 -0
- package/package.json +208 -201
- package/readme/README.md +34 -1
- package/scripts/switch-api.sh +142 -4
- package/scripts/verify-no-secrets.sh +6 -13
- package/scripts/verify-redis-cleanup.sh +173 -0
- package/tests/README.md +201 -0
- package/tests/test-memory-leak-task-mode.sh +435 -0
package/scripts/switch-api.sh
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
##############################################################################
|
|
3
3
|
# Claude API Switcher - Main Chat & Task Tool Provider Routing
|
|
4
4
|
#
|
|
5
|
-
# Usage: scripts/switch-api.sh [zai|kimi|openrouter|max|status]
|
|
5
|
+
# Usage: scripts/switch-api.sh [zai|kimi|gemini|xai|openrouter|max|status]
|
|
6
6
|
#
|
|
7
7
|
# What it does:
|
|
8
8
|
# - zai: Main Chat + Task tool use Z.ai
|
|
9
9
|
# - kimi: Main Chat + Task tool use Moonshot Kimi
|
|
10
|
+
# - gemini: Main Chat + Task tool use Google Gemini (via OpenRouter)
|
|
11
|
+
# - xai: Main Chat + Task tool use XAi (Grok)
|
|
10
12
|
# - openrouter: Main Chat + Task tool use OpenRouter
|
|
11
13
|
# - max: Main Chat + Task tool use Anthropic (requires re-login)
|
|
12
14
|
# - CLI: Respects custom routing when enabled (see agent profiles)
|
|
@@ -66,11 +68,22 @@ show_status() {
|
|
|
66
68
|
echo " Base URL: $BASE_URL"
|
|
67
69
|
echo " Model: $MODEL"
|
|
68
70
|
echo " Cost: ~\$2/1M tokens"
|
|
69
|
-
elif [[ "$BASE_URL" == *"
|
|
70
|
-
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC}
|
|
71
|
+
elif [[ "$BASE_URL" == *"x.ai"* ]]; then
|
|
72
|
+
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} XAi (Grok)"
|
|
71
73
|
echo " Base URL: $BASE_URL"
|
|
72
74
|
echo " Model: $MODEL"
|
|
73
|
-
echo "
|
|
75
|
+
echo " Anthropic-compatible API"
|
|
76
|
+
elif [[ "$BASE_URL" == *"openrouter.ai"* ]]; then
|
|
77
|
+
if [[ "$MODEL" == google/gemini* ]]; then
|
|
78
|
+
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} Google Gemini (via OpenRouter)"
|
|
79
|
+
echo " Model: $MODEL"
|
|
80
|
+
echo " Cost: ~\$0.30/1M tokens (input), ~\$1.20/1M tokens (output)"
|
|
81
|
+
else
|
|
82
|
+
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} OpenRouter"
|
|
83
|
+
echo " Base URL: $BASE_URL"
|
|
84
|
+
echo " Model: $MODEL"
|
|
85
|
+
echo " Cost: Varies by model"
|
|
86
|
+
fi
|
|
74
87
|
else
|
|
75
88
|
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} Custom"
|
|
76
89
|
echo " Base URL: $BASE_URL"
|
|
@@ -196,6 +209,117 @@ switch_to_kimi() {
|
|
|
196
209
|
echo ""
|
|
197
210
|
}
|
|
198
211
|
|
|
212
|
+
##############################################################################
|
|
213
|
+
# Switch to Gemini (via OpenRouter) for Main Chat and Task Tool
|
|
214
|
+
##############################################################################
|
|
215
|
+
switch_to_gemini() {
|
|
216
|
+
echo -e "${BLUE}Switching Main Chat/Task Tool to Google Gemini...${NC}"
|
|
217
|
+
echo ""
|
|
218
|
+
|
|
219
|
+
# Backup current settings
|
|
220
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
221
|
+
BACKUP_NAME="settings-$(date +%Y%m%d-%H%M%S)-before-gemini.json"
|
|
222
|
+
cp "$SETTINGS_FILE" "$BACKUP_DIR/$BACKUP_NAME"
|
|
223
|
+
echo -e "${GREEN}✓${NC} Backed up: $BACKUP_DIR/$BACKUP_NAME"
|
|
224
|
+
fi
|
|
225
|
+
|
|
226
|
+
# Read current settings or create empty object
|
|
227
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
228
|
+
CURRENT_SETTINGS=$(cat "$SETTINGS_FILE")
|
|
229
|
+
else
|
|
230
|
+
CURRENT_SETTINGS='{}'
|
|
231
|
+
fi
|
|
232
|
+
|
|
233
|
+
# Add Gemini env vars to settings (via OpenRouter with Gemini model)
|
|
234
|
+
OPENROUTER_KEY=$(grep -E "^OPENROUTER_API_KEY=" .env | head -1 | cut -d'=' -f2 | sed 's/#.*//' | xargs)
|
|
235
|
+
if [ -z "$OPENROUTER_KEY" ]; then
|
|
236
|
+
echo -e "${RED}Error: OPENROUTER_API_KEY not found in .env${NC}"
|
|
237
|
+
exit 1
|
|
238
|
+
fi
|
|
239
|
+
# Use Gemini 2.0 Flash as default (fast, cost-effective)
|
|
240
|
+
NEW_SETTINGS=$(echo "$CURRENT_SETTINGS" | jq --arg key "$OPENROUTER_KEY" '. + {"env": ((.env // {}) + {"ANTHROPIC_BASE_URL": "https://openrouter.ai/api/v1", "ANTHROPIC_AUTH_TOKEN": $key, "ANTHROPIC_MODEL": "google/gemini-2.0-flash-001", "ANTHROPIC_SMALL_FAST_MODEL": "google/gemini-2.0-flash-001"})}')
|
|
241
|
+
|
|
242
|
+
echo "$NEW_SETTINGS" > "$SETTINGS_FILE"
|
|
243
|
+
|
|
244
|
+
echo ""
|
|
245
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
246
|
+
echo -e "${GREEN}✓ Switched to Google Gemini${NC}"
|
|
247
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
248
|
+
echo ""
|
|
249
|
+
echo -e "${GREEN}Main Chat + Task Tool:${NC} Gemini (via OpenRouter)"
|
|
250
|
+
echo " • All Task() spawned agents use Gemini"
|
|
251
|
+
echo " • Model: google/gemini-2.0-flash-001"
|
|
252
|
+
echo " • Cost: ~\$0.30/1M tokens (input), ~\$1.20/1M tokens (output)"
|
|
253
|
+
echo " • No login required"
|
|
254
|
+
echo ""
|
|
255
|
+
echo -e "${BLUE}Available Gemini Models:${NC}"
|
|
256
|
+
echo " • google/gemini-2.0-flash-001 (default, fast)"
|
|
257
|
+
echo " • google/gemini-pro"
|
|
258
|
+
echo " • google/gemini-pro-vision"
|
|
259
|
+
echo " • Edit model in .claude/settings.json"
|
|
260
|
+
echo ""
|
|
261
|
+
echo -e "${YELLOW}Next Steps:${NC}"
|
|
262
|
+
echo " 1. Restart Claude desktop (if running)"
|
|
263
|
+
echo " 2. Test: Main Chat should use Gemini"
|
|
264
|
+
echo " 3. Visit: https://openrouter.ai/models for model pricing"
|
|
265
|
+
echo ""
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
##############################################################################
|
|
269
|
+
# Switch to XAi (Grok) for Main Chat and Task Tool
|
|
270
|
+
##############################################################################
|
|
271
|
+
switch_to_xai() {
|
|
272
|
+
echo -e "${BLUE}Switching Main Chat/Task Tool to XAi (Grok)...${NC}"
|
|
273
|
+
echo ""
|
|
274
|
+
|
|
275
|
+
# Backup current settings
|
|
276
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
277
|
+
BACKUP_NAME="settings-$(date +%Y%m%d-%H%M%S)-before-xai.json"
|
|
278
|
+
cp "$SETTINGS_FILE" "$BACKUP_DIR/$BACKUP_NAME"
|
|
279
|
+
echo -e "${GREEN}✓${NC} Backed up: $BACKUP_DIR/$BACKUP_NAME"
|
|
280
|
+
fi
|
|
281
|
+
|
|
282
|
+
# Read current settings or create empty object
|
|
283
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
284
|
+
CURRENT_SETTINGS=$(cat "$SETTINGS_FILE")
|
|
285
|
+
else
|
|
286
|
+
CURRENT_SETTINGS='{}'
|
|
287
|
+
fi
|
|
288
|
+
|
|
289
|
+
# Add XAi env vars to settings (read from .env)
|
|
290
|
+
XAI_KEY=$(grep -E "^XAI_API_KEY=" .env | head -1 | cut -d'=' -f2 | sed 's/#.*//' | xargs)
|
|
291
|
+
if [ -z "$XAI_KEY" ]; then
|
|
292
|
+
echo -e "${RED}Error: XAI_API_KEY not found in .env${NC}"
|
|
293
|
+
exit 1
|
|
294
|
+
fi
|
|
295
|
+
# Use Grok Beta as default (Anthropic-compatible API)
|
|
296
|
+
NEW_SETTINGS=$(echo "$CURRENT_SETTINGS" | jq --arg key "$XAI_KEY" '. + {"env": ((.env // {}) + {"ANTHROPIC_BASE_URL": "https://api.x.ai/v1", "ANTHROPIC_AUTH_TOKEN": $key, "ANTHROPIC_MODEL": "grok-beta", "ANTHROPIC_SMALL_FAST_MODEL": "grok-beta"})}')
|
|
297
|
+
|
|
298
|
+
echo "$NEW_SETTINGS" > "$SETTINGS_FILE"
|
|
299
|
+
|
|
300
|
+
echo ""
|
|
301
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
302
|
+
echo -e "${GREEN}✓ Switched to XAi (Grok)${NC}"
|
|
303
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
304
|
+
echo ""
|
|
305
|
+
echo -e "${GREEN}Main Chat + Task Tool:${NC} XAi (Grok)"
|
|
306
|
+
echo " • All Task() spawned agents use XAi"
|
|
307
|
+
echo " • Model: grok-beta"
|
|
308
|
+
echo " • Anthropic-compatible API format"
|
|
309
|
+
echo " • No login required"
|
|
310
|
+
echo ""
|
|
311
|
+
echo -e "${BLUE}Available Models:${NC}"
|
|
312
|
+
echo " • grok-beta (default)"
|
|
313
|
+
echo " • grok-vision-beta (with vision capabilities)"
|
|
314
|
+
echo " • Edit model in .claude/settings.json"
|
|
315
|
+
echo ""
|
|
316
|
+
echo -e "${YELLOW}Next Steps:${NC}"
|
|
317
|
+
echo " 1. Restart Claude desktop (if running)"
|
|
318
|
+
echo " 2. Test: Main Chat should use XAi"
|
|
319
|
+
echo " 3. Visit: https://x.ai/api for more info"
|
|
320
|
+
echo ""
|
|
321
|
+
}
|
|
322
|
+
|
|
199
323
|
##############################################################################
|
|
200
324
|
# Switch to OpenRouter for Main Chat and Task Tool
|
|
201
325
|
##############################################################################
|
|
@@ -323,6 +447,16 @@ case "${1:-status}" in
|
|
|
323
447
|
show_status
|
|
324
448
|
;;
|
|
325
449
|
|
|
450
|
+
gemini|google)
|
|
451
|
+
switch_to_gemini
|
|
452
|
+
show_status
|
|
453
|
+
;;
|
|
454
|
+
|
|
455
|
+
xai|grok)
|
|
456
|
+
switch_to_xai
|
|
457
|
+
show_status
|
|
458
|
+
;;
|
|
459
|
+
|
|
326
460
|
openrouter|or)
|
|
327
461
|
switch_to_openrouter
|
|
328
462
|
show_status
|
|
@@ -342,6 +476,8 @@ case "${1:-status}" in
|
|
|
342
476
|
echo " status Show current API configuration (default)"
|
|
343
477
|
echo " zai Switch Main Chat/Task tool to Z.ai"
|
|
344
478
|
echo " kimi Switch Main Chat/Task tool to Moonshot Kimi"
|
|
479
|
+
echo " gemini Switch Main Chat/Task tool to Google Gemini"
|
|
480
|
+
echo " xai Switch Main Chat/Task tool to XAi (Grok)"
|
|
345
481
|
echo " openrouter Switch Main Chat/Task tool to OpenRouter"
|
|
346
482
|
echo " max Switch Main Chat/Task tool to Anthropic"
|
|
347
483
|
echo ""
|
|
@@ -349,6 +485,8 @@ case "${1:-status}" in
|
|
|
349
485
|
echo " $0 # Show current status"
|
|
350
486
|
echo " $0 zai # Use Z.ai for Main Chat (\$0.50/1M tokens)"
|
|
351
487
|
echo " $0 kimi # Use Moonshot Kimi (~\$2/1M tokens)"
|
|
488
|
+
echo " $0 gemini # Use Google Gemini (~\$0.30/1M input tokens)"
|
|
489
|
+
echo " $0 xai # Use XAi Grok (Anthropic-compatible)"
|
|
352
490
|
echo " $0 openrouter # Use OpenRouter (varies by model)"
|
|
353
491
|
echo " $0 max # Use Anthropic (\$15/1M tokens, requires re-login)"
|
|
354
492
|
echo ""
|
|
@@ -38,23 +38,16 @@ fi
|
|
|
38
38
|
|
|
39
39
|
# Expanded secret patterns (CVSS 9.0 critical fixes)
|
|
40
40
|
SECRET_PATTERNS=(
|
|
41
|
-
# Anthropic keys
|
|
41
|
+
# Anthropic keys (real format, not templates)
|
|
42
42
|
"sk-ant-v1-[a-zA-Z0-9_-]{50,}"
|
|
43
43
|
|
|
44
|
-
# Environment variable assignments with secrets
|
|
44
|
+
# Environment variable assignments with ACTUAL secrets (not variables/templates)
|
|
45
45
|
"(ANTHROPIC_API_KEY|ZAI_API_KEY|NPM_API_KEY|REDIS_PASSWORD|POSTGRES_PASSWORD|JWT_SECRET|SESSION_SECRET)=[A-Za-z0-9_-/+]{20,}"
|
|
46
46
|
|
|
47
|
-
# AWS keys
|
|
47
|
+
# AWS keys (real format)
|
|
48
48
|
"AKIA[0-9A-Z]{16}"
|
|
49
|
-
"aws_secret_access_key"
|
|
50
49
|
|
|
51
|
-
#
|
|
52
|
-
"(postgres|mysql|mongo).*password.*[a-zA-Z0-9!@#$]{8,}"
|
|
53
|
-
|
|
54
|
-
# Bearer tokens
|
|
55
|
-
"Bearer\s+[a-zA-Z0-9_.-]{20,}"
|
|
56
|
-
|
|
57
|
-
# Private keys
|
|
50
|
+
# Private keys (actual PEM format)
|
|
58
51
|
"-----BEGIN.*PRIVATE KEY"
|
|
59
52
|
)
|
|
60
53
|
|
|
@@ -62,7 +55,7 @@ SECRET_PATTERNS=(
|
|
|
62
55
|
if [ -d "dist" ]; then
|
|
63
56
|
echo "Scanning dist/ directory..."
|
|
64
57
|
for pattern in "${SECRET_PATTERNS[@]}"; do
|
|
65
|
-
if grep -r -E "$pattern" dist/ 2>/dev/null || true | grep -q .; then
|
|
58
|
+
if grep -r -E "$pattern" dist/ --exclude="*.js.map" --exclude="*.map" 2>/dev/null || true | grep -q .; then
|
|
66
59
|
echo -e "${RED}[ERROR] Secret pattern detected in dist/: $pattern${NC}"
|
|
67
60
|
FOUND_SECRETS=1
|
|
68
61
|
fi
|
|
@@ -72,7 +65,7 @@ fi
|
|
|
72
65
|
if [ -d ".claude" ]; then
|
|
73
66
|
echo "Scanning .claude/ directory..."
|
|
74
67
|
for pattern in "${SECRET_PATTERNS[@]}"; do
|
|
75
|
-
if grep -r -E "$pattern" .claude/ --exclude-dir=legacy 2>/dev/null || true | grep -q .; then
|
|
68
|
+
if grep -r -E "$pattern" .claude/ --exclude-dir=legacy --exclude-dir=hooks 2>/dev/null || true | grep -q .; then
|
|
76
69
|
echo -e "${RED}[ERROR] Secret pattern detected in .claude/: $pattern${NC}"
|
|
77
70
|
FOUND_SECRETS=1
|
|
78
71
|
fi
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Redis Cleanup Verification Script
|
|
3
|
+
#
|
|
4
|
+
# Quick health check for Redis cleanup mechanisms
|
|
5
|
+
# Run this anytime to verify no process leaks or memory issues
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
# Colors
|
|
10
|
+
RED='\033[0;31m'
|
|
11
|
+
GREEN='\033[0;32m'
|
|
12
|
+
YELLOW='\033[1;33m'
|
|
13
|
+
NC='\033[0m' # No Color
|
|
14
|
+
|
|
15
|
+
# Configuration
|
|
16
|
+
REDIS_HOST="${CFN_REDIS_HOST:-localhost}"
|
|
17
|
+
REDIS_PORT="${CFN_REDIS_PORT:-6379}"
|
|
18
|
+
|
|
19
|
+
# Counters
|
|
20
|
+
ISSUES_FOUND=0
|
|
21
|
+
|
|
22
|
+
echo "======================================"
|
|
23
|
+
echo "Redis Cleanup Verification"
|
|
24
|
+
echo "======================================"
|
|
25
|
+
echo ""
|
|
26
|
+
echo "Configuration:"
|
|
27
|
+
echo " Redis: $REDIS_HOST:$REDIS_PORT"
|
|
28
|
+
echo " Date: $(date)"
|
|
29
|
+
echo ""
|
|
30
|
+
|
|
31
|
+
# Test 1: Redis connectivity
|
|
32
|
+
echo "1. Checking Redis connectivity..."
|
|
33
|
+
if redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ping >/dev/null 2>&1; then
|
|
34
|
+
echo -e " ${GREEN}✓${NC} Redis is reachable"
|
|
35
|
+
else
|
|
36
|
+
echo -e " ${RED}✗${NC} Cannot connect to Redis"
|
|
37
|
+
ISSUES_FOUND=$((ISSUES_FOUND + 1))
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
# Test 2: Process leak detection
|
|
41
|
+
echo ""
|
|
42
|
+
echo "2. Checking for redis-cli process leaks..."
|
|
43
|
+
REDIS_CLI_COUNT=$(pgrep -f "redis-cli" | wc -l || echo "0")
|
|
44
|
+
if [ "$REDIS_CLI_COUNT" -eq 0 ]; then
|
|
45
|
+
echo -e " ${GREEN}✓${NC} No redis-cli processes found (expected)"
|
|
46
|
+
else
|
|
47
|
+
echo -e " ${YELLOW}⚠${NC} Found $REDIS_CLI_COUNT redis-cli processes"
|
|
48
|
+
ps aux | grep "redis-cli" | grep -v grep
|
|
49
|
+
ISSUES_FOUND=$((ISSUES_FOUND + 1))
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# Test 3: Redis memory usage
|
|
53
|
+
echo ""
|
|
54
|
+
echo "3. Checking Redis memory usage..."
|
|
55
|
+
REDIS_MEMORY=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" info memory 2>/dev/null | grep "used_memory_human:" | cut -d: -f2 | tr -d '\r\n' || echo "unknown")
|
|
56
|
+
echo " Memory used: $REDIS_MEMORY"
|
|
57
|
+
|
|
58
|
+
# Extract numeric value (handle M/K/G suffixes)
|
|
59
|
+
MEMORY_NUM=$(echo "$REDIS_MEMORY" | grep -oE '[0-9]+' | head -1)
|
|
60
|
+
MEMORY_UNIT=$(echo "$REDIS_MEMORY" | grep -oE '[A-Z]' | head -1)
|
|
61
|
+
|
|
62
|
+
if [ "$MEMORY_UNIT" = "G" ]; then
|
|
63
|
+
# Over 1 GB is concerning
|
|
64
|
+
echo -e " ${RED}⚠${NC} High memory usage (>1 GB)"
|
|
65
|
+
ISSUES_FOUND=$((ISSUES_FOUND + 1))
|
|
66
|
+
elif [ "$MEMORY_UNIT" = "M" ] && [ "$MEMORY_NUM" -gt 500 ]; then
|
|
67
|
+
# Over 500 MB is a warning
|
|
68
|
+
echo -e " ${YELLOW}⚠${NC} Elevated memory usage (>500 MB)"
|
|
69
|
+
else
|
|
70
|
+
echo -e " ${GREEN}✓${NC} Memory usage is normal"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# Test 4: Keys without TTL
|
|
74
|
+
echo ""
|
|
75
|
+
echo "4. Checking for keys without TTL..."
|
|
76
|
+
NO_TTL_COUNT=0
|
|
77
|
+
|
|
78
|
+
# Check message keys
|
|
79
|
+
MESSAGE_KEYS=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" keys "swarm:*:*:messages" 2>/dev/null | wc -l || echo "0")
|
|
80
|
+
if [ "$MESSAGE_KEYS" -gt 0 ]; then
|
|
81
|
+
while read -r key; do
|
|
82
|
+
if [ -z "$key" ]; then continue; fi
|
|
83
|
+
TTL=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ttl "$key" 2>/dev/null || echo "-2")
|
|
84
|
+
if [ "$TTL" -eq -1 ]; then
|
|
85
|
+
echo -e " ${YELLOW}⚠${NC} No TTL: $key"
|
|
86
|
+
NO_TTL_COUNT=$((NO_TTL_COUNT + 1))
|
|
87
|
+
fi
|
|
88
|
+
done < <(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" keys "swarm:*:*:messages" 2>/dev/null)
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
# Check fork keys
|
|
92
|
+
FORK_KEYS=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" keys "swarm:*:*:fork:*:messages" 2>/dev/null | wc -l || echo "0")
|
|
93
|
+
if [ "$FORK_KEYS" -gt 0 ]; then
|
|
94
|
+
while read -r key; do
|
|
95
|
+
if [ -z "$key" ]; then continue; fi
|
|
96
|
+
TTL=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" ttl "$key" 2>/dev/null || echo "-2")
|
|
97
|
+
if [ "$TTL" -eq -1 ]; then
|
|
98
|
+
echo -e " ${YELLOW}⚠${NC} No TTL: $key"
|
|
99
|
+
NO_TTL_COUNT=$((NO_TTL_COUNT + 1))
|
|
100
|
+
fi
|
|
101
|
+
done < <(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" keys "swarm:*:*:fork:*:messages" 2>/dev/null)
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
if [ "$NO_TTL_COUNT" -eq 0 ]; then
|
|
105
|
+
echo -e " ${GREEN}✓${NC} All keys have TTL"
|
|
106
|
+
else
|
|
107
|
+
echo -e " ${RED}✗${NC} $NO_TTL_COUNT keys without TTL"
|
|
108
|
+
ISSUES_FOUND=$((ISSUES_FOUND + 1))
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
# Test 5: Key count
|
|
112
|
+
echo ""
|
|
113
|
+
echo "5. Checking key counts..."
|
|
114
|
+
TOTAL_MESSAGE_KEYS=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" keys "swarm:*:*:messages" 2>/dev/null | wc -l || echo "0")
|
|
115
|
+
TOTAL_FORK_KEYS=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" keys "swarm:*:*:fork:*" 2>/dev/null | wc -l || echo "0")
|
|
116
|
+
TOTAL_RESULT_KEYS=$(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" keys "swarm:*:*:result:*" 2>/dev/null | wc -l || echo "0")
|
|
117
|
+
|
|
118
|
+
echo " Message keys: $TOTAL_MESSAGE_KEYS"
|
|
119
|
+
echo " Fork keys: $TOTAL_FORK_KEYS"
|
|
120
|
+
echo " Result keys: $TOTAL_RESULT_KEYS"
|
|
121
|
+
|
|
122
|
+
if [ "$TOTAL_MESSAGE_KEYS" -gt 100 ]; then
|
|
123
|
+
echo -e " ${YELLOW}⚠${NC} High message key count (>100)"
|
|
124
|
+
fi
|
|
125
|
+
|
|
126
|
+
# Test 6: Node.js processes
|
|
127
|
+
echo ""
|
|
128
|
+
echo "6. Checking Node.js processes..."
|
|
129
|
+
NODE_COUNT=$(pgrep -f "node" | wc -l || echo "0")
|
|
130
|
+
echo " Node.js processes: $NODE_COUNT"
|
|
131
|
+
|
|
132
|
+
if [ "$NODE_COUNT" -gt 20 ]; then
|
|
133
|
+
echo -e " ${YELLOW}⚠${NC} High Node.js process count (>20)"
|
|
134
|
+
echo " Top 5 by memory:"
|
|
135
|
+
ps aux | grep -E "node|ts-node" | grep -v grep | sort -k4 -rn | head -5
|
|
136
|
+
fi
|
|
137
|
+
|
|
138
|
+
# Summary
|
|
139
|
+
echo ""
|
|
140
|
+
echo "======================================"
|
|
141
|
+
echo "Summary"
|
|
142
|
+
echo "======================================"
|
|
143
|
+
|
|
144
|
+
if [ "$ISSUES_FOUND" -eq 0 ]; then
|
|
145
|
+
echo -e "${GREEN}✓ All checks passed - No issues found${NC}"
|
|
146
|
+
echo ""
|
|
147
|
+
echo "Redis cleanup is working correctly."
|
|
148
|
+
exit 0
|
|
149
|
+
else
|
|
150
|
+
echo -e "${RED}✗ Found $ISSUES_FOUND issue(s)${NC}"
|
|
151
|
+
echo ""
|
|
152
|
+
echo "Recommended actions:"
|
|
153
|
+
|
|
154
|
+
if [ "$REDIS_CLI_COUNT" -gt 0 ]; then
|
|
155
|
+
echo " - Kill redis-cli processes: pkill -f redis-cli"
|
|
156
|
+
fi
|
|
157
|
+
|
|
158
|
+
if [ "$NO_TTL_COUNT" -gt 0 ]; then
|
|
159
|
+
echo " - Set TTL on keys without expiration"
|
|
160
|
+
echo " node -e \"const { setMessageListTTL } = require('./dist/cli/conversation-fork-cleanup.js'); setMessageListTTL('task-id', 'agent-id', 86400);\""
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
if [ "$MEMORY_NUM" -gt 500 ] && [ "$MEMORY_UNIT" = "M" ]; then
|
|
164
|
+
echo " - Consider emergency cleanup (WARNING: deletes all conversation history)"
|
|
165
|
+
echo " node -e \"const { emergencyCleanupAll } = require('./dist/cli/conversation-fork-cleanup.js'); emergencyCleanupAll();\""
|
|
166
|
+
fi
|
|
167
|
+
|
|
168
|
+
echo ""
|
|
169
|
+
echo "For detailed analysis, run:"
|
|
170
|
+
echo " ./tests/test-memory-leak-task-mode.sh"
|
|
171
|
+
|
|
172
|
+
exit 1
|
|
173
|
+
fi
|
package/tests/README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# Claude Flow Novice Test Suite
|
|
2
|
+
|
|
3
|
+
Comprehensive test suite for CLI and Docker mode execution.
|
|
4
|
+
|
|
5
|
+
## Quick Reference
|
|
6
|
+
|
|
7
|
+
| Test Suite | Command | Tests Run | Duration | When to Use |
|
|
8
|
+
|------------|---------|-----------|----------|-------------|
|
|
9
|
+
| **CLI Quick** | `tests/cli-mode/run-all-tests.sh --quick` | 4 unit tests | ~1 min | Pre-commit, fast validation |
|
|
10
|
+
| **CLI Integration** | `tests/cli-mode/run-all-tests.sh --integration` | 10 tests (unit + integration) | ~5 min | PR validation |
|
|
11
|
+
| **CLI Full** | `tests/cli-mode/run-all-tests.sh --full` | 12 tests (all core) | ~15 min | Release validation |
|
|
12
|
+
| **Docker Quick** | `tests/docker/run-all-tests.sh --quick` | Critical integration | ~2 min | Pre-commit, fast validation |
|
|
13
|
+
| **Docker Integration** | `tests/docker/run-all-tests.sh --integration` | All integration | ~10 min | PR validation |
|
|
14
|
+
| **Docker Full** | `tests/docker/run-all-tests.sh --full` | 17 core tests | ~30 min | Release validation |
|
|
15
|
+
|
|
16
|
+
**Note:** Test runners automatically exclude legacy/ tests (historical reference only).
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# CLI Mode Tests (from project root)
|
|
22
|
+
tests/cli-mode/run-all-tests.sh --quick # Fast validation (~1 min)
|
|
23
|
+
tests/cli-mode/run-all-tests.sh --integration # Pre-commit (~5 min)
|
|
24
|
+
tests/cli-mode/run-all-tests.sh --full # Full suite (~15 min)
|
|
25
|
+
|
|
26
|
+
# Docker Mode Tests (from project root)
|
|
27
|
+
tests/docker/run-all-tests.sh --quick # Fast validation (~2 min)
|
|
28
|
+
tests/docker/run-all-tests.sh --integration # Pre-commit (~10 min)
|
|
29
|
+
tests/docker/run-all-tests.sh --full # Full suite (~30 min)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Test Organization
|
|
33
|
+
|
|
34
|
+
### CLI Mode (12 core tests + 3 legacy)
|
|
35
|
+
```
|
|
36
|
+
tests/cli-mode/
|
|
37
|
+
├── core/
|
|
38
|
+
│ ├── unit/ 4 tests - Parameter validation, tool access, thresholds
|
|
39
|
+
│ ├── integration/ 6 tests - Coordinator spawning, orchestrator workflow
|
|
40
|
+
│ ├── e2e/ 2 tests - TRUE E2E with real production scripts
|
|
41
|
+
│ └── legacy/ 3 tests - Superseded by TRUE E2E (historical reference)
|
|
42
|
+
├── archive/ 5 tests - Obsolete/redundant
|
|
43
|
+
└── run-all-tests.sh Comprehensive test runner (excludes legacy/)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Run Commands:**
|
|
47
|
+
```bash
|
|
48
|
+
tests/cli-mode/run-all-tests.sh --quick # Unit tests only (~1 min)
|
|
49
|
+
tests/cli-mode/run-all-tests.sh --integration # Unit + Integration (~5 min)
|
|
50
|
+
tests/cli-mode/run-all-tests.sh --full # All tests including E2E (~15 min)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Docker Mode (17 core tests + 14 legacy)
|
|
54
|
+
```
|
|
55
|
+
tests/docker/
|
|
56
|
+
├── core/
|
|
57
|
+
│ ├── 17 tests Agent lifecycle, coordinators, wave orchestration
|
|
58
|
+
│ └── legacy/ 14 tests - Bug-specific validation (historical)
|
|
59
|
+
├── integration/ 5 tests - Integration validation
|
|
60
|
+
├── unit/ 1 test - Syntax validation
|
|
61
|
+
├── archive/ Experimental/obsolete tests
|
|
62
|
+
└── run-all-tests.sh Comprehensive test runner (excludes legacy/)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Run Commands:**
|
|
66
|
+
```bash
|
|
67
|
+
tests/docker/run-all-tests.sh --quick # Critical integration (~2 min)
|
|
68
|
+
tests/docker/run-all-tests.sh --integration # All integration tests (~10 min)
|
|
69
|
+
tests/docker/run-all-tests.sh --full # Full suite with E2E (~30 min)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Legacy Tests:**
|
|
73
|
+
- Not included in test runners by default
|
|
74
|
+
- Preserved for historical reference and regression debugging
|
|
75
|
+
- See `tests/cli-mode/core/legacy/README.md` and `tests/docker/core/legacy/README.md`
|
|
76
|
+
|
|
77
|
+
## Test Categories
|
|
78
|
+
|
|
79
|
+
### Unit Tests
|
|
80
|
+
- **Purpose**: Component validation
|
|
81
|
+
- **Runtime**: 1-2 minutes
|
|
82
|
+
- **Prerequisites**: None
|
|
83
|
+
- **Examples**: Parameter validation, syntax checking, path resolution
|
|
84
|
+
|
|
85
|
+
### Integration Tests
|
|
86
|
+
- **Purpose**: Component interaction
|
|
87
|
+
- **Runtime**: 5-10 minutes
|
|
88
|
+
- **Prerequisites**: Redis, Docker
|
|
89
|
+
- **Examples**: Coordinator spawning, Redis coordination, workflow execution
|
|
90
|
+
|
|
91
|
+
### E2E/Core Tests
|
|
92
|
+
- **Purpose**: End-to-end validation with production code paths
|
|
93
|
+
- **Runtime**: 15-30 minutes
|
|
94
|
+
- **Prerequisites**: Redis, Docker, NPX, CFN agent image
|
|
95
|
+
- **Examples**: Full CFN Loop execution, agent spawning, deliverable validation
|
|
96
|
+
|
|
97
|
+
## Bug Tracking
|
|
98
|
+
|
|
99
|
+
### BUG #21: Agent Spawning Mechanism
|
|
100
|
+
**Tests:**
|
|
101
|
+
- Unit: `tests/docker/unit/test-spawn-command-syntax.sh`
|
|
102
|
+
- Integration: `tests/docker/integration/test-real-agent-spawning.sh`
|
|
103
|
+
- E2E: `tests/cli-mode/core/e2e/test-cfn-loop-cli-real-execution.sh`
|
|
104
|
+
|
|
105
|
+
### BUG #22: Empty Parameter Handling
|
|
106
|
+
**Tests:**
|
|
107
|
+
- Unit: `tests/cli-mode/core/unit/test-command-parameter-validation.sh`
|
|
108
|
+
- E2E: `tests/cli-mode/core/e2e/test-cfn-loop-cli-real-execution.sh`
|
|
109
|
+
|
|
110
|
+
## Prerequisites
|
|
111
|
+
|
|
112
|
+
### Required
|
|
113
|
+
- Docker daemon running
|
|
114
|
+
- Redis running (or redis-server available)
|
|
115
|
+
- NPX available
|
|
116
|
+
- Git repository (for PROJECT_ROOT)
|
|
117
|
+
|
|
118
|
+
### Optional
|
|
119
|
+
- docker-compose (for Docker mode tests)
|
|
120
|
+
- CFN agent image (built automatically if needed)
|
|
121
|
+
|
|
122
|
+
## Documentation
|
|
123
|
+
|
|
124
|
+
### Core Documentation
|
|
125
|
+
- **Core Test Summary**: `tests/CORE_TEST_SUMMARY.md` - **START HERE** - Post-reorganization summary
|
|
126
|
+
- **Comprehensive Guide**: `tests/TEST_ORGANIZATION.md` - Complete test organization, categories, and usage
|
|
127
|
+
- **Test Standards**: `tests/CLAUDE.md` - Test authoring standards and boilerplate (includes BUG #21 lesson)
|
|
128
|
+
|
|
129
|
+
### Mode-Specific Documentation
|
|
130
|
+
- **CLI Mode Tests**: `tests/cli-mode/README*.md` - CLI-specific documentation
|
|
131
|
+
- **CLI Legacy Tests**: `tests/cli-mode/core/legacy/README.md` - Historical CLI test reference
|
|
132
|
+
- **Docker Tests**: `tests/docker/TEST_SUITE_README.md` - Docker-specific documentation
|
|
133
|
+
- **Docker Legacy Tests**: `tests/docker/core/legacy/README.md` - Historical Docker test reference
|
|
134
|
+
|
|
135
|
+
### Bug Documentation
|
|
136
|
+
- **BUG #21**: `docs/BUG_21_PRODUCTION_TESTING_REQUIREMENTS.md` - Production testing requirements
|
|
137
|
+
- **BUG #22**: `docs/BUG_CLI_MODE_COORDINATOR_EMPTY_PARAMS.md` - Empty parameter handling
|
|
138
|
+
|
|
139
|
+
## CI/CD Integration
|
|
140
|
+
|
|
141
|
+
### Pre-commit Hooks
|
|
142
|
+
```bash
|
|
143
|
+
tests/cli-mode/run-all-tests.sh --quick
|
|
144
|
+
tests/docker/run-all-tests.sh --quick
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Pull Request Validation
|
|
148
|
+
```bash
|
|
149
|
+
tests/cli-mode/run-all-tests.sh --integration
|
|
150
|
+
tests/docker/run-all-tests.sh --integration
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Release Validation
|
|
154
|
+
```bash
|
|
155
|
+
tests/cli-mode/run-all-tests.sh --full
|
|
156
|
+
tests/docker/run-all-tests.sh --full
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Troubleshooting
|
|
160
|
+
|
|
161
|
+
### Line Ending Issues
|
|
162
|
+
```bash
|
|
163
|
+
dos2unix tests/cli-mode/run-all-tests.sh
|
|
164
|
+
dos2unix tests/docker/run-all-tests.sh
|
|
165
|
+
# or
|
|
166
|
+
sed -i 's/\r$//' tests/cli-mode/run-all-tests.sh
|
|
167
|
+
sed -i 's/\r$//' tests/docker/run-all-tests.sh
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Redis Not Running
|
|
171
|
+
```bash
|
|
172
|
+
redis-server --daemonize yes
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Docker Not Running
|
|
176
|
+
```bash
|
|
177
|
+
sudo systemctl start docker
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### CFN Agent Image Missing
|
|
181
|
+
```bash
|
|
182
|
+
./.claude/skills/docker-build/build.sh \
|
|
183
|
+
--dockerfile docker/Dockerfile.agent \
|
|
184
|
+
--tag cfn-agent:latest
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Contributing
|
|
188
|
+
|
|
189
|
+
When adding new tests:
|
|
190
|
+
1. Follow standards in `tests/CLAUDE.md`
|
|
191
|
+
2. Place in appropriate directory (unit/integration/e2e)
|
|
192
|
+
3. Update relevant documentation
|
|
193
|
+
4. Test with runner scripts before committing
|
|
194
|
+
5. Archive obsolete tests (don't delete)
|
|
195
|
+
|
|
196
|
+
## Support
|
|
197
|
+
|
|
198
|
+
For detailed information, see:
|
|
199
|
+
- `tests/TEST_ORGANIZATION.md` - Complete organization guide
|
|
200
|
+
- `tests/CLAUDE.md` - Test authoring standards
|
|
201
|
+
- `docs/BUG_21_PRODUCTION_TESTING_REQUIREMENTS.md` - Production testing requirements
|