Introduces image-generation models as a first-class [[models]] entry via
a new `modality` field on the model schema ("text" default, "image",
"audio"). When modality != "text", context_window / max_output_tokens
are optional since no conventional context gate exists — OpenAI's
gpt-image-2 docs omit them.
Adds `image_input_cost_per_m` / `image_output_cost_per_m` alongside
existing text token cost fields to cover the 4-price structure OpenAI
uses for image generation (text $5/$10, image $8/$30 per 1M tokens).
Validator updated to:
- accept any modality in {text, image, audio}
- require context_window/max_output_tokens only for modality=text
- range-check the two new cost fields
gpt-image-2 entry added to providers/openai.toml with pricing sourced
from https://developers.openai.com/api/docs/pricing. Snapshot
gpt-image-2-2026-04-21 listed as alias.
Scripts
Utility scripts for maintaining the LibreFang registry.
validate.py
Validates all TOML content files across the registry.
python scripts/validate.py
What It Checks
Per content type:
- Providers -- required fields, valid tiers, non-negative costs, no duplicate model IDs
- Agents -- required fields (name, description, module), name matches directory
- Hands -- required fields (id, name, description), valid category, [agent] section, id matches directory
- Integrations -- required fields (id, name), [transport] section, id matches filename
- Skills -- [skill] section with name, [runtime] with valid type
- Plugins -- name matches directory, [hooks] section, hook files exist
Cross-type checks:
- Routing alias collisions between agents and hands (reported as warnings)
- Cross-file duplicate model IDs within the same provider
Requirements
- Python 3.11+ (uses
tomllib) - Or Python 3.8+ with
pip install tomli
Exit Codes
0-- all checks passed1-- one or more validation errors