Files
proffesor-for-testing__agen…/docs/CONFIGURATION.md
Profa aa9a7ec586 chore: prepare v1.0.1 release - security fix and stability improvements
## Security Fixes
- Resolved CVE-2022-42003 (HIGH): Replaced faker@6.6.6 with @faker-js/faker@10.0.0
- Verified 0 vulnerabilities in production dependencies

## Bug Fixes
- Fixed Agent lifecycle synchronization issues
- Fixed status management race conditions
- Fixed task rejection error handling
- Fixed metrics tracking division by zero
- Fixed EventBus error handling and listener isolation

## Documentation
- Added comprehensive USER-GUIDE.md (getting started, workflows, best practices)
- Added CONFIGURATION.md (complete config reference, environment variables)
- Added TROUBLESHOOTING.md (common issues, solutions, FAQ)
- Added MIGRATION-GUIDE.md (v1.0.0 to v1.0.1 upgrade path)
- Updated CHANGELOG.md with v1.0.1 release notes
- Updated README.md with v1.0.1 highlights
- Organized release notes (v1.0.0 archived, v1.0.1 current)

## Infrastructure
- Enhanced test infrastructure stability
- Improved memory management
- Code quality improvements (ESLint errors reduced 9%)

## Validation
- Build: ✅ Clean TypeScript compilation
- Type Safety: ✅ 0 errors
- Security: ✅ 0 vulnerabilities
- Tests: 47/85 passing (core Agent tests 100%)
- Documentation: Comprehensive guides added

## Breaking Changes
None - backward compatible patch release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-07 11:48:10 +00:00

14 KiB

Agentic QE Fleet - Configuration Guide

Overview

Agentic QE Fleet can be configured through multiple methods:

  1. Environment Variables - For runtime configuration
  2. Configuration File - .agentic-qe/config.json for persistent settings
  3. CLI Options - For command-specific overrides
  4. Fleet YAML - config/fleet.yaml for advanced fleet coordination

Environment Variables

Core Configuration

# Fleet Identification
FLEET_ID=my-project-fleet              # Unique fleet identifier
FLEET_NAME="My Project QE Fleet"       # Human-readable fleet name

# Fleet Size and Performance
MAX_AGENTS=20                          # Maximum concurrent agents (default: 20)
HEARTBEAT_INTERVAL=30000               # Health check interval in ms (default: 30000)
AGENT_TIMEOUT=300000                   # Agent operation timeout in ms (default: 300000)

# Memory Configuration
MEMORY_PARTITION_SIZE=100MB            # Memory partition size (default: 100MB)
MEMORY_TTL=3600                        # Default memory TTL in seconds (default: 3600)
MEMORY_CLEANUP_INTERVAL=600            # Memory cleanup interval in seconds (default: 600)

Database Configuration

# Database Type (sqlite or postgres)
DB_TYPE=sqlite                         # Database type (default: sqlite)
DB_FILENAME=./data/fleet.db            # SQLite database file (default: ./data/fleet.db)

# PostgreSQL Configuration (if DB_TYPE=postgres)
DB_HOST=localhost                      # PostgreSQL host
DB_PORT=5432                           # PostgreSQL port
DB_NAME=agentic_qe                     # PostgreSQL database name
DB_USER=aqe_user                       # PostgreSQL username
DB_PASSWORD=secure_password            # PostgreSQL password
DB_SSL=true                            # Enable SSL connection

Logging Configuration

# Logging Levels: error, warn, info, debug, verbose
LOG_LEVEL=info                         # Log level (default: info)
LOG_FORMAT=json                        # Log format: json or text (default: json)
LOG_FILE=./logs/aqe.log                # Log file path (default: ./logs/aqe.log)
LOG_MAX_SIZE=10m                       # Max log file size (default: 10m)
LOG_MAX_FILES=5                        # Max number of log files (default: 5)

API Configuration (Optional)

# REST API Server (if enabled)
API_ENABLED=true                       # Enable REST API (default: false)
API_PORT=3000                          # API server port (default: 3000)
API_HOST=localhost                     # API server host (default: localhost)
API_CORS_ENABLED=true                  # Enable CORS (default: false)
API_RATE_LIMIT=100                     # Requests per minute (default: 100)

Test Execution Configuration

# Test Execution Defaults
TEST_TIMEOUT=30000                     # Test timeout in ms (default: 30000)
TEST_RETRY_COUNT=3                     # Number of retries for failed tests (default: 3)
TEST_PARALLEL_WORKERS=4                # Parallel test workers (default: 4)
TEST_COVERAGE_THRESHOLD=80             # Coverage threshold percentage (default: 80)

Security Configuration

# Security Settings
SECURITY_SCAN_ENABLED=true             # Enable security scanning (default: true)
SECURITY_SCAN_DEPTH=standard           # Scan depth: basic, standard, deep (default: standard)
SECURITY_FAIL_ON_HIGH=true             # Fail on high-severity vulnerabilities (default: true)

Example .env File

# .env
# Agentic QE Fleet Configuration

# Fleet Settings
FLEET_ID=my-app-qe-fleet
FLEET_NAME="My Application QE Fleet"
MAX_AGENTS=20
HEARTBEAT_INTERVAL=30000

# Database
DB_TYPE=sqlite
DB_FILENAME=./data/fleet.db

# Logging
LOG_LEVEL=info
LOG_FORMAT=json
LOG_FILE=./logs/aqe.log

# Test Execution
TEST_TIMEOUT=30000
TEST_RETRY_COUNT=3
TEST_PARALLEL_WORKERS=4
TEST_COVERAGE_THRESHOLD=85

# Security
SECURITY_SCAN_ENABLED=true
SECURITY_FAIL_ON_HIGH=true

Configuration File (.agentic-qe/config.json)

Structure

{
  "version": "1.0",
  "fleet": {
    "id": "my-project-fleet",
    "name": "My Project QE Fleet",
    "maxAgents": 20,
    "topology": "mesh",
    "heartbeatInterval": 30000
  },
  "agents": {
    "test-generator": {
      "count": 2,
      "config": {
        "targetCoverage": 95,
        "framework": "jest",
        "testStyle": "property-based",
        "aiEnhancement": true
      }
    },
    "test-executor": {
      "count": 3,
      "config": {
        "frameworks": ["jest", "cypress", "playwright"],
        "maxParallelTests": 8,
        "timeout": 300000,
        "retryCount": 3
      }
    },
    "coverage-analyzer": {
      "count": 2,
      "config": {
        "targetCoverage": 95,
        "optimizationAlgorithm": "sublinear",
        "gapDetection": true
      }
    },
    "quality-analyzer": {
      "count": 2,
      "config": {
        "tools": ["eslint", "sonarqube", "lighthouse"],
        "thresholds": {
          "coverage": 85,
          "complexity": 10,
          "maintainability": 65,
          "security": 90
        }
      }
    }
  },
  "memory": {
    "partitionSize": "100MB",
    "defaultTTL": 3600,
    "cleanupInterval": 600,
    "encryption": true
  },
  "testing": {
    "defaultTimeout": 30000,
    "retryCount": 3,
    "parallelWorkers": 4,
    "coverageThreshold": 85,
    "reportFormat": "html"
  },
  "security": {
    "scanEnabled": true,
    "scanDepth": "standard",
    "failOnHigh": true,
    "tools": ["eslint-security", "semgrep", "npm-audit"]
  }
}

Agent-Specific Configuration

Each agent type can have custom configuration:

Test Generator Agent

{
  "agents": {
    "test-generator": {
      "config": {
        "targetCoverage": 95,
        "framework": "jest",
        "testStyle": "property-based",
        "aiEnhancement": true,
        "edgeCaseDetection": true,
        "mockGeneration": true,
        "assertionStyle": "expect",
        "testStructure": "describe-it"
      }
    }
  }
}

Test Executor Agent

{
  "agents": {
    "test-executor": {
      "config": {
        "frameworks": ["jest", "cypress", "playwright"],
        "maxParallelTests": 8,
        "timeout": 300000,
        "retryCount": 3,
        "retryDelay": 1000,
        "continueOnFailure": true,
        "collectCoverage": true,
        "loadBalancing": "round-robin"
      }
    }
  }
}

Coverage Analyzer Agent

{
  "agents": {
    "coverage-analyzer": {
      "config": {
        "targetCoverage": 95,
        "optimizationAlgorithm": "sublinear",
        "gapDetection": true,
        "prioritization": "complexity",
        "analysisType": "comprehensive",
        "generateSuggestions": true
      }
    }
  }
}

Fleet Configuration (config/fleet.yaml)

Complete Example

# config/fleet.yaml
fleet:
  id: "my-project-fleet"
  name: "My Project QE Fleet"
  maxAgents: 20
  topology: mesh  # mesh, hierarchical, ring, star

  coordination:
    strategy: adaptive  # adaptive, balanced, specialized
    heartbeatInterval: 30000
    healthCheckTimeout: 10000

  resources:
    maxMemoryPerAgent: 512MB
    maxCPUPerAgent: 1.0
    diskQuota: 10GB

agents:
  # Test Generator Configuration
  test-generator:
    count: 2
    priority: high
    config:
      frameworks: [jest, mocha, vitest]
      targetCoverage: 95
      testTypes: [unit, integration, property-based]
      aiEnhancement: true

  # Test Executor Configuration
  test-executor:
    count: 3
    priority: high
    config:
      frameworks: [jest, cypress, playwright]
      maxParallelTests: 8
      timeout: 300000
      retryLogic:
        enabled: true
        maxRetries: 3
        retryDelay: 1000

  # Coverage Analyzer Configuration
  coverage-analyzer:
    count: 2
    priority: medium
    config:
      targetCoverage: 95
      optimizationAlgorithm: sublinear
      gapDetection:
        enabled: true
        prioritization: complexity

  # Quality Gate Configuration
  quality-gate:
    count: 1
    priority: high
    config:
      thresholds:
        coverage: 85
        complexity: 10
        maintainability: 65
        security: 90
        performance: 85
      blockOnFailure: true

  # Security Scanner Configuration
  security-scanner:
    count: 1
    priority: high
    config:
      scanTypes: [sast, dast, dependency]
      severity: high
      compliance: [OWASP-Top-10, CWE-Top-25]

  # Performance Tester Configuration
  performance-tester:
    count: 1
    priority: medium
    config:
      tools: [k6, jmeter, gatling]
      loadProfiles:
        - name: light
          users: 10
          duration: 60s
        - name: moderate
          users: 50
          duration: 300s
        - name: heavy
          users: 100
          duration: 600s

memory:
  backend: sqlite  # sqlite or postgres
  database:
    type: sqlite
    filename: ./data/memory.db

  partitions:
    aqe: 100MB
    swarm: 50MB
    agent: 200MB

  ttl:
    default: 3600
    temporary: 300
    permanent: 0

  cleanup:
    enabled: true
    interval: 600
    aggressive: false

logging:
  level: info  # error, warn, info, debug, verbose
  format: json  # json or text
  outputs:
    - type: file
      filename: ./logs/aqe.log
      maxSize: 10m
      maxFiles: 5
    - type: console
      colorize: true

  components:
    fleet: info
    agents: info
    memory: warn
    events: debug

testing:
  defaults:
    timeout: 30000
    retryCount: 3
    parallelWorkers: 4

  coverage:
    enabled: true
    threshold: 85
    reporters: [html, lcov, text]

  reporting:
    format: json
    outputDir: ./reports
    includeSkipped: false

security:
  scanning:
    enabled: true
    schedule: daily
    depth: standard  # basic, standard, deep

  tools:
    - name: eslint-security
      enabled: true
    - name: semgrep
      enabled: true
      config: ./semgrep.yml
    - name: npm-audit
      enabled: true
      severity: moderate

  policies:
    failOnHigh: true
    blockOnCritical: true
    exemptions: []

CLI Configuration Commands

View Current Configuration

# Show all configuration
aqe config show

# Show specific configuration key
aqe config get --key fleet.maxAgents

Update Configuration

# Set configuration value
aqe config set --key fleet.maxAgents --value 30

# Set nested configuration
aqe config set --key agents.test-generator.config.targetCoverage --value 95

Configuration Validation

# Validate configuration file
aqe config validate --file .agentic-qe/config.json

# Validate fleet YAML
aqe config validate --file config/fleet.yaml

Configuration Priority

Configuration is applied in the following order (highest to lowest):

  1. CLI Options - Command-line arguments
  2. Environment Variables - Runtime environment
  3. Configuration File - .agentic-qe/config.json
  4. Fleet YAML - config/fleet.yaml
  5. Defaults - Built-in default values

Example:

# Coverage threshold resolution:
# 1. CLI: --coverage 90
# 2. ENV: TEST_COVERAGE_THRESHOLD=85
# 3. Config: "testing.coverageThreshold": 80
# 4. YAML: testing.coverage.threshold: 75
# 5. Default: 70

# Result: 90 (from CLI)

Best Practices

1. Use Environment Variables for Secrets

Never commit secrets to configuration files:

# .env (not committed)
DB_PASSWORD=secure_password
API_KEY=secret_key

2. Separate Development and Production Configs

# Development
.env.development

# Production
.env.production

Load based on environment:

NODE_ENV=production aqe execute

3. Version Control Configuration

Commit these files:

  • .agentic-qe/config.json (without secrets)
  • config/fleet.yaml (without secrets)
  • .env.example (template with no values)

Do NOT commit:

  • .env (actual secrets)
  • .env.local (local overrides)

4. Use Fleet YAML for Complex Setups

For multi-agent coordination and advanced features, use fleet.yaml:

fleet:
  topology: hierarchical
  coordination:
    strategy: adaptive

5. Validate Configuration Before Deployment

# Always validate before deploying
aqe config validate --file config/fleet.yaml
aqe config validate --file .agentic-qe/config.json

Troubleshooting

Configuration Not Loading

Check configuration file location:

ls -la .agentic-qe/config.json
ls -la config/fleet.yaml

Validate JSON syntax:

cat .agentic-qe/config.json | jq .

Environment Variables Not Applied

Check environment variable names:

env | grep AQE
env | grep FLEET

Verify environment file is loaded:

# Load .env explicitly
source .env
aqe execute

Agent Configuration Not Working

Check agent name spelling:

# Correct agent names
aqe config get --key agents.test-generator
aqe config get --key agents.test-executor
aqe config get --key agents.coverage-analyzer

Examples

Minimal Configuration

{
  "version": "1.0",
  "fleet": {
    "maxAgents": 10
  },
  "testing": {
    "coverageThreshold": 80
  }
}

Production Configuration

{
  "version": "1.0",
  "fleet": {
    "id": "production-qe-fleet",
    "name": "Production QE Fleet",
    "maxAgents": 50,
    "topology": "mesh"
  },
  "agents": {
    "test-executor": {
      "count": 10,
      "config": {
        "maxParallelTests": 20,
        "timeout": 600000
      }
    }
  },
  "memory": {
    "encryption": true,
    "partitionSize": "500MB"
  },
  "security": {
    "scanEnabled": true,
    "scanDepth": "deep",
    "failOnHigh": true
  },
  "logging": {
    "level": "warn",
    "format": "json"
  }
}