[package]
name = "elph-ai"
version = "0.0.25"
license = "MIT"
description = "Unified LLM API with provider collections, auth resolution, and streaming"
keywords = ["ai", "llm", "provider", "api", "elph"]
categories = ["api-bindings", "development-tools"]
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true
edition.workspace = true
publish = true
include = ["Cargo.toml", "src/**/*", "bin/**/*", "models/**/*.json", "tests/data/**/*", "examples/**/*"]

[lib]
name = "elph_ai"
path = "src/lib.rs"

[dependencies]
anyhow.workspace = true
async-trait.workspace = true
aws-config.workspace = true
aws-sdk-bedrockruntime.workspace = true
aws-smithy-runtime-api.workspace = true
aws-smithy-types.workspace = true
axum = { workspace = true, features = ["query"] }
base64.workspace = true
chrono.workspace = true
clap = { workspace = true, features = ["derive", "env"] }
eventsource-stream.workspace = true
futures-util.workspace = true
futures.workspace = true
http.workspace = true
image.workspace = true
jsonschema.workspace = true
lazy_static.workspace = true
memchr.workspace = true
once_cell.workspace = true
rand.workspace = true
regex.workspace = true
reqwest.workspace = true
rustls.workspace = true
schemars.workspace = true
serde = { workspace = true, features = ["derive"] }
serde_json.workspace = true
sha2.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["sync", "time", "rt-multi-thread", "macros", "net", "io-util"] }
tokio-rustls.workspace = true
tokio-tungstenite.workspace = true
tokio-util.workspace = true
tracing = { workspace = true }
url.workspace = true
webpki-roots.workspace = true
zstd.workspace = true

[[bin]]
name = "generate-models"
path = "bin/generate_models/main.rs"

[[example]]
name = "basic"
path = "examples/basic.rs"

[[example]]
name = "streaming"
path = "examples/streaming.rs"

[[example]]
name = "browse_models"
path = "examples/browse_models.rs"

[[example]]
name = "tool_loop"
path = "examples/tool_loop.rs"

[[example]]
name = "images"
path = "examples/images.rs"

[[example]]
name = "custom_provider"
path = "examples/custom_provider.rs"

[[example]]
name = "auth_custom"
path = "examples/auth_custom.rs"

[dev-dependencies]
async-trait.workspace = true
indicatif.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
