@@ -704,31 +704,19 @@ async fn get_models(
Ok(models)
}
-fn copilot_request_headers(builder: http_client::Builder, api_token: &str) -> http_client::Builder {
- builder
- .header("Authorization", format!("Bearer {}", api_token))
- .header("Content-Type", "application/json")
- .header(
- "Editor-Version",
- format!(
- "Zed/{}",
- option_env!("CARGO_PKG_VERSION").unwrap_or("unknown")
- ),
- )
-}
-
async fn request_models(
models_url: Arc<str>,
api_token: String,
client: Arc<dyn HttpClient>,
) -> Result<Vec<Model>> {
- let request_builder = copilot_request_headers(
- HttpRequest::builder()
- .method(Method::GET)
- .uri(models_url.as_ref()),
- &api_token,
- )
- .header("x-github-api-version", "2025-05-01");
+ let request_builder = HttpRequest::builder()
+ .method(Method::GET)
+ .uri(models_url.as_ref())
+ .header("Authorization", format!("Bearer {}", api_token))
+ .header("Content-Type", "application/json")
+ .header("Copilot-Integration-Id", "vscode-chat")
+ .header("Editor-Version", "vscode/1.103.2")
+ .header("x-github-api-version", "2025-05-01");
let request = request_builder.body(AsyncBody::empty())?;
@@ -816,16 +804,23 @@ async fn stream_completion(
let request_initiator = if is_user_initiated { "user" } else { "agent" };
- let request_builder = copilot_request_headers(
- HttpRequest::builder()
- .method(Method::POST)
- .uri(completion_url.as_ref()),
- &api_key,
- )
- .header("X-Initiator", request_initiator)
- .when(is_vision_request, |builder| {
- builder.header("Copilot-Vision-Request", is_vision_request.to_string())
- });
+ let request_builder = HttpRequest::builder()
+ .method(Method::POST)
+ .uri(completion_url.as_ref())
+ .header(
+ "Editor-Version",
+ format!(
+ "Zed/{}",
+ option_env!("CARGO_PKG_VERSION").unwrap_or("unknown")
+ ),
+ )
+ .header("Authorization", format!("Bearer {}", api_key))
+ .header("Content-Type", "application/json")
+ .header("Copilot-Integration-Id", "vscode-chat")
+ .header("X-Initiator", request_initiator)
+ .when(is_vision_request, |builder| {
+ builder.header("Copilot-Vision-Request", is_vision_request.to_string())
+ });
let is_streaming = request.stream;