TL;DR Add top-level `model_catalog_json` config support so users can supply a local model catalog override from a JSON file path (including adding new models) without backend changes. ### Problem Codex previously had no clean client-side way to replace/overlay model catalog data for local testing of model metadata and new model entries. ### Fix - Add top-level `model_catalog_json` config field (JSON file path). - Apply catalog entries when resolving `ModelInfo`: 1. Base resolved model metadata (remote/fallback) 2. Catalog overlay from `model_catalog_json` 3. Existing global top-level overrides (`model_context_window`, `model_supports_reasoning_summaries`, etc.) ### Note Will revisit per-field overrides in a follow-up ### Tests Added tests
47 lines
1.3 KiB
TOML
47 lines
1.3 KiB
TOML
[package]
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
name = "codex-protocol"
|
|
version.workspace = true
|
|
|
|
[lib]
|
|
name = "codex_protocol"
|
|
path = "src/lib.rs"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
codex-execpolicy = { workspace = true }
|
|
codex-git = { workspace = true }
|
|
codex-utils-absolute-path = { workspace = true }
|
|
codex-utils-image = { workspace = true }
|
|
icu_decimal = { workspace = true }
|
|
icu_locale_core = { workspace = true }
|
|
icu_provider = { workspace = true, features = ["sync"] }
|
|
mime_guess = { workspace = true }
|
|
schemars = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
serde_with = { workspace = true, features = ["macros", "base64"] }
|
|
strum = { workspace = true }
|
|
strum_macros = { workspace = true }
|
|
sys-locale = { workspace = true }
|
|
tracing = { workspace = true }
|
|
ts-rs = { workspace = true, features = [
|
|
"uuid-impl",
|
|
"serde-json-impl",
|
|
"no-serde-warnings",
|
|
] }
|
|
uuid = { workspace = true, features = ["serde", "v7", "v4"] }
|
|
|
|
[dev-dependencies]
|
|
anyhow = { workspace = true }
|
|
pretty_assertions = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
|
|
[package.metadata.cargo-shear]
|
|
# Required because:
|
|
# `icu_provider`: contains a required `sync` feature for `icu_decimal`
|
|
# `strum`: as strum_macros in non-nightly builds
|
|
ignored = ["icu_provider", "strum"]
|