mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-08 02:17:46 +08:00
fix(codex): serve versioned dynamic model catalogs
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,15 @@
|
||||
mod catalog;
|
||||
mod runtime;
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
pub(crate) use aether_model_fetch::ModelFetchRunSummary;
|
||||
pub(crate) use catalog::{
|
||||
codex_catalog_credential_scope_from_stored_key, codex_catalog_targets, load_codex_catalogs,
|
||||
normalize_codex_client_version, read_recent_codex_catalog_client_version,
|
||||
refresh_codex_catalog_target, CodexCatalogLoad, CodexCatalogRuntime, CodexCatalogTarget,
|
||||
NormalizedCodexClientVersion,
|
||||
};
|
||||
pub(crate) use runtime::state::ModelFetchRuntimeState;
|
||||
pub(crate) use runtime::{
|
||||
perform_model_fetch_for_key, perform_model_fetch_for_keys, perform_model_fetch_once,
|
||||
|
||||
@@ -7,7 +7,7 @@ use aether_data_contracts::repository::provider_catalog::{
|
||||
StoredProviderCatalogKey, StoredProviderCatalogProvider,
|
||||
};
|
||||
use aether_model_fetch::{
|
||||
apply_model_filters, fetch_models_from_transports, json_string_list,
|
||||
apply_model_filters, fetch_models_from_transports_for_client_version, json_string_list,
|
||||
model_catalog_upstream_metadata, model_fetch_interval_minutes,
|
||||
model_fetch_startup_delay_seconds, model_fetch_startup_enabled, preset_models_for_provider,
|
||||
selected_models_fetch_endpoints, sync_provider_model_whitelist_associations,
|
||||
@@ -315,7 +315,25 @@ async fn fetch_and_persist_key_models(
|
||||
return Ok(KeyFetchDisposition::Skipped);
|
||||
}
|
||||
|
||||
let result = match fetch_models_from_transports(state, &transports).await {
|
||||
let codex_client_version = if target
|
||||
.provider
|
||||
.provider_type
|
||||
.trim()
|
||||
.eq_ignore_ascii_case("codex")
|
||||
{
|
||||
state
|
||||
.read_recent_codex_catalog_client_version(&target.provider.id, &target.key.id)
|
||||
.await
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let result = match fetch_models_from_transports_for_client_version(
|
||||
state,
|
||||
&transports,
|
||||
codex_client_version.as_deref(),
|
||||
)
|
||||
.await
|
||||
{
|
||||
Ok(result) => result,
|
||||
Err(err) => {
|
||||
persist_key_fetch_failure(state, &target.key, now_unix_secs, err.clone()).await?;
|
||||
|
||||
@@ -43,6 +43,14 @@ pub(crate) trait ModelFetchRuntimeState:
|
||||
plan: &ExecutionPlan,
|
||||
) -> Result<ExecutionResult, GatewayError>;
|
||||
|
||||
async fn read_recent_codex_catalog_client_version(
|
||||
&self,
|
||||
_provider_id: &str,
|
||||
_key_id: &str,
|
||||
) -> Option<String> {
|
||||
None
|
||||
}
|
||||
|
||||
async fn update_provider_catalog_key_model_fetch_state(
|
||||
&self,
|
||||
key_id: &str,
|
||||
|
||||
Reference in New Issue
Block a user