Skip to content

Commit 8d91aed

Browse files
committed
changes
1 parent c22a600 commit 8d91aed

File tree

19 files changed

+139
-85
lines changed

19 files changed

+139
-85
lines changed

codex-rs/cli/src/responses_cmd.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ pub(crate) async fn run_responses_command(
3030
let base_auth_manager = codex_login::AuthManager::shared_from_config(
3131
&config, /*enable_codex_api_key_env*/ true,
3232
);
33-
let provider = create_model_provider(config.model_provider, Some(base_auth_manager));
34-
let provider_auth = provider.resolve_auth().await?;
33+
let model_provider = create_model_provider(config.model_provider, Some(base_auth_manager));
34+
let provider_auth = model_provider.resolve_auth().await?;
3535
let client = codex_api::ResponsesClient::new(
3636
codex_api::ReqwestTransport::new(codex_login::default_client::build_reqwest_client()),
3737
provider_auth.api_provider,

codex-rs/codex-api/src/auth.rs

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,26 @@ use std::sync::Arc;
99
/// reach this interface.
1010
pub trait AuthProvider: Send + Sync {
1111
fn add_auth_headers(&self, headers: &mut HeaderMap);
12-
13-
fn auth_header_attached(&self) -> bool {
14-
false
15-
}
16-
17-
fn auth_header_name(&self) -> Option<&'static str> {
18-
None
19-
}
2012
}
2113

22-
impl<T: AuthProvider + ?Sized> AuthProvider for Arc<T> {
23-
fn add_auth_headers(&self, headers: &mut HeaderMap) {
24-
self.as_ref().add_auth_headers(headers);
25-
}
14+
/// Shared auth handle passed through API clients.
15+
pub type SharedAuthProvider = Arc<dyn AuthProvider>;
2616

27-
fn auth_header_attached(&self) -> bool {
28-
self.as_ref().auth_header_attached()
29-
}
17+
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
18+
pub struct AuthHeaderTelemetry {
19+
pub attached: bool,
20+
pub name: Option<&'static str>,
21+
}
3022

31-
fn auth_header_name(&self) -> Option<&'static str> {
32-
self.as_ref().auth_header_name()
23+
pub fn auth_header_telemetry(auth: &dyn AuthProvider) -> AuthHeaderTelemetry {
24+
let mut headers = HeaderMap::new();
25+
auth.add_auth_headers(&mut headers);
26+
let name = headers
27+
.contains_key(http::header::AUTHORIZATION)
28+
.then_some("authorization");
29+
AuthHeaderTelemetry {
30+
attached: name.is_some(),
31+
name,
3332
}
3433
}
3534

codex-rs/codex-api/src/endpoint/compact.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::auth::AuthProvider;
1+
use crate::auth::SharedAuthProvider;
22
use crate::common::CompactionInput;
33
use crate::endpoint::session::EndpointSession;
44
use crate::error::ApiError;
@@ -17,7 +17,7 @@ pub struct CompactClient<T: HttpTransport> {
1717
}
1818

1919
impl<T: HttpTransport> CompactClient<T> {
20-
pub fn new(transport: T, provider: Provider, auth: Arc<dyn AuthProvider>) -> Self {
20+
pub fn new(transport: T, provider: Provider, auth: SharedAuthProvider) -> Self {
2121
Self {
2222
session: EndpointSession::new(transport, provider, auth),
2323
}

codex-rs/codex-api/src/endpoint/memories.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::auth::AuthProvider;
1+
use crate::auth::SharedAuthProvider;
22
use crate::common::MemorySummarizeInput;
33
use crate::common::MemorySummarizeOutput;
44
use crate::endpoint::session::EndpointSession;
@@ -17,7 +17,7 @@ pub struct MemoriesClient<T: HttpTransport> {
1717
}
1818

1919
impl<T: HttpTransport> MemoriesClient<T> {
20-
pub fn new(transport: T, provider: Provider, auth: Arc<dyn AuthProvider>) -> Self {
20+
pub fn new(transport: T, provider: Provider, auth: SharedAuthProvider) -> Self {
2121
Self {
2222
session: EndpointSession::new(transport, provider, auth),
2323
}
@@ -67,6 +67,7 @@ struct SummarizeResponse {
6767
#[cfg(test)]
6868
mod tests {
6969
use super::*;
70+
use crate::auth::AuthProvider;
7071
use crate::common::RawMemory;
7172
use crate::common::RawMemoryMetadata;
7273
use crate::provider::RetryConfig;

codex-rs/codex-api/src/endpoint/models.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::auth::AuthProvider;
1+
use crate::auth::SharedAuthProvider;
22
use crate::endpoint::session::EndpointSession;
33
use crate::error::ApiError;
44
use crate::provider::Provider;
@@ -16,7 +16,7 @@ pub struct ModelsClient<T: HttpTransport> {
1616
}
1717

1818
impl<T: HttpTransport> ModelsClient<T> {
19-
pub fn new(transport: T, provider: Provider, auth: Arc<dyn AuthProvider>) -> Self {
19+
pub fn new(transport: T, provider: Provider, auth: SharedAuthProvider) -> Self {
2020
Self {
2121
session: EndpointSession::new(transport, provider, auth),
2222
}
@@ -76,6 +76,7 @@ impl<T: HttpTransport> ModelsClient<T> {
7676
#[cfg(test)]
7777
mod tests {
7878
use super::*;
79+
use crate::auth::AuthProvider;
7980
use crate::provider::RetryConfig;
8081
use async_trait::async_trait;
8182
use codex_client::Request;

codex-rs/codex-api/src/endpoint/realtime_call.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::auth::AuthProvider;
1+
use crate::auth::SharedAuthProvider;
22
use crate::endpoint::realtime_websocket::RealtimeSessionConfig;
33
use crate::endpoint::realtime_websocket::session_update_session_json;
44
use crate::endpoint::session::EndpointSession;
@@ -45,7 +45,7 @@ struct BackendRealtimeCallRequest<'a> {
4545
}
4646

4747
impl<T: HttpTransport> RealtimeCallClient<T> {
48-
pub fn new(transport: T, provider: Provider, auth: Arc<dyn AuthProvider>) -> Self {
48+
pub fn new(transport: T, provider: Provider, auth: SharedAuthProvider) -> Self {
4949
Self {
5050
session: EndpointSession::new(transport, provider, auth),
5151
}
@@ -221,6 +221,7 @@ fn decode_call_id_from_location(headers: &HeaderMap) -> Result<String, ApiError>
221221
#[cfg(test)]
222222
mod tests {
223223
use super::*;
224+
use crate::auth::AuthProvider;
224225
use crate::endpoint::realtime_websocket::RealtimeEventParser;
225226
use crate::endpoint::realtime_websocket::RealtimeOutputModality;
226227
use crate::endpoint::realtime_websocket::RealtimeSessionMode;

codex-rs/codex-api/src/endpoint/responses.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::auth::AuthProvider;
1+
use crate::auth::SharedAuthProvider;
22
use crate::common::ResponseStream;
33
use crate::common::ResponsesApiRequest;
44
use crate::endpoint::session::EndpointSession;
@@ -38,7 +38,7 @@ pub struct ResponsesOptions {
3838
}
3939

4040
impl<T: HttpTransport> ResponsesClient<T> {
41-
pub fn new(transport: T, provider: Provider, auth: Arc<dyn AuthProvider>) -> Self {
41+
pub fn new(transport: T, provider: Provider, auth: SharedAuthProvider) -> Self {
4242
Self {
4343
session: EndpointSession::new(transport, provider, auth),
4444
sse_telemetry: None,

codex-rs/codex-api/src/endpoint/responses_websocket.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::auth::AuthProvider;
1+
use crate::auth::SharedAuthProvider;
22
use crate::common::ResponseEvent;
33
use crate::common::ResponseStream;
44
use crate::common::ResponsesWsRequest;
@@ -281,11 +281,11 @@ impl ResponsesWebsocketConnection {
281281

282282
pub struct ResponsesWebsocketClient {
283283
provider: Provider,
284-
auth: Arc<dyn AuthProvider>,
284+
auth: SharedAuthProvider,
285285
}
286286

287287
impl ResponsesWebsocketClient {
288-
pub fn new(provider: Provider, auth: Arc<dyn AuthProvider>) -> Self {
288+
pub fn new(provider: Provider, auth: SharedAuthProvider) -> Self {
289289
Self { provider, auth }
290290
}
291291

codex-rs/codex-api/src/endpoint/session.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::auth::AuthProvider;
1+
use crate::auth::SharedAuthProvider;
22
use crate::error::ApiError;
33
use crate::provider::Provider;
44
use crate::telemetry::run_with_request_telemetry;
@@ -17,12 +17,12 @@ use tracing::instrument;
1717
pub(crate) struct EndpointSession<T: HttpTransport> {
1818
transport: T,
1919
provider: Provider,
20-
auth: Arc<dyn AuthProvider>,
20+
auth: SharedAuthProvider,
2121
request_telemetry: Option<Arc<dyn RequestTelemetry>>,
2222
}
2323

2424
impl<T: HttpTransport> EndpointSession<T> {
25-
pub(crate) fn new(transport: T, provider: Provider, auth: Arc<dyn AuthProvider>) -> Self {
25+
pub(crate) fn new(transport: T, provider: Provider, auth: SharedAuthProvider) -> Self {
2626
Self {
2727
transport,
2828
provider,

codex-rs/codex-api/src/files.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ pub fn openai_file_uri(file_id: &str) -> String {
9696

9797
pub async fn upload_local_file(
9898
base_url: &str,
99-
auth: &impl AuthProvider,
99+
auth: &dyn AuthProvider,
100100
path: &Path,
101101
) -> Result<UploadedOpenAiFile, OpenAiFileError> {
102102
let metadata = tokio::fs::metadata(path)
@@ -252,7 +252,7 @@ pub async fn upload_local_file(
252252
}
253253

254254
fn authorized_request(
255-
auth: &impl AuthProvider,
255+
auth: &dyn AuthProvider,
256256
method: reqwest::Method,
257257
url: &str,
258258
) -> reqwest::RequestBuilder {

0 commit comments

Comments
 (0)