models
ACVE model identities
Model is a first-class ACVE component. A ModelRef contains an id, provider, family, version/tag, optional weight digest and quantization, and a source. The default model is the selected model; models[] lists models the harness can reach, including local fallbacks and model stores.
Canonical references are hf:<org>/<repo>@<40-hex revision> (optionally #<file>@sha256:<64-hex>), ollama:<namespace>/<name>:<tag>@sha256:<manifest digest>, and api:<provider>/<model-id>. Dated API ids such as claude-3-5-sonnet-20241022 and gpt-4o-2024-05-13 carry a snapshot. :latest, other unpinned tags, and undated API aliases have version: null; predicates on model.version or model.digest are then unknown and produce possible findings, never confirmed ones. Quantisation (Q4_K_M, fp16, bf16, and similar) stays part of the identity.
The family key is intentionally stable and lower-cased. The normaliser recognises Llama 3.3/4, Qwen2/3, Gemma-2/3, GLM-4.5, GPT-OSS-120B, DeepSeek V3.1, Kimi K2, Mistral Large 2407, GPT-4o/5, Gemini 2.5/3, Claude 3.5 Sonnet, and Claude Opus 4.6. Family ranges compare the numeric tuple in that family name.
Legacy string model locks remain accepted and normalize on read to a ModelRef with source: "settings". Model ids are not redacted; credentials and model store token files remain denied.