mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-08 18:37:46 +08:00
Normalize canonical API formats
This commit is contained in:
@@ -185,11 +185,8 @@ fn select_primary_credential(
|
||||
if signature.starts_with("gemini:") {
|
||||
return select_gemini_credential(bundle);
|
||||
}
|
||||
if signature == "claude:cli" {
|
||||
return select_claude_cli_credential(bundle);
|
||||
}
|
||||
if signature.starts_with("claude:") {
|
||||
return select_claude_chat_credential(bundle);
|
||||
return select_claude_messages_credential(bundle);
|
||||
}
|
||||
if signature.starts_with("openai:") {
|
||||
return select_openai_credential(bundle);
|
||||
@@ -212,29 +209,15 @@ fn select_openai_credential(bundle: &GatewayCredentialBundle) -> Option<GatewayP
|
||||
.or_else(|| select_cookie_credential(bundle))
|
||||
}
|
||||
|
||||
fn select_claude_cli_credential(
|
||||
fn select_claude_messages_credential(
|
||||
bundle: &GatewayCredentialBundle,
|
||||
) -> Option<GatewayPrimaryCredential> {
|
||||
first_provider_api_key(
|
||||
bundle,
|
||||
&[
|
||||
GatewayCredentialCarrier::XApiKey,
|
||||
GatewayCredentialCarrier::ApiKey,
|
||||
GatewayCredentialCarrier::AuthorizationBearer,
|
||||
GatewayCredentialCarrier::XApiKey,
|
||||
GatewayCredentialCarrier::ApiKey,
|
||||
],
|
||||
)
|
||||
.or_else(|| first_bearer_token(bundle))
|
||||
.or_else(|| select_cookie_credential(bundle))
|
||||
}
|
||||
|
||||
fn select_claude_chat_credential(
|
||||
bundle: &GatewayCredentialBundle,
|
||||
) -> Option<GatewayPrimaryCredential> {
|
||||
first_provider_api_key(
|
||||
bundle,
|
||||
&[
|
||||
GatewayCredentialCarrier::XApiKey,
|
||||
GatewayCredentialCarrier::ApiKey,
|
||||
],
|
||||
)
|
||||
.or_else(|| first_bearer_token(bundle))
|
||||
@@ -410,7 +393,8 @@ mod tests {
|
||||
);
|
||||
headers.insert("x-api-key", "claude-key".parse().unwrap());
|
||||
|
||||
let extracted = extract_request_credentials(&headers, &uri("/v1/messages"), "claude:chat");
|
||||
let extracted =
|
||||
extract_request_credentials(&headers, &uri("/v1/messages"), "claude:messages");
|
||||
assert_eq!(
|
||||
extracted.primary,
|
||||
Some(GatewayPrimaryCredential::ProviderApiKey {
|
||||
@@ -428,7 +412,8 @@ mod tests {
|
||||
"Bearer cli-token".parse().unwrap(),
|
||||
);
|
||||
|
||||
let extracted = extract_request_credentials(&headers, &uri("/v1/messages"), "claude:cli");
|
||||
let extracted =
|
||||
extract_request_credentials(&headers, &uri("/v1/messages"), "claude:messages");
|
||||
assert_eq!(
|
||||
extracted.primary,
|
||||
Some(GatewayPrimaryCredential::ProviderApiKey {
|
||||
@@ -446,7 +431,7 @@ mod tests {
|
||||
let extracted = extract_request_credentials(
|
||||
&headers,
|
||||
&uri("/v1beta/models?key=gemini-query"),
|
||||
"gemini:chat",
|
||||
"gemini:generate_content",
|
||||
);
|
||||
assert_eq!(
|
||||
extracted.primary,
|
||||
|
||||
@@ -660,7 +660,7 @@ fn contains_api_format_or_alias(items: &[String], target: &str) -> bool {
|
||||
}
|
||||
|
||||
fn normalize_api_format_alias(value: &str) -> String {
|
||||
crate::ai_pipeline::normalize_legacy_openai_format_alias(value)
|
||||
crate::ai_pipeline::normalize_api_format_alias(value)
|
||||
}
|
||||
|
||||
fn api_format_matches(left: &str, right: &str) -> bool {
|
||||
|
||||
Reference in New Issue
Block a user