对齐原生 Antigravity 控制面与显示模型

This commit is contained in:
MMEXA
2026-07-08 22:34:29 +08:00
parent 5c68ab896a
commit 2122660a5c
18 changed files with 371 additions and 91 deletions
@@ -5,7 +5,8 @@ use serde_json::Value;
use super::super::snapshot::GatewayProviderTransportSnapshot;
pub const ANTIGRAVITY_PROVIDER_TYPE: &str = "antigravity";
pub const ANTIGRAVITY_REQUEST_USER_AGENT: &str = "antigravity";
pub const ANTIGRAVITY_REQUEST_USER_AGENT: &str =
"antigravity/cli/1.0.16 (aidev_client; os_type=linux; arch=arm64; auth_method=consumer)";
const ANTIGRAVITY_CLIENT_NAME: &str = "antigravity";
const ANTIGRAVITY_GOOG_API_CLIENT: &str = "gl-node/18.18.2 fire/0.8.6 grpc/1.10.x";
@@ -120,6 +121,10 @@ pub fn build_antigravity_static_client_headers(
String::from("x-goog-api-client"),
String::from(ANTIGRAVITY_GOOG_API_CLIENT),
),
(
String::from("user-agent"),
String::from(ANTIGRAVITY_REQUEST_USER_AGENT),
),
]);
if let Some(client_version) = client_version
@@ -267,8 +272,8 @@ mod tests {
use serde_json::json;
use super::{
resolve_local_antigravity_request_auth, AntigravityRequestAuth,
AntigravityRequestAuthSupport,
build_antigravity_static_client_headers, resolve_local_antigravity_request_auth,
AntigravityRequestAuth, AntigravityRequestAuthSupport, ANTIGRAVITY_REQUEST_USER_AGENT,
};
use crate::snapshot::{
GatewayProviderTransportEndpoint, GatewayProviderTransportKey,
@@ -376,4 +381,26 @@ mod tests {
})
);
}
#[test]
fn static_client_headers_use_native_antigravity_cli_user_agent() {
let headers = build_antigravity_static_client_headers(Some("1.0.16"), Some("session-abc"));
assert_eq!(
headers.get("user-agent").map(String::as_str),
Some(ANTIGRAVITY_REQUEST_USER_AGENT)
);
assert_eq!(
headers.get("x-client-name").map(String::as_str),
Some("antigravity")
);
assert_eq!(
headers.get("x-client-version").map(String::as_str),
Some("1.0.16")
);
assert_eq!(
headers.get("x-vscode-sessionid").map(String::as_str),
Some("session-abc")
);
}
}
@@ -141,6 +141,7 @@ mod tests {
build_antigravity_safe_v1internal_request, classify_antigravity_safe_request_body,
AntigravityEnvelopeRequestType, AntigravityRequestAuth, AntigravityRequestEnvelopeSupport,
};
use crate::antigravity::ANTIGRAVITY_REQUEST_USER_AGENT;
fn sample_auth() -> AntigravityRequestAuth {
AntigravityRequestAuth {
@@ -228,7 +229,7 @@ mod tests {
assert_eq!(envelope["project"], "project-ant-123");
assert_eq!(envelope["requestId"], "request-ant-agent-123");
assert_eq!(envelope["model"], "gemini-3.5-flash-low");
assert_eq!(envelope["userAgent"], "antigravity");
assert_eq!(envelope["userAgent"], ANTIGRAVITY_REQUEST_USER_AGENT);
assert_eq!(envelope["requestType"], "agent");
assert!(envelope["request"].get("model").is_none());
assert!(envelope["request"].get("safetySettings").is_none());