claude-flow-novice 2.9.0 → 2.10.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/CLAUDE.md +1086 -0
- package/.claude/agents/cfn-dev-team/README.md +116 -0
- package/.claude/agents/cfn-dev-team/architecture/api-designer-persona.md +149 -0
- package/.claude/agents/cfn-dev-team/architecture/base-template-generator.md +196 -0
- package/.claude/agents/cfn-dev-team/architecture/goal-planner.md +183 -0
- package/.claude/agents/cfn-dev-team/architecture/planner.md +182 -0
- package/.claude/agents/cfn-dev-team/architecture/system-architect.md +162 -0
- package/.claude/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +540 -0
- package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +20 -14
- package/.claude/agents/cfn-dev-team/coordinators/consensus-builder.md +167 -0
- package/.claude/agents/cfn-dev-team/dev-ops/devops-engineer.md +148 -0
- package/.claude/agents/cfn-dev-team/dev-ops/github-commit-agent.md +118 -0
- package/.claude/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +540 -0
- package/.claude/agents/cfn-dev-team/developers/backend-dev.md +20 -0
- package/.claude/agents/cfn-dev-team/developers/data/data-engineer.md +585 -0
- package/.claude/agents/cfn-dev-team/developers/database/database-architect.md +276 -0
- package/.claude/agents/cfn-dev-team/developers/dev-backend-api.md +147 -0
- package/.claude/agents/cfn-dev-team/developers/frontend/mobile-dev.md +218 -0
- package/.claude/agents/cfn-dev-team/developers/{react-frontend-engineer.md → frontend/react-frontend-engineer.md} +53 -5
- package/.claude/agents/cfn-dev-team/developers/frontend/spec-mobile-react-native.md +199 -0
- package/.claude/agents/cfn-dev-team/developers/graphql-specialist.md +615 -0
- package/.claude/agents/cfn-dev-team/developers/rust-developer.md +174 -0
- package/.claude/agents/cfn-dev-team/documentation/README-VALIDATION.md +243 -0
- package/.claude/agents/cfn-dev-team/documentation/agent-type-guidelines.md +465 -0
- package/.claude/agents/cfn-dev-team/documentation/api-docs.md +103 -0
- package/.claude/agents/cfn-dev-team/documentation/docs-api-openapi.md +98 -0
- package/.claude/agents/cfn-dev-team/documentation/pseudocode.md +159 -0
- package/.claude/agents/cfn-dev-team/documentation/specification.md +157 -0
- package/.claude/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +109 -0
- package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/cto-agent.md +8 -6
- package/.claude/agents/cfn-dev-team/product-owners/power-user-persona.md +190 -0
- package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner.md +85 -59
- package/.claude/agents/cfn-dev-team/reviewers/quality/analyze-code-quality.md +141 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/code-analyzer.md +200 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +321 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +238 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +101 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +375 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/security-specialist.md +193 -0
- package/.claude/agents/cfn-dev-team/reviewers/reviewer.md +39 -0
- package/.claude/agents/cfn-dev-team/testers/interaction-tester.md +31 -0
- package/.claude/agents/cfn-dev-team/testers/load-testing-specialist.md +469 -0
- package/.claude/agents/cfn-dev-team/testers/playwright-tester.md +24 -0
- package/.claude/agents/cfn-dev-team/testers/tester.md +20 -0
- package/.claude/agents/cfn-dev-team/utility/agent-builder.md +151 -0
- package/.claude/agents/cfn-dev-team/utility/analyst.md +178 -0
- package/.claude/agents/cfn-dev-team/utility/claude-code-expert.md +1043 -0
- package/.claude/agents/cfn-dev-team/utility/code-booster.md +139 -0
- package/.claude/agents/cfn-dev-team/utility/context-curator.md +99 -0
- package/.claude/agents/cfn-dev-team/{developers → utility}/researcher.md +6 -4
- package/.claude/commands/cfn/CFN_LOOP_FRONTEND.md +741 -0
- package/.claude/commands/cfn/CFN_LOOP_TASK_MODE.md +353 -0
- package/.claude/commands/cfn/cfn-loop-frontend.md +555 -0
- package/.claude/commands/cfn/cfn-loop.md +168 -7
- package/{CFN-CLAUDE.md → .claude/root-claude-distribute/CFN-CLAUDE.md} +23 -3
- package/.claude/skills/cfn-ace-system/SKILL.md +364 -0
- package/.claude/skills/cfn-ace-system/add-bullet.sh +145 -0
- package/.claude/skills/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +56 -0
- package/.claude/skills/cfn-ace-system/classify-task.sh +18 -0
- package/.claude/skills/cfn-ace-system/export-ace-metrics.sh +48 -0
- package/.claude/skills/cfn-ace-system/extract-tags.sh +385 -0
- package/.claude/skills/cfn-ace-system/format-negative-context.sh +180 -0
- package/.claude/skills/cfn-ace-system/init-indexes.sql +160 -0
- package/.claude/skills/cfn-ace-system/invoke-context-curate.sh +192 -0
- package/.claude/skills/cfn-ace-system/invoke-context-inject.sh +361 -0
- package/.claude/skills/cfn-ace-system/invoke-context-query.sh +139 -0
- package/.claude/skills/cfn-ace-system/invoke-context-reflect.sh +343 -0
- package/.claude/skills/cfn-ace-system/invoke-context-stats.sh +227 -0
- package/.claude/skills/cfn-ace-system/log-merge.sh +67 -0
- package/.claude/skills/cfn-ace-system/monitor-injection-performance.sh +138 -0
- package/.claude/skills/cfn-ace-system/optimize-injection-pipeline.sh +169 -0
- package/.claude/skills/cfn-ace-system/query-anti-patterns.sh +276 -0
- package/.claude/skills/cfn-ace-system/query-contexts.sh +150 -0
- package/.claude/skills/cfn-ace-system/query-reflections.sh +35 -0
- package/.claude/skills/cfn-ace-system/schema/001-create-context-reflections.sql +237 -0
- package/.claude/skills/cfn-ace-system/schema/README.md +723 -0
- package/.claude/skills/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +564 -0
- package/.claude/skills/cfn-ace-system/schema/populate-test-data-simple.sh +62 -0
- package/.claude/skills/cfn-ace-system/schema/populate-test-data.sh +247 -0
- package/.claude/skills/cfn-ace-system/schema/run-migration.sh +231 -0
- package/.claude/skills/cfn-ace-system/schema/validate-schema.sql +280 -0
- package/.claude/skills/cfn-ace-system/score-relevance-adapter.sh +138 -0
- package/.claude/skills/cfn-ace-system/score-relevance.sh +253 -0
- package/.claude/skills/cfn-ace-system/sprint-7-lessons.json +46 -0
- package/.claude/skills/cfn-ace-system/store-reflection.sh +46 -0
- package/.claude/skills/cfn-ace-system/test-ace-skill.sh +312 -0
- package/.claude/skills/cfn-ace-system/track-ab-test.sh +42 -0
- package/.claude/skills/cfn-ace-system/update-reflection.sh +41 -0
- package/.claude/skills/cfn-agent-discovery/SKILL.md +40 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry-clean.json +0 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry-fixed.json +19 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry.json +718 -0
- package/.claude/skills/cfn-agent-discovery/discover-agents.py +184 -0
- package/.claude/skills/cfn-agent-discovery/discover-agents.sh +87 -0
- package/.claude/skills/cfn-agent-discovery/invoke-registry.sh +11 -0
- package/.claude/skills/cfn-agent-discovery/temp_script.py +0 -0
- package/.claude/skills/cfn-agent-execution/execute-agent.sh +126 -0
- package/.claude/skills/cfn-agent-output-processing/SKILL.md +359 -0
- package/.claude/skills/cfn-agent-selector/SKILL.md +90 -0
- package/.claude/skills/cfn-agent-selector/select-agents.sh +112 -0
- package/.claude/skills/cfn-agent-spawning/SKILL.md +135 -0
- package/.claude/skills/cfn-agent-spawning/agent-selection-guide.md +814 -0
- package/.claude/skills/cfn-agent-spawning/check-dependencies.sh +30 -0
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +263 -0
- package/.claude/skills/cfn-agent-spawning/spawn-templates.sh +613 -0
- package/.claude/skills/cfn-analytics/description-refinement-guide.md +164 -0
- package/.claude/skills/cfn-analytics/log-skill-invocation.js +122 -0
- package/.claude/skills/cfn-analytics/run-production-criteria-tests.sh +126 -0
- package/.claude/skills/cfn-analytics/skill-analytics-dashboard.js +113 -0
- package/.claude/skills/cfn-analytics/skill-invocation-hook.sh +28 -0
- package/.claude/skills/cfn-analytics/skill-invocations.sql +58 -0
- package/.claude/skills/cfn-analytics/test-corpus.json +32 -0
- package/.claude/skills/cfn-analytics/test-data-generator.js +115 -0
- package/.claude/skills/cfn-analytics/test-manual-override-rate.js +285 -0
- package/.claude/skills/cfn-analytics/validate-skill-selection.js +188 -0
- package/.claude/skills/cfn-config-management/SKILL.md +34 -0
- package/.claude/skills/cfn-config-management/check-dependencies.sh +56 -0
- package/.claude/skills/cfn-config-management/config.json +32 -0
- package/.claude/skills/cfn-config-management/manage-config.sh +113 -0
- package/.claude/skills/cfn-event-bus/SKILL.md +412 -0
- package/.claude/skills/cfn-event-bus/config.json +111 -0
- package/.claude/skills/cfn-event-bus/eventbus-wrapper.cjs +69 -0
- package/.claude/skills/cfn-event-bus/invoke-event-publish.sh +147 -0
- package/.claude/skills/cfn-event-bus/invoke-event-subscribe.sh +171 -0
- package/.claude/skills/cfn-event-bus/invoke-lifecycle-track.sh +201 -0
- package/.claude/skills/cfn-event-bus/test-event-bus.sh +280 -0
- package/.claude/skills/cfn-fleet-manager/SKILL.md +412 -0
- package/.claude/skills/cfn-fleet-manager/config.json +60 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-allocate.sh +182 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-balance.sh +239 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-metrics.sh +193 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-register.sh +124 -0
- package/.claude/skills/cfn-fleet-manager/test-fleet-manager.sh +345 -0
- package/.claude/skills/cfn-hook-pipeline/SKILL.md +148 -0
- package/.claude/skills/cfn-hook-pipeline/auto-resolve.sh +66 -0
- package/.claude/skills/cfn-hook-pipeline/check-dependencies.sh +40 -0
- package/.claude/skills/cfn-hook-pipeline/feedback-resolver.sh +452 -0
- package/.claude/skills/cfn-hook-pipeline/post-edit-handler.sh +154 -0
- package/.claude/skills/cfn-hook-pipeline/security-scan.json +60 -0
- package/.claude/skills/cfn-hook-pipeline/security-scanner.sh +121 -0
- package/.claude/skills/cfn-hook-pipeline/test-root-warning-resolution.sh +148 -0
- package/.claude/skills/cfn-hybrid-routing/SKILL.md +46 -0
- package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +52 -0
- package/.claude/skills/cfn-hybrid-routing/config.json +26 -0
- package/.claude/skills/cfn-hybrid-routing/spawn-worker.sh +44 -0
- package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/context-injection.sh +142 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/context-lookup.sh +359 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +271 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
- package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
- package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +884 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +840 -0
- package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
- package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
- package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
- package/.claude/skills/cfn-loop-validation/SKILL.md +353 -0
- package/.claude/skills/cfn-loop-validation/check-dependencies.sh +31 -0
- package/.claude/skills/cfn-loop-validation/config.json +161 -0
- package/.claude/skills/cfn-loop-validation/consensus-calculator.js +477 -0
- package/.claude/skills/cfn-loop-validation/evidence-chain.sql +163 -0
- package/.claude/skills/cfn-loop-validation/examples/README.md +453 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +234 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +132 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +115 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +186 -0
- package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -0
- package/.claude/skills/cfn-loop-validation/validate-iteration.sh +134 -0
- package/.claude/skills/cfn-process-lifecycle/SKILL.md +39 -0
- package/.claude/skills/cfn-process-lifecycle/check-dependencies.sh +58 -0
- package/.claude/skills/cfn-process-lifecycle/config.json +39 -0
- package/.claude/skills/cfn-process-lifecycle/process-manager.sh +144 -0
- package/.claude/skills/cfn-product-owner-decision/SKILL.md +332 -0
- package/.claude/skills/cfn-product-owner-decision/execute-decision.sh +176 -0
- package/.claude/skills/cfn-product-owner-decision/parse-decision.sh +66 -0
- package/.claude/skills/cfn-product-owner-decision/validate-deliverables.sh +82 -0
- package/.claude/skills/cfn-redis-coordination/AGENT_LOGGING.md +280 -0
- package/.claude/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +209 -0
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +57 -0
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +267 -0
- package/.claude/skills/cfn-redis-coordination/LOGGING.md +260 -0
- package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +25 -0
- package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +164 -0
- package/.claude/skills/cfn-redis-coordination/SKILL.md +720 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh +124 -0
- package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/analyze-task-complexity.sh +277 -0
- package/.claude/skills/cfn-redis-coordination/cancel-swarm.sh +221 -0
- package/.claude/skills/cfn-redis-coordination/cfn-loop-exec.sh +468 -0
- package/.claude/skills/cfn-redis-coordination/cfn-loop-relaunch.sh +29 -0
- package/.claude/skills/cfn-redis-coordination/check-dependencies.sh +32 -0
- package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +179 -0
- package/.claude/skills/cfn-redis-coordination/collect-results.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/complete-swarm.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/config.json +61 -0
- package/.claude/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
- package/.claude/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +82 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +274 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +276 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +129 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +320 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +249 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +148 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +163 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +138 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +81 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +45 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +68 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +56 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +81 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +57 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +187 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +160 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +97 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +97 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +59 -0
- package/.claude/skills/cfn-redis-coordination/examples/README.md +73 -0
- package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +352 -0
- package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +127 -0
- package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +171 -0
- package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +227 -0
- package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +239 -0
- package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +258 -0
- package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +177 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +137 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +106 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat.sh +126 -0
- package/.claude/skills/cfn-redis-coordination/init-swarm.sh +148 -0
- package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +220 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +283 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
- package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +147 -0
- package/.claude/skills/cfn-redis-coordination/log-event.sh +109 -0
- package/.claude/skills/cfn-redis-coordination/metrics-export.sh +674 -0
- package/.claude/skills/cfn-redis-coordination/metrics-schema.json +66 -0
- package/.claude/skills/cfn-redis-coordination/metrics-storage.md +31 -0
- package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +391 -0
- package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +101 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +31 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
- package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +75 -0
- package/.claude/skills/cfn-redis-coordination/priority_wake.py +134 -0
- package/.claude/skills/cfn-redis-coordination/query-dlq.sh +162 -0
- package/.claude/skills/cfn-redis-coordination/query-logs.sh +103 -0
- package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +619 -0
- package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +58 -0
- package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +371 -0
- package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +252 -0
- package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +165 -0
- package/.claude/skills/cfn-redis-coordination/signal.sh +38 -0
- package/.claude/skills/cfn-redis-coordination/store-context.sh +86 -0
- package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +123 -0
- package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +354 -0
- package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +513 -0
- package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +15 -0
- package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +102 -0
- package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +99 -0
- package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +170 -0
- package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +82 -0
- package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +92 -0
- package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +418 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +124 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +166 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +54 -0
- package/.claude/skills/cfn-redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
- package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +49 -0
- package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +76 -0
- package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +492 -0
- package/.claude/skills/cfn-sqlite-memory/IMPLEMENTATION_REPORT.md +393 -0
- package/.claude/skills/cfn-sqlite-memory/QUICK_REFERENCE.md +204 -0
- package/.claude/skills/cfn-sqlite-memory/SKILL.md +415 -0
- package/.claude/skills/cfn-sqlite-memory/acl-queries.sql +452 -0
- package/.claude/skills/cfn-sqlite-memory/check-dependencies.sh +36 -0
- package/.claude/skills/cfn-sqlite-memory/config.json +45 -0
- package/.claude/skills/cfn-sqlite-memory/memory-cli.sh +88 -0
- package/.claude/skills/cfn-sqlite-memory/test-state-persistence.js +187 -0
- package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +274 -0
- package/.claude/skills/cfn-test-execution/SKILL.md +128 -0
- package/.claude/skills/cfn-test-execution/check-dependencies.sh +36 -0
- package/.claude/skills/cfn-test-execution/test-cache-reader.sh +134 -0
- package/.claude/skills/cfn-test-execution/test-concurrent-conflicts.sh +115 -0
- package/.claude/skills/cfn-test-execution/test-coordinator-pattern.sh +109 -0
- package/.claude/skills/cfn-transparency-middleware/Cargo.toml +18 -0
- package/.claude/skills/cfn-transparency-middleware/SECURITY.md +41 -0
- package/.claude/skills/cfn-transparency-middleware/SKILL.md +91 -0
- package/.claude/skills/cfn-transparency-middleware/TEST_RESULTS.md +174 -0
- package/.claude/skills/cfn-transparency-middleware/config.json +31 -0
- package/.claude/skills/cfn-transparency-middleware/examples/basic-usage.ts +39 -0
- package/.claude/skills/cfn-transparency-middleware/examples/batch-processing.ts +52 -0
- package/.claude/skills/cfn-transparency-middleware/examples/custom-filtering.ts +61 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-filter.sh +98 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-init.sh +224 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-level.sh +333 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-metrics.sh +345 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-observe.sh +140 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-stop.sh +235 -0
- package/.claude/skills/cfn-transparency-middleware/memory_query.rs +85 -0
- package/.claude/skills/cfn-transparency-middleware/memory_repository.rs +140 -0
- package/.claude/skills/cfn-transparency-middleware/memory_schema.rs +64 -0
- package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +29 -0
- package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +79 -0
- package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +406 -0
- package/.claude/skills/cfn-transparency-middleware/test-integration.sh +162 -0
- package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +368 -0
- package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh.unix +126 -0
- package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +93 -0
- package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +132 -0
- package/.claude/skills/cfn-webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
- package/.claude/skills/cfn-webapp-testing/SKILL.md +877 -0
- package/.claude/skills/cfn-webapp-testing/capture-screenshot.sh +238 -0
- package/.claude/skills/cfn-webapp-testing/cfn-loop-integration.sh +265 -0
- package/.claude/skills/cfn-webapp-testing/compare-screenshots.sh +199 -0
- package/.claude/skills/cfn-webapp-testing/init-storage.sh +150 -0
- package/.claude/skills/cfn-webapp-testing/set-baseline.sh +196 -0
- package/.claude/skills/cfn-webapp-testing/test-webapp-testing.sh +233 -0
- package/README.md +51 -2
- package/dist/ace/ace-reflector.js +109 -10
- package/dist/ace/ace-reflector.js.map +1 -1
- package/dist/agents/agent-loader.js +165 -146
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/cli/agent-executor.js +1 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/config-manager.js +109 -91
- package/dist/cli/config-manager.js.map +1 -1
- package/package.json +43 -7
- package/readme/README.md +15 -4
- package/scripts/init-project.js +84 -29
- package/scripts/run-marketing-tests.sh +43 -0
- package/scripts/update_paths.sh +47 -0
- package/tools/install-lizard.sh +37 -0
- package/tools/simple-complexity.sh +44 -0
- package/.claude/agents/cfn-dev-team/developers/coder.md +0 -270
- package/.claude/agents/cfn-dev-team/developers/state-architect.md +0 -127
- package/.claude/agents/cfn-dev-team/reviewers/code-quality-validator.md +0 -128
- /package/.claude/agents/cfn-dev-team/developers/{ui-designer.md → frontend/ui-designer.md} +0 -0
- /package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner-agent.md +0 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Transparency Middleware Test Suite
|
|
4
|
+
# Version: 1.0.0
|
|
5
|
+
# Sprint: 1.2 Middleware Skills Wrapper
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
# Import testing utilities
|
|
10
|
+
source .claude/skills/cfn-common/test-utils.sh
|
|
11
|
+
source .claude/skills/cfn-transparency-middleware/middleware-config.sh
|
|
12
|
+
|
|
13
|
+
# Logging configuration
|
|
14
|
+
LOG_FILE="/tmp/transparency-middleware-tests.log"
|
|
15
|
+
touch "$LOG_FILE"
|
|
16
|
+
|
|
17
|
+
# Redis connection parameters
|
|
18
|
+
REDIS_HOST="${REDIS_HOST:-localhost}"
|
|
19
|
+
REDIS_PORT="${REDIS_PORT:-6379}"
|
|
20
|
+
|
|
21
|
+
# Test suite global variables
|
|
22
|
+
TEST_TASK_ID="transparency-test-$(date +%s)"
|
|
23
|
+
TOTAL_TESTS=10
|
|
24
|
+
PASSED_TESTS=0
|
|
25
|
+
|
|
26
|
+
# Utility Functions
|
|
27
|
+
log_test_start() {
|
|
28
|
+
echo "[TEST] Starting: $1" | tee -a "$LOG_FILE"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
log_test_result() {
|
|
32
|
+
local status="$1"
|
|
33
|
+
local message="$2"
|
|
34
|
+
if [ "$status" -eq 0 ]; then
|
|
35
|
+
echo "[PASS] $message" | tee -a "$LOG_FILE"
|
|
36
|
+
((PASSED_TESTS++))
|
|
37
|
+
else
|
|
38
|
+
echo "[FAIL] $message" | tee -a "$LOG_FILE"
|
|
39
|
+
fi
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# Test 1: Initialization
|
|
43
|
+
test_initialization() {
|
|
44
|
+
log_test_start "Initialization Tests"
|
|
45
|
+
local test_result=0
|
|
46
|
+
|
|
47
|
+
# Test minimal transparency level
|
|
48
|
+
./invoke-transparency-middleware.sh init \
|
|
49
|
+
--task-id "$TEST_TASK_ID" \
|
|
50
|
+
--level minimal || test_result=1
|
|
51
|
+
|
|
52
|
+
# Verify configuration
|
|
53
|
+
local config=$(redis-cli hget "transparency:${TEST_TASK_ID}" config)
|
|
54
|
+
[[ "$config" =~ "level:minimal" ]] || test_result=1
|
|
55
|
+
|
|
56
|
+
# Test Redis connection
|
|
57
|
+
redis-cli ping || test_result=1
|
|
58
|
+
|
|
59
|
+
log_test_result "$test_result" "Initialization Test"
|
|
60
|
+
return "$test_result"
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
# Test 2: Message Observation
|
|
64
|
+
test_message_observation() {
|
|
65
|
+
log_test_start "Message Observation"
|
|
66
|
+
local test_result=0
|
|
67
|
+
|
|
68
|
+
# Simulate message generation
|
|
69
|
+
./invoke-transparency-middleware.sh subscribe \
|
|
70
|
+
--task-id "$TEST_TASK_ID" \
|
|
71
|
+
--channel "test-channel" || test_result=1
|
|
72
|
+
|
|
73
|
+
# Publish test message
|
|
74
|
+
redis-cli publish "test-channel" "Test observation message" || test_result=1
|
|
75
|
+
|
|
76
|
+
# Check message reception
|
|
77
|
+
local message=$(redis-cli blpop "transparency:${TEST_TASK_ID}:messages" 5)
|
|
78
|
+
[[ -n "$message" ]] || test_result=1
|
|
79
|
+
|
|
80
|
+
log_test_result "$test_result" "Message Observation Test"
|
|
81
|
+
return "$test_result"
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
# Test 3: Transparency Level Changes
|
|
85
|
+
test_transparency_levels() {
|
|
86
|
+
log_test_start "Transparency Level Changes"
|
|
87
|
+
local test_result=0
|
|
88
|
+
|
|
89
|
+
# Test level progression
|
|
90
|
+
local levels=("minimal" "detailed" "verbose" "debug")
|
|
91
|
+
for level in "${levels[@]}"; do
|
|
92
|
+
./invoke-transparency-middleware.sh set-level \
|
|
93
|
+
--task-id "$TEST_TASK_ID" \
|
|
94
|
+
--level "$level" || test_result=1
|
|
95
|
+
done
|
|
96
|
+
|
|
97
|
+
log_test_result "$test_result" "Transparency Level Changes Test"
|
|
98
|
+
return "$test_result"
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Test 4: Filter Management
|
|
102
|
+
test_filter_management() {
|
|
103
|
+
log_test_start "Filter Management"
|
|
104
|
+
local test_result=0
|
|
105
|
+
|
|
106
|
+
# Initialize
|
|
107
|
+
./invoke-transparency-middleware.sh init \
|
|
108
|
+
--task-id "$TEST_TASK_ID" \
|
|
109
|
+
--level detailed || test_result=1
|
|
110
|
+
|
|
111
|
+
# Add include filter
|
|
112
|
+
./invoke-transparency-middleware.sh add-filter \
|
|
113
|
+
--task-id "$TEST_TASK_ID" \
|
|
114
|
+
--name "Error Filter" \
|
|
115
|
+
--type include \
|
|
116
|
+
--pattern "error|critical" || test_result=1
|
|
117
|
+
|
|
118
|
+
# List filters
|
|
119
|
+
local filters=$(./invoke-transparency-middleware.sh list-filters \
|
|
120
|
+
--task-id "$TEST_TASK_ID")
|
|
121
|
+
[[ "$filters" =~ "Error Filter" ]] || test_result=1
|
|
122
|
+
|
|
123
|
+
# Test filter pattern
|
|
124
|
+
local match=$(./invoke-transparency-middleware.sh test-filter \
|
|
125
|
+
--task-id "$TEST_TASK_ID" \
|
|
126
|
+
--name "Error Filter" \
|
|
127
|
+
--message "critical system error")
|
|
128
|
+
[[ "$match" == "true" ]] || test_result=1
|
|
129
|
+
|
|
130
|
+
# Remove filter
|
|
131
|
+
./invoke-transparency-middleware.sh remove-filter \
|
|
132
|
+
--task-id "$TEST_TASK_ID" \
|
|
133
|
+
--name "Error Filter" || test_result=1
|
|
134
|
+
|
|
135
|
+
log_test_result "$test_result" "Filter Management Test"
|
|
136
|
+
return "$test_result"
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
# Test 5: Performance Metrics
|
|
140
|
+
test_performance_metrics() {
|
|
141
|
+
log_test_start "Performance Metrics"
|
|
142
|
+
local test_result=0
|
|
143
|
+
|
|
144
|
+
# Initialize with verbose level
|
|
145
|
+
./invoke-transparency-middleware.sh init \
|
|
146
|
+
--task-id "$TEST_TASK_ID" \
|
|
147
|
+
--level verbose || test_result=1
|
|
148
|
+
|
|
149
|
+
# Query metrics
|
|
150
|
+
local metrics=$(./invoke-transparency-middleware.sh get-metrics \
|
|
151
|
+
--task-id "$TEST_TASK_ID")
|
|
152
|
+
|
|
153
|
+
# Verify metric fields
|
|
154
|
+
[[ "$metrics" =~ "messages_generated" ]] || test_result=1
|
|
155
|
+
[[ "$metrics" =~ "messages_filtered" ]] || test_result=1
|
|
156
|
+
[[ "$metrics" =~ "overhead_percentage" ]] || test_result=1
|
|
157
|
+
[[ "$metrics" =~ "queue_size" ]] || test_result=1
|
|
158
|
+
|
|
159
|
+
# Verify overhead is reasonable (less than 10%)
|
|
160
|
+
local overhead=$(echo "$metrics" | grep -o "overhead_percentage:[0-9.]*" | cut -d: -f2)
|
|
161
|
+
(( $(echo "$overhead < 10" | bc -l) )) || test_result=1
|
|
162
|
+
|
|
163
|
+
log_test_result "$test_result" "Performance Metrics Test"
|
|
164
|
+
return "$test_result"
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
# Test 6: Redis Integration
|
|
168
|
+
test_redis_integration() {
|
|
169
|
+
log_test_start "Redis Integration"
|
|
170
|
+
local test_result=0
|
|
171
|
+
|
|
172
|
+
# Initialize
|
|
173
|
+
./invoke-transparency-middleware.sh init \
|
|
174
|
+
--task-id "$TEST_TASK_ID" \
|
|
175
|
+
--level detailed || test_result=1
|
|
176
|
+
|
|
177
|
+
# Verify Redis keys created
|
|
178
|
+
local config_keys=$(redis-cli keys "transparency:config:*$TEST_TASK_ID*")
|
|
179
|
+
local state_keys=$(redis-cli keys "transparency:state:*$TEST_TASK_ID*")
|
|
180
|
+
|
|
181
|
+
[[ -n "$config_keys" ]] || test_result=1
|
|
182
|
+
[[ -n "$state_keys" ]] || test_result=1
|
|
183
|
+
|
|
184
|
+
# Publish test message
|
|
185
|
+
redis-cli publish "transparency:messages:$TEST_TASK_ID" \
|
|
186
|
+
'{"type":"test","message":"Redis integration test"}' || test_result=1
|
|
187
|
+
|
|
188
|
+
# Observe message (with timeout)
|
|
189
|
+
local message=$(timeout 5s ./invoke-transparency-middleware.sh observe \
|
|
190
|
+
--task-id "$TEST_TASK_ID" \
|
|
191
|
+
--timeout 3)
|
|
192
|
+
[[ -n "$message" ]] || test_result=1
|
|
193
|
+
|
|
194
|
+
# Cleanup
|
|
195
|
+
./invoke-transparency-middleware.sh stop \
|
|
196
|
+
--task-id "$TEST_TASK_ID" || test_result=1
|
|
197
|
+
|
|
198
|
+
log_test_result "$test_result" "Redis Integration Test"
|
|
199
|
+
return "$test_result"
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
# Test 7: Multi-Agent Scenarios
|
|
203
|
+
test_multi_agent() {
|
|
204
|
+
log_test_start "Multi-Agent Scenarios"
|
|
205
|
+
local test_result=0
|
|
206
|
+
|
|
207
|
+
# Initialize with different agent configs
|
|
208
|
+
./invoke-transparency-middleware.sh init \
|
|
209
|
+
--task-id "${TEST_TASK_ID}-agent1" \
|
|
210
|
+
--agent-id "agent-1" \
|
|
211
|
+
--level detailed || test_result=1
|
|
212
|
+
|
|
213
|
+
./invoke-transparency-middleware.sh init \
|
|
214
|
+
--task-id "${TEST_TASK_ID}-agent2" \
|
|
215
|
+
--agent-id "agent-2" \
|
|
216
|
+
--level verbose || test_result=1
|
|
217
|
+
|
|
218
|
+
# Verify different levels per agent
|
|
219
|
+
local agent1_level=$(./invoke-transparency-middleware.sh get-level \
|
|
220
|
+
--agent-id "agent-1")
|
|
221
|
+
local agent2_level=$(./invoke-transparency-middleware.sh get-level \
|
|
222
|
+
--agent-id "agent-2")
|
|
223
|
+
|
|
224
|
+
[[ "$agent1_level" == "detailed" ]] || test_result=1
|
|
225
|
+
[[ "$agent2_level" == "verbose" ]] || test_result=1
|
|
226
|
+
|
|
227
|
+
# Cleanup
|
|
228
|
+
./invoke-transparency-middleware.sh stop \
|
|
229
|
+
--agent-id "agent-1" || test_result=1
|
|
230
|
+
./invoke-transparency-middleware.sh stop \
|
|
231
|
+
--agent-id "agent-2" || test_result=1
|
|
232
|
+
|
|
233
|
+
log_test_result "$test_result" "Multi-Agent Scenarios Test"
|
|
234
|
+
return "$test_result"
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
# Test 8: Performance Overhead
|
|
238
|
+
test_performance_overhead() {
|
|
239
|
+
log_test_start "Performance Overhead"
|
|
240
|
+
local test_result=0
|
|
241
|
+
|
|
242
|
+
# Test each transparency level
|
|
243
|
+
local levels=("minimal" "detailed" "verbose" "debug")
|
|
244
|
+
local max_overheads=(1.0 3.0 5.0 10.0)
|
|
245
|
+
|
|
246
|
+
for i in "${!levels[@]}"; do
|
|
247
|
+
local level="${levels[i]}"
|
|
248
|
+
local max_overhead="${max_overheads[i]}"
|
|
249
|
+
|
|
250
|
+
./invoke-transparency-middleware.sh init \
|
|
251
|
+
--task-id "${TEST_TASK_ID}-${level}" \
|
|
252
|
+
--level "$level" || test_result=1
|
|
253
|
+
|
|
254
|
+
local metrics=$(./invoke-transparency-middleware.sh get-metrics \
|
|
255
|
+
--task-id "${TEST_TASK_ID}-${level}")
|
|
256
|
+
|
|
257
|
+
local overhead=$(echo "$metrics" | grep -o "overhead_percentage:[0-9.]*" | cut -d: -f2)
|
|
258
|
+
(( $(echo "$overhead <= $max_overhead" | bc -l) )) || {
|
|
259
|
+
echo "❌ Level $level overhead $overhead% exceeds $max_overhead%"
|
|
260
|
+
test_result=1
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
./invoke-transparency-middleware.sh stop \
|
|
264
|
+
--task-id "${TEST_TASK_ID}-${level}" || test_result=1
|
|
265
|
+
done
|
|
266
|
+
|
|
267
|
+
log_test_result "$test_result" "Performance Overhead Test"
|
|
268
|
+
return "$test_result"
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
# Test 9: Error Handling
|
|
272
|
+
test_error_handling() {
|
|
273
|
+
log_test_start "Error Handling"
|
|
274
|
+
local test_result=0
|
|
275
|
+
|
|
276
|
+
# Test invalid transparency level
|
|
277
|
+
! ./invoke-transparency-middleware.sh init \
|
|
278
|
+
--task-id "$TEST_TASK_ID" \
|
|
279
|
+
--level invalid 2>/dev/null || test_result=1
|
|
280
|
+
|
|
281
|
+
# Test invalid task-id
|
|
282
|
+
! ./invoke-transparency-middleware.sh observe \
|
|
283
|
+
--task-id "" 2>/dev/null || test_result=1
|
|
284
|
+
|
|
285
|
+
# Test missing required parameters
|
|
286
|
+
! ./invoke-transparency-middleware.sh add-filter \
|
|
287
|
+
--task-id "$TEST_TASK_ID" 2>/dev/null || test_result=1
|
|
288
|
+
|
|
289
|
+
# Test invalid filter pattern
|
|
290
|
+
! ./invoke-transparency-middleware.sh add-filter \
|
|
291
|
+
--task-id "$TEST_TASK_ID" \
|
|
292
|
+
--name "test" \
|
|
293
|
+
--pattern "" 2>/dev/null || test_result=1
|
|
294
|
+
|
|
295
|
+
# Test observe on non-existent task
|
|
296
|
+
! ./invoke-transparency-middleware.sh observe \
|
|
297
|
+
--task-id "nonexistent-task-12345" 2>/dev/null || test_result=1
|
|
298
|
+
|
|
299
|
+
log_test_result "$test_result" "Error Handling Test"
|
|
300
|
+
return "$test_result"
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
# Test 10: Graceful Shutdown
|
|
304
|
+
test_graceful_shutdown() {
|
|
305
|
+
log_test_start "Graceful Shutdown"
|
|
306
|
+
local test_result=0
|
|
307
|
+
|
|
308
|
+
# Initialize
|
|
309
|
+
./invoke-transparency-middleware.sh init \
|
|
310
|
+
--task-id "$TEST_TASK_ID" \
|
|
311
|
+
--level detailed || test_result=1
|
|
312
|
+
|
|
313
|
+
# Add some data
|
|
314
|
+
./invoke-transparency-middleware.sh add-filter \
|
|
315
|
+
--task-id "$TEST_TASK_ID" \
|
|
316
|
+
--name "Test Filter" \
|
|
317
|
+
--pattern "test" || test_result=1
|
|
318
|
+
|
|
319
|
+
# Shutdown with flush
|
|
320
|
+
./invoke-transparency-middleware.sh stop \
|
|
321
|
+
--task-id "$TEST_TASK_ID" \
|
|
322
|
+
--flush || test_result=1
|
|
323
|
+
|
|
324
|
+
# Verify Redis keys cleaned up
|
|
325
|
+
local keys=$(redis-cli keys "transparency:*$TEST_TASK_ID*")
|
|
326
|
+
[[ -z "$keys" ]] || test_result=1
|
|
327
|
+
|
|
328
|
+
# Test shutdown without flush
|
|
329
|
+
./invoke-transparency-middleware.sh init \
|
|
330
|
+
--task-id "${TEST_TASK_ID}-noflush" \
|
|
331
|
+
--level minimal || test_result=1
|
|
332
|
+
|
|
333
|
+
./invoke-transparency-middleware.sh stop \
|
|
334
|
+
--task-id "${TEST_TASK_ID}-noflush" || test_result=1
|
|
335
|
+
|
|
336
|
+
log_test_result "$test_result" "Graceful Shutdown Test"
|
|
337
|
+
return "$test_result"
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
# Main Test Execution
|
|
341
|
+
main() {
|
|
342
|
+
echo "Starting Transparency Middleware Test Suite" | tee -a "$LOG_FILE"
|
|
343
|
+
|
|
344
|
+
test_initialization
|
|
345
|
+
test_message_observation
|
|
346
|
+
test_transparency_levels
|
|
347
|
+
test_filter_management
|
|
348
|
+
test_performance_metrics
|
|
349
|
+
test_redis_integration
|
|
350
|
+
test_multi_agent
|
|
351
|
+
test_performance_overhead
|
|
352
|
+
test_error_handling
|
|
353
|
+
test_graceful_shutdown
|
|
354
|
+
|
|
355
|
+
# Final Report
|
|
356
|
+
echo "Test Results: $PASSED_TESTS/$TOTAL_TESTS passed" | tee -a "$LOG_FILE"
|
|
357
|
+
|
|
358
|
+
if [ "$PASSED_TESTS" -eq "$TOTAL_TESTS" ]; then
|
|
359
|
+
redis-cli publish "swarm:sprint-1.2:devops" "test_suite_passed:1.0"
|
|
360
|
+
exit 0
|
|
361
|
+
else
|
|
362
|
+
redis-cli publish "swarm:sprint-1.2:devops" "test_suite_failed:0.0"
|
|
363
|
+
exit 1
|
|
364
|
+
fi
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
# Execute main function
|
|
368
|
+
main
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Transparency Middleware Test Suite
|
|
4
|
+
# Version: 1.0.0
|
|
5
|
+
# Sprint: 1.2 Middleware Skills Wrapper
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
# Import testing utilities
|
|
10
|
+
source .claude/skills/common/test-utils.sh
|
|
11
|
+
source .claude/skills/transparency-middleware/middleware-config.sh
|
|
12
|
+
|
|
13
|
+
# Logging configuration
|
|
14
|
+
LOG_FILE="/tmp/transparency-middleware-tests.log"
|
|
15
|
+
touch "$LOG_FILE"
|
|
16
|
+
|
|
17
|
+
# Redis connection parameters
|
|
18
|
+
REDIS_HOST="${REDIS_HOST:-localhost}"
|
|
19
|
+
REDIS_PORT="${REDIS_PORT:-6379}"
|
|
20
|
+
|
|
21
|
+
# Test suite global variables
|
|
22
|
+
TEST_TASK_ID="transparency-test-$(date +%s)"
|
|
23
|
+
TOTAL_TESTS=10
|
|
24
|
+
PASSED_TESTS=0
|
|
25
|
+
|
|
26
|
+
# Utility Functions
|
|
27
|
+
log_test_start() {
|
|
28
|
+
echo "[TEST] Starting: $1" | tee -a "$LOG_FILE"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
log_test_result() {
|
|
32
|
+
local status="$1"
|
|
33
|
+
local message="$2"
|
|
34
|
+
if [ "$status" -eq 0 ]; then
|
|
35
|
+
echo "[PASS] $message" | tee -a "$LOG_FILE"
|
|
36
|
+
((PASSED_TESTS++))
|
|
37
|
+
else
|
|
38
|
+
echo "[FAIL] $message" | tee -a "$LOG_FILE"
|
|
39
|
+
fi
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# Test 1: Initialization
|
|
43
|
+
test_initialization() {
|
|
44
|
+
log_test_start "Initialization Tests"
|
|
45
|
+
local test_result=0
|
|
46
|
+
|
|
47
|
+
# Test minimal transparency level
|
|
48
|
+
./invoke-transparency-middleware.sh init \
|
|
49
|
+
--task-id "$TEST_TASK_ID" \
|
|
50
|
+
--level minimal || test_result=1
|
|
51
|
+
|
|
52
|
+
# Verify configuration
|
|
53
|
+
local config=$(redis-cli hget "transparency:${TEST_TASK_ID}" config)
|
|
54
|
+
[[ "$config" =~ "level:minimal" ]] || test_result=1
|
|
55
|
+
|
|
56
|
+
# Test Redis connection
|
|
57
|
+
redis-cli ping || test_result=1
|
|
58
|
+
|
|
59
|
+
log_test_result "$test_result" "Initialization Test"
|
|
60
|
+
return "$test_result"
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
# Test 2: Message Observation
|
|
64
|
+
test_message_observation() {
|
|
65
|
+
log_test_start "Message Observation"
|
|
66
|
+
local test_result=0
|
|
67
|
+
|
|
68
|
+
# Simulate message generation
|
|
69
|
+
./invoke-transparency-middleware.sh subscribe \
|
|
70
|
+
--task-id "$TEST_TASK_ID" \
|
|
71
|
+
--channel "test-channel" || test_result=1
|
|
72
|
+
|
|
73
|
+
# Publish test message
|
|
74
|
+
redis-cli publish "test-channel" "Test observation message" || test_result=1
|
|
75
|
+
|
|
76
|
+
# Check message reception
|
|
77
|
+
local message=$(redis-cli blpop "transparency:${TEST_TASK_ID}:messages" 5)
|
|
78
|
+
[[ -n "$message" ]] || test_result=1
|
|
79
|
+
|
|
80
|
+
log_test_result "$test_result" "Message Observation Test"
|
|
81
|
+
return "$test_result"
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
# Test 3: Transparency Level Changes
|
|
85
|
+
test_transparency_levels() {
|
|
86
|
+
log_test_start "Transparency Level Changes"
|
|
87
|
+
local test_result=0
|
|
88
|
+
|
|
89
|
+
# Test level progression
|
|
90
|
+
local levels=("minimal" "detailed" "verbose" "debug")
|
|
91
|
+
for level in "${levels[@]}"; do
|
|
92
|
+
./invoke-transparency-middleware.sh set-level \
|
|
93
|
+
--task-id "$TEST_TASK_ID" \
|
|
94
|
+
--level "$level" || test_result=1
|
|
95
|
+
done
|
|
96
|
+
|
|
97
|
+
log_test_result "$test_result" "Transparency Level Changes Test"
|
|
98
|
+
return "$test_result"
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Test 4-10: Additional tests would be implemented similarly
|
|
102
|
+
# ... (other test functions)
|
|
103
|
+
|
|
104
|
+
# Main Test Execution
|
|
105
|
+
main() {
|
|
106
|
+
echo "Starting Transparency Middleware Test Suite" | tee -a "$LOG_FILE"
|
|
107
|
+
|
|
108
|
+
test_initialization
|
|
109
|
+
test_message_observation
|
|
110
|
+
test_transparency_levels
|
|
111
|
+
# Call other test functions...
|
|
112
|
+
|
|
113
|
+
# Final Report
|
|
114
|
+
echo "Test Results: $PASSED_TESTS/$TOTAL_TESTS passed" | tee -a "$LOG_FILE"
|
|
115
|
+
|
|
116
|
+
if [ "$PASSED_TESTS" -eq "$TOTAL_TESTS" ]; then
|
|
117
|
+
redis-cli publish "swarm:sprint-1.2:devops" "test_suite_passed:1.0"
|
|
118
|
+
exit 0
|
|
119
|
+
else
|
|
120
|
+
redis-cli publish "swarm:sprint-1.2:devops" "test_suite_failed:0.0"
|
|
121
|
+
exit 1
|
|
122
|
+
fi
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
# Execute main function
|
|
126
|
+
main
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Input Validation and Security Test Suite
|
|
3
|
+
# Validates input handling and prevents potential injection scenarios
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
# Source the main script to access validation functions
|
|
8
|
+
source "$(dirname "$0")/.claude/skills/cfn-cfn-test-integration.sh"
|
|
9
|
+
|
|
10
|
+
# Test Cases for validate_input function
|
|
11
|
+
test_input_validation() {
|
|
12
|
+
local test_cases=(
|
|
13
|
+
"valid_task_id:integration-test-task:task_id:pass"
|
|
14
|
+
"valid_agent_id:test-agent-1:agent_id:pass"
|
|
15
|
+
"invalid_task_id_with_space:test task:task_id:fail"
|
|
16
|
+
"invalid_task_id_with_special_chars:test@task:task_id:fail"
|
|
17
|
+
"invalid_agent_id_with_special_chars:test!agent:agent_id:fail"
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
for test_case in "${test_cases[@]}"; do
|
|
21
|
+
local name=$(echo "$test_case" | cut -d: -f1)
|
|
22
|
+
local input=$(echo "$test_case" | cut -d: -f2)
|
|
23
|
+
local input_type=$(echo "$test_case" | cut -d: -f3)
|
|
24
|
+
local expected=$(echo "$test_case" | cut -d: -f4)
|
|
25
|
+
|
|
26
|
+
echo "Running test case: $name"
|
|
27
|
+
|
|
28
|
+
if [[ "$expected" == "pass" ]]; then
|
|
29
|
+
validate_input "$input" "$input_type"
|
|
30
|
+
echo "✅ PASS: $name - Successfully validated"
|
|
31
|
+
else
|
|
32
|
+
set +e
|
|
33
|
+
validate_input "$input" "$input_type" 2>/dev/null
|
|
34
|
+
local exit_code=$?
|
|
35
|
+
set -e
|
|
36
|
+
|
|
37
|
+
if [ "$exit_code" -ne 0 ]; then
|
|
38
|
+
echo "✅ PASS: $name - Correctly rejected invalid input"
|
|
39
|
+
else
|
|
40
|
+
echo "❌ FAIL: $name - Failed to reject invalid input"
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
fi
|
|
44
|
+
done
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# Test SQLite Query Safety
|
|
48
|
+
test_sqlite_query_safety() {
|
|
49
|
+
local db_file=$(mktemp)
|
|
50
|
+
local bad_input="'; DROP TABLE agent_memory; --"
|
|
51
|
+
|
|
52
|
+
# Setup test database
|
|
53
|
+
sqlite3 "$db_file" <<EOF
|
|
54
|
+
CREATE TABLE agent_memory (
|
|
55
|
+
task_id TEXT,
|
|
56
|
+
event_data TEXT
|
|
57
|
+
);
|
|
58
|
+
INSERT INTO agent_memory VALUES ('test-task', 'sample data');
|
|
59
|
+
EOF
|
|
60
|
+
|
|
61
|
+
# Attempt query with malicious input
|
|
62
|
+
set +e
|
|
63
|
+
local query_result=$(sqlite3 "$db_file" \
|
|
64
|
+
"SELECT COUNT(*) FROM agent_memory WHERE task_id = '$bad_input';" 2>/dev/null)
|
|
65
|
+
local exit_code=$?
|
|
66
|
+
set -e
|
|
67
|
+
|
|
68
|
+
# Verify query did not modify the database
|
|
69
|
+
local row_count=$(sqlite3 "$db_file" "SELECT COUNT(*) FROM agent_memory;")
|
|
70
|
+
|
|
71
|
+
if [ "$row_count" -eq 1 ] && [ "$exit_code" -eq 0 ]; then
|
|
72
|
+
echo "✅ PASS: SQLite query safety - Malicious input contained"
|
|
73
|
+
else
|
|
74
|
+
echo "❌ FAIL: SQLite query safety - Potential vulnerability"
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
# Cleanup
|
|
79
|
+
rm -f "$db_file"
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
# Main test runner
|
|
83
|
+
main() {
|
|
84
|
+
echo "=== Input Validation Security Tests ==="
|
|
85
|
+
|
|
86
|
+
test_input_validation
|
|
87
|
+
test_sqlite_query_safety
|
|
88
|
+
|
|
89
|
+
echo "=== All Security Tests Passed ==="
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
# Run tests
|
|
93
|
+
main
|