[project]
name = "fuzzforge-harness-tester"
version = "0.1.0"
description = "Tests and evaluates fuzz harnesses with detailed feedback for AI-driven iteration"
readme = "README.md"
requires-python = ">=3.14"
dependencies = [
    "fuzzforge-modules-sdk==0.0.1",
]

[tool.uv.sources]
fuzzforge-modules-sdk = { workspace = true }

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/module"]

[tool.uv]
dev-dependencies = [
    "mypy>=1.8.0",
    "pytest>=7.4.3",
    "pytest-asyncio>=0.21.1",
    "pytest-cov>=4.1.0",
    "ruff>=0.1.9",
]

# FuzzForge module metadata for AI agent discovery
[tool.fuzzforge.module]
identifier = "fuzzforge-harness-tester"
category = "validator"
language = "rust"
pipeline_stage = "harness-testing"
pipeline_order = 2
suggested_predecessors = ["fuzzforge-rust-analyzer"]
continuous_mode = false
typical_duration = "2m"

use_cases = [
    "Validate fuzz harnesses compile correctly",
    "Run short fuzzing trials to assess harness quality",
    "Provide detailed feedback for AI to improve harnesses",
    "Gate before running expensive long fuzzing campaigns"
]

common_inputs = [
    "fuzz-harnesses",
    "Cargo.toml",
    "rust-source-code"
]

output_artifacts = [
    "harness-evaluation.json",
    "coverage-report.json",
    "feedback-summary.md"
]

output_treatment = "Display feedback-summary.md as rendered markdown for quick review. Show harness-evaluation.json summary with pass/fail status and error messages. Show coverage-report.json as a table of covered functions."
