Skip to main content

typesafe/
constants.rs

1//! Environment-variable names, defaults and protocol constants.
2
3use std::time::Duration;
4
5/// Environment variable for the API key.
6pub const API_KEY_ENV: &str = "TYPESAFE_API_KEY";
7/// Environment variable for the API base URL.
8pub const BASE_URL_ENV: &str = "TYPESAFE_BASE_URL";
9/// Environment variable for the default model.
10pub const DEFAULT_MODEL_ENV: &str = "TYPESAFE_DEFAULT_MODEL";
11/// Environment variable naming a directory to record responses into.
12pub const RECORD_ENV: &str = "TYPESAFE_RECORD";
13/// Environment variable naming a directory to replay responses from.
14pub const REPLAY_ENV: &str = "TYPESAFE_REPLAY";
15
16/// Default API base URL.
17pub const DEFAULT_BASE_URL: &str = "https://api.typesafe.ai";
18/// Default model name.
19pub const DEFAULT_MODEL: &str = "jev-latest";
20/// Default timeout for each HTTP attempt.
21pub const DEFAULT_TIMEOUT: Duration = Duration::from_secs(10);
22
23/// Crate version.
24pub const VERSION: &str = env!("CARGO_PKG_VERSION");
25/// SDK identifier sent in `User-Agent` and `X-TypeSafe-SDK`.
26pub const SDK_NAME: &str = "typesafe-sdk-rust";
27
28pub(crate) const SYSTEM_ONE_PATH: &str = "/v1/systemone";
29pub(crate) const MODELS_PATH: &str = "/v1/models";
30
31pub(crate) const MAX_ERROR_BODY_LENGTH: usize = 200;
32
33pub(crate) const SDK_HEADER: &str = "x-typesafe-sdk";
34pub(crate) const RUNTIME_HEADER: &str = "x-typesafe-runtime";
35pub(crate) const RETRY_COUNT_HEADER: &str = "x-typesafe-retry-count";
36pub(crate) const REQUEST_ID_HEADER: &str = "x-typesafe-request-id";
37pub(crate) const RETRY_AFTER_HEADER: &str = "retry-after";
38pub(crate) const RETRY_AFTER_MS_HEADER: &str = "retry-after-ms";
39
40pub(crate) const SECRET_HEADERS: [&str; 6] = [
41    "authorization",
42    "proxy-authorization",
43    "x-api-key",
44    "api-key",
45    "cookie",
46    "set-cookie",
47];