fix(model-catalog): declare the cache_storage_cost_per_token_per_hour key

The Rust model catalog files any key it does not know under problems, so
the cost map entries that carry the Vertex/Gemini context cache storage
rate fail the bundled registry check. Declare the key as a UnitPrice
attribute, the same way thinking_on_by_default was declared.
This commit is contained in:
roasted-penguin 2026-11-05 11:58:33 +09:00
parent a36a16e2d8
commit 77efb01bd8

View file

@ -53,6 +53,8 @@ attributes! {
bedrock_converse_supports_strict_tools: bool,
/// Highest reasoning effort the Bedrock output_config accepts for this model.
bedrock_output_config_effort_ceiling: EffortLevel,
/// USD per token per hour to keep an explicitly created context cache stored.
cache_storage_cost_per_token_per_hour: UnitPrice,
comment: String,
/// Reasoning effort the provider applies when the request omits reasoning_effort. Gates whether a non-default temperature or the top_p/logprobs sampling params are accepted, which hold only when the effort resolves to 'none'.
default_reasoning_effort: EffortLevel,
@ -313,6 +315,8 @@ mod tests {
#[case::deprecation_source_not_a_url_string("deprecation_source", json!(7), false)]
#[case::thinking_on_by_default("thinking_on_by_default", json!(true), true)]
#[case::thinking_on_by_default_not_a_flag("thinking_on_by_default", json!("yes"), false)]
#[case::cache_storage_rate("cache_storage_cost_per_token_per_hour", json!(4.5e-6), true)]
#[case::negative_cache_storage_rate("cache_storage_cost_per_token_per_hour", json!(-1), false)]
#[case::reasoning_contexts("reasoning_contexts", json!(["reasoning", "non_reasoning"]), true)]
#[case::reasoning_modes("reasoning_modes", json!(["none", "adaptive"]), true)]
#[case::reasoning_context_not_a_list("reasoning_contexts", json!("reasoning"), false)]