use std::future::Future;
use std::pin::Pin;
use codex_protocol::ThreadId;
use http::HeaderValue;
pub(crate) const X_OAI_ATTESTATION_HEADER: &str = "x-oai-attestation";
pub type GenerateAttestationFuture<'a> =
Pin<Box<dyn Future<Output = Option<HeaderValue>> + Send + 'a>>;
#[derive(Clone, Copy, Debug)]
pub struct AttestationContext {
pub thread_id: ThreadId,
}
pub trait AttestationProvider: std::fmt::Debug + Send + Sync {
fn header_for_request(&self, context: AttestationContext) -> GenerateAttestationFuture<'_>;
}