[package]
name = "adk-model"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
description = "LLM model integrations for Rust Agent Development Kit (ADK-Rust) (Gemini, OpenAI, Claude, DeepSeek, etc.)"
repository = "https://github.com/zavora-ai/adk-rust"
documentation = "https://docs.rs/adk-model"
keywords = ["ai", "agent", "adk", "gemini", "llm"]
categories = ["api-bindings", "asynchronous"]
readme = "README.md"

[dependencies]
adk-core.workspace = true
adk-telemetry.workspace = true
adk-gemini = { workspace = true, optional = true }
async-trait.workspace = true
tokio = { workspace = true, features = ["sync", "time"] }
futures.workspace = true
async-stream.workspace = true
serde_json.workspace = true
serde = { workspace = true }
async-openai = { version = "0.33", optional = true, default-features = false, features = ["rustls", "chat-completion", "responses"] }
adk-anthropic = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true }
anyhow.workspace = true
tracing.workspace = true
chrono.workspace = true
base64 = "0.22"
ollama-rs = { version = "0.3.4", optional = true, default-features = false, features = ["stream"] }
schemars = { version = "1.0", optional = true }
aws-sdk-bedrockruntime = { version = "1.128", optional = true, default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-config = { version = "1", optional = true, features = ["behavior-version-latest"] }
aws-smithy-types = { version = "1.4.7", optional = true }

[features]
default = ["gemini"]
gemini = ["dep:adk-gemini"]
gemini-vertex = ["gemini", "adk-gemini/vertex"]
openai = ["dep:async-openai", "dep:reqwest"]
xai = ["openai"]
anthropic = ["dep:adk-anthropic"]
deepseek = ["dep:reqwest"]
ollama = ["dep:ollama-rs", "dep:schemars"]
groq = ["dep:reqwest"]
openrouter = ["dep:reqwest"]
fireworks = ["openai"]
together = ["openai"]
mistral = ["openai"]
perplexity = ["openai"]
cerebras = ["openai"]
sambanova = ["openai"]
bedrock = ["dep:aws-sdk-bedrockruntime", "dep:aws-config", "dep:aws-smithy-types"]
azure-ai = ["dep:reqwest"]
all-providers = ["gemini", "openai", "anthropic", "deepseek", "ollama", "groq", "openrouter", "bedrock", "azure-ai"]

[dev-dependencies]
proptest = "1.5"
tokio = { workspace = true, features = ["rt", "macros"] }
tracing-subscriber = { workspace = true, features = ["fmt", "env-filter"] }
futures = "0.3"
wiremock = "0.6"

# Examples require the openrouter feature — skip when not enabled.
[[example]]
name = "openrouter_chat"
required-features = ["openrouter"]

[[example]]
name = "openrouter_adapter"
required-features = ["openrouter"]

[[example]]
name = "openrouter_discovery"
required-features = ["openrouter"]

[[example]]
name = "openrouter_responses"
required-features = ["openrouter"]

[[example]]
name = "gemini_thinking"
required-features = ["gemini"]

[[test]]
name = "openai_schema_property_tests"
required-features = ["openai"]
