refactor: simplify module metadata schema for AI discoverability

This commit is contained in:
AFredefon
2026-02-10 21:33:32 +01:00
parent 3b521dba42
commit 8adc7a2e00
7 changed files with 24 additions and 87 deletions
+10 -26
View File
@@ -53,36 +53,24 @@ class ModuleInfo:
#: Whether module image exists locally.
available: bool = True
#: Module category (analyzer, validator, fuzzer, reporter).
category: str | None = None
#: Target programming language (e.g., "rust", "python").
language: str | None = None
#: Pipeline stage name (e.g., "analysis", "fuzzing").
pipeline_stage: str | None = None
#: Numeric order in pipeline for sorting.
pipeline_order: int | None = None
#: Module identifiers that must run before this one.
dependencies: list[str] | None = None
#: Module identifiers that should run before this one.
suggested_predecessors: list[str] | None = None
#: Whether module supports continuous/background execution.
continuous_mode: bool = False
#: Expected runtime (e.g., "30s", "5m", "continuous").
typical_duration: str | None = None
#: Typical use cases and scenarios for this module.
use_cases: list[str] | None = None
#: Input requirements (e.g., ["rust-source-code", "Cargo.toml"]).
input_requirements: list[str] | None = None
#: Common inputs (e.g., ["rust-source-code", "Cargo.toml"]).
common_inputs: list[str] | None = None
#: Output artifacts produced (e.g., ["fuzzable_functions.json"]).
output_artifacts: list[str] | None = None
#: How AI should display/treat outputs.
output_treatment: str | None = None
class Runner:
"""Main FuzzForge Runner interface.
@@ -274,16 +262,12 @@ class Runner:
description=project_info.get("description"),
version=project_info.get("version", image.tag),
available=True,
category=fuzzforge_meta.get("category"),
language=fuzzforge_meta.get("language"),
pipeline_stage=fuzzforge_meta.get("pipeline_stage"),
pipeline_order=fuzzforge_meta.get("pipeline_order"),
dependencies=fuzzforge_meta.get("dependencies", []),
suggested_predecessors=fuzzforge_meta.get("suggested_predecessors", []),
continuous_mode=fuzzforge_meta.get("continuous_mode", False),
typical_duration=fuzzforge_meta.get("typical_duration"),
use_cases=fuzzforge_meta.get("use_cases", []),
input_requirements=fuzzforge_meta.get("input_requirements", []),
common_inputs=fuzzforge_meta.get("common_inputs", []),
output_artifacts=fuzzforge_meta.get("output_artifacts", []),
output_treatment=fuzzforge_meta.get("output_treatment"),
)
)