ModelForge
ModelForge provides model-provider and model-target parsing primitives used by
thesa.
Made by Trevor Knott for Knott Dynamics. ModelForge is part of the thesa archive
stack alongside repoforge, siteforge, Scrin, and Aisling.
The crate normalizes Hugging Face, Ollama, and CivitAI target forms into simple archive targets. It does not call provider APIs and it does not download models; it only turns user-facing target strings into stable Rust enums.
Install
[]
= "0.1"
Providers
assert_eq!;
assert_eq!;
Supported providers:
ModelProvider::Hf: Hugging Face HubModelProvider::Ollama: local Ollama registry/runtimeModelProvider::Civitai: CivitAI model catalog
Targets
let target = parse_model_target_for_provider?;
assert_eq!;
assert_eq!;
# Ok::
Normalized targets:
ModelTarget::Org(String): namespace, organization, owner, or search keywordModelTarget::Model(String): concrete model idModelTarget::Top: top/trending/popular presetModelTarget::Latest: latest/newest/new preset
Accepted Forms
Hugging Face:
ownerowner/modelhttps://huggingface.co/owner/modeltop,trending,popularlatest,newest,new
Ollama:
model-nameor search keywordtop,trending,popularlatest,newest,new
CivitAI:
- numeric model id, such as
827184 https://civitai.com/models/827184- search keyword
top,trending,popularlatest,newest,new
Design
ModelForge keeps parsing separate from provider API clients. Consumers such as
thesa can use the normalized target enum to decide whether to fetch a single
model, list a namespace, or run a provider-specific preset query.
Role In Thesa
thesa uses ModelForge before calling provider APIs. The CLI and TUI collect a
target string, ModelForge normalizes it, and thesa then runs the provider flow
with Scrin/Aisling status panels and .thesa integrity manifests.