#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum EnterpriseMode {
None,
Bedrock,
Vertex,
Otel,
}
impl EnterpriseMode {
pub fn slug(self) -> &'static str {
match self {
EnterpriseMode::None => "none",
EnterpriseMode::Bedrock => "bedrock",
EnterpriseMode::Vertex => "vertex",
EnterpriseMode::Otel => "otel",
}
}
pub fn is_enterprise(self) -> bool {
!matches!(self, EnterpriseMode::None)
}
}
pub fn detect() -> EnterpriseMode {
detect_from(&std::env::vars().collect::<Vec<_>>())
}
pub fn detect_from<S: AsRef<str>>(env: &[(S, S)]) -> EnterpriseMode {
let lookup = |key: &str| -> Option<&str> {
env.iter()
.find(|(k, _)| k.as_ref().eq_ignore_ascii_case(key))
.map(|(_, v)| v.as_ref())
};
let truthy = |v: &str| matches!(v.trim().to_ascii_lowercase().as_str(), "1" | "true" | "yes");
if lookup("CLAUDE_CODE_USE_BEDROCK").map(truthy).unwrap_or(false) {
return EnterpriseMode::Bedrock;
}
if lookup("CLAUDE_CODE_USE_VERTEX").map(truthy).unwrap_or(false) {
return EnterpriseMode::Vertex;
}
if lookup("ANTHROPIC_VERTEX_PROJECT_ID").is_some() {
return EnterpriseMode::Vertex;
}
if lookup("AWS_BEDROCK_REGION").is_some() {
return EnterpriseMode::Bedrock;
}
if lookup("OTEL_EXPORTER_OTLP_ENDPOINT").is_some()
|| lookup("OTEL_METRIC_EXPORT_INTERVAL").is_some()
|| lookup("CLAUDE_CODE_ENABLE_TELEMETRY")
.map(truthy)
.unwrap_or(false)
{
return EnterpriseMode::Otel;
}
EnterpriseMode::None
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PricingModel {
Sonnet46,
Opus47,
}
impl PricingModel {
pub fn input_usd_per_mtok(self) -> f64 {
match self {
PricingModel::Sonnet46 => 3.0,
PricingModel::Opus47 => 5.0,
}
}
}
pub fn estimate_usd(saved_input_tokens: u64, model: PricingModel) -> f64 {
(saved_input_tokens as f64) * model.input_usd_per_mtok() / 1_000_000.0
}
pub fn header_tag(mode: EnterpriseMode) -> String {
if !mode.is_enterprise() {
return String::new();
}
format!("[squeez: enterprise={}]", mode.slug())
}
pub fn init_banner_line(mode: EnterpriseMode, prior_session_saved_usd: f64) -> String {
if !mode.is_enterprise() {
return String::new();
}
if prior_session_saved_usd > 0.0 {
format!(
"Enterprise mode ({}): squeez saved an estimated ${:.4} in the prior session.",
mode.slug(),
prior_session_saved_usd,
)
} else {
format!(
"Enterprise mode ({}): every saved token converts to USD on this transport.",
mode.slug()
)
}
}
#[cfg(test)]
mod tests {
use super::*;
fn env(pairs: &[(&str, &str)]) -> Vec<(String, String)> {
pairs
.iter()
.map(|(k, v)| (k.to_string(), v.to_string()))
.collect()
}
#[test]
fn detects_bedrock_via_use_flag() {
let e = env(&[("CLAUDE_CODE_USE_BEDROCK", "1")]);
assert_eq!(detect_from(&e), EnterpriseMode::Bedrock);
}
#[test]
fn detects_bedrock_via_region_var() {
let e = env(&[("AWS_BEDROCK_REGION", "us-east-1")]);
assert_eq!(detect_from(&e), EnterpriseMode::Bedrock);
}
#[test]
fn detects_vertex_via_use_flag() {
let e = env(&[("CLAUDE_CODE_USE_VERTEX", "true")]);
assert_eq!(detect_from(&e), EnterpriseMode::Vertex);
}
#[test]
fn detects_vertex_via_project_id() {
let e = env(&[("ANTHROPIC_VERTEX_PROJECT_ID", "my-project")]);
assert_eq!(detect_from(&e), EnterpriseMode::Vertex);
}
#[test]
fn detects_otel_via_endpoint() {
let e = env(&[("OTEL_EXPORTER_OTLP_ENDPOINT", "http://collector:4318")]);
assert_eq!(detect_from(&e), EnterpriseMode::Otel);
}
#[test]
fn bedrock_beats_otel_when_both_set() {
let e = env(&[
("CLAUDE_CODE_USE_BEDROCK", "1"),
("OTEL_EXPORTER_OTLP_ENDPOINT", "http://x"),
]);
assert_eq!(detect_from(&e), EnterpriseMode::Bedrock);
}
#[test]
fn empty_env_means_no_enterprise() {
let e: Vec<(String, String)> = Vec::new();
assert_eq!(detect_from(&e), EnterpriseMode::None);
}
#[test]
fn falsy_use_flag_is_not_enterprise() {
let e = env(&[("CLAUDE_CODE_USE_BEDROCK", "0")]);
assert_eq!(detect_from(&e), EnterpriseMode::None);
let e = env(&[("CLAUDE_CODE_USE_BEDROCK", "")]);
assert_eq!(detect_from(&e), EnterpriseMode::None);
}
#[test]
fn pricing_math_matches_published_rates() {
assert!((estimate_usd(1_000_000, PricingModel::Sonnet46) - 3.0).abs() < 1e-9);
assert!((estimate_usd(1_000_000, PricingModel::Opus47) - 5.0).abs() < 1e-9);
assert!((estimate_usd(1_000, PricingModel::Sonnet46) - 0.003).abs() < 1e-9);
}
#[test]
fn header_tag_empty_when_not_enterprise() {
assert!(header_tag(EnterpriseMode::None).is_empty());
assert_eq!(header_tag(EnterpriseMode::Bedrock), "[squeez: enterprise=bedrock]");
}
#[test]
fn init_banner_changes_with_prior_savings() {
let with = init_banner_line(EnterpriseMode::Bedrock, 0.1234);
assert!(with.contains("$0.1234"), "{}", with);
let without = init_banner_line(EnterpriseMode::Bedrock, 0.0);
assert!(without.contains("Enterprise mode (bedrock)"));
assert!(init_banner_line(EnterpriseMode::None, 0.0).is_empty());
}
}