Implement transport profile routing

This commit is contained in:
fawney19
2026-05-05 22:21:23 +08:00
parent aacab1a90c
commit f959f02d40
86 changed files with 860 additions and 318 deletions
@@ -72,7 +72,7 @@ async fn execute_antigravity_quota_plan(
provider_api_format: "antigravity:fetch_available_models".to_string(),
model_name: Some("fetchAvailableModels".to_string()),
proxy,
tls_profile: state.resolve_transport_tls_profile(transport),
transport_profile: state.resolve_transport_profile(transport),
timeouts,
};
@@ -97,7 +97,7 @@ pub(super) async fn execute_codex_quota_plan(
provider_api_format: "openai:responses".to_string(),
model_name: Some("codex-wham-usage".to_string()),
proxy,
tls_profile: state.resolve_transport_tls_profile(transport),
transport_profile: state.resolve_transport_profile(transport),
timeouts,
};
execute_provider_quota_plan(state, transport, plan, "codex").await
@@ -103,7 +103,7 @@ pub(super) async fn execute_kiro_quota_plan(
provider_api_format: "kiro:usage".to_string(),
model_name: Some("kiro-usage-limits".to_string()),
proxy,
tls_profile: state.resolve_transport_tls_profile(transport),
transport_profile: state.resolve_transport_profile(transport),
timeouts,
};
@@ -194,7 +194,6 @@ pub(super) async fn execute_provider_quota_plan(
key_id = %transport.key.id,
endpoint_id = %transport.endpoint.id,
url = %plan.url,
tls_profile = ?plan.tls_profile.as_deref(),
proxy_source = ?proxy_source,
proxy_node_id = ?proxy_node_id,
proxy_url_present,
@@ -179,7 +179,7 @@ async fn admin_provider_ops_execute_request(
provider_api_format: "provider_ops:verify".to_string(),
model_name: Some("verify-auth".to_string()),
proxy: proxy_snapshot.cloned(),
tls_profile: None,
transport_profile: None,
timeouts: Some(ExecutionTimeouts {
connect_ms: Some(ADMIN_PROVIDER_OPS_VERIFY_TIMEOUT_MS),
read_ms: Some(ADMIN_PROVIDER_OPS_VERIFY_TIMEOUT_MS),
@@ -849,7 +849,7 @@ async fn provider_query_execute_kiro_test_candidate(
proxy: state
.resolve_transport_proxy_snapshot_with_tunnel_affinity(&transport)
.await,
tls_profile: state.resolve_transport_tls_profile(&transport),
transport_profile: state.resolve_transport_profile(&transport),
timeouts: state.resolve_transport_execution_timeouts(&transport),
};
@@ -1214,7 +1214,7 @@ async fn provider_query_execute_standard_test_candidate(
proxy: state
.resolve_transport_proxy_snapshot_with_tunnel_affinity(&transport)
.await,
tls_profile: state.resolve_transport_tls_profile(&transport),
transport_profile: state.resolve_transport_profile(&transport),
timeouts: state.resolve_transport_execution_timeouts(&transport),
};
@@ -44,6 +44,8 @@ pub(crate) struct AdminProviderKeyCreateRequest {
pub(crate) model_include_patterns: Option<Vec<String>>,
#[serde(default)]
pub(crate) model_exclude_patterns: Option<Vec<String>>,
#[serde(default)]
pub(crate) fingerprint: Option<serde_json::Value>,
}
#[derive(Debug, Deserialize)]
@@ -170,7 +170,7 @@ pub(crate) async fn build_admin_create_provider_key_record(
normalize_string_list(payload.allowed_models).map(|value| json!(value)),
None,
None,
None,
normalize_json_object(payload.fingerprint, "fingerprint")?,
)
.map_err(|err| err.to_string())?;
key.note = payload