Skip to main content

vtcode_core/llm/providers/openai/
headers.rs

1use reqwest::RequestBuilder;
2use serde_json::Value;
3
4pub(crate) fn apply_json_content_type(builder: RequestBuilder) -> RequestBuilder {
5    builder.header("Content-Type", "application/json")
6}
7
8pub(crate) fn apply_responses_beta(builder: RequestBuilder) -> RequestBuilder {
9    builder.header("OpenAI-Beta", "responses=v1")
10}
11
12/// Apply turn metadata header if metadata is present in the request.
13/// This header provides git context (remote URLs, commit hash) to the provider.
14pub(crate) fn apply_turn_metadata(
15    builder: RequestBuilder,
16    metadata: &Option<Value>,
17) -> RequestBuilder {
18    if let Some(metadata) = metadata
19        && let Ok(metadata_str) = serde_json::to_string(metadata)
20    {
21        return builder.header("X-Turn-Metadata", metadata_str);
22    }
23    builder
24}
25
26pub(crate) fn apply_client_request_id(
27    builder: RequestBuilder,
28    client_request_id: &str,
29) -> RequestBuilder {
30    if client_request_id.trim().is_empty() {
31        return builder;
32    }
33    builder.header("X-Client-Request-Id", client_request_id)
34}