# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85.0"
name = "adk-model"
version = "0.8.2"
authors = ["James Karanja Maina <james.karanja@zavora.ai>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "LLM model integrations for Rust Agent Development Kit (ADK-Rust) (Gemini, OpenAI, Claude, DeepSeek, etc.)"
documentation = "https://docs.rs/adk-model"
readme = "README.md"
keywords = [
    "ai",
    "agent",
    "adk",
    "gemini",
    "llm",
]
categories = [
    "api-bindings",
    "asynchronous",
]
license = "Apache-2.0"
repository = "https://github.com/zavora-ai/adk-rust"
resolver = "2"

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

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

[[example]]
name = "gemini_thinking"
path = "examples/gemini_thinking.rs"
required-features = ["gemini"]

[[example]]
name = "openrouter_adapter"
path = "examples/openrouter_adapter.rs"
required-features = ["openrouter"]

[[example]]
name = "openrouter_chat"
path = "examples/openrouter_chat.rs"
required-features = ["openrouter"]

[[example]]
name = "openrouter_discovery"
path = "examples/openrouter_discovery.rs"
required-features = ["openrouter"]

[[example]]
name = "openrouter_responses"
path = "examples/openrouter_responses.rs"
required-features = ["openrouter"]

[[test]]
name = "anthropic_config_tests"
path = "tests/anthropic_config_tests.rs"

[[test]]
name = "anthropic_error_tests"
path = "tests/anthropic_error_tests.rs"

[[test]]
name = "anthropic_retry_tests"
path = "tests/anthropic_retry_tests.rs"

[[test]]
name = "azure_preservation_tests"
path = "tests/azure_preservation_tests.rs"

[[test]]
name = "azure_reasoning_exploration_tests"
path = "tests/azure_reasoning_exploration_tests.rs"

[[test]]
name = "builtin_tool_flag_property_tests"
path = "tests/builtin_tool_flag_property_tests.rs"

[[test]]
name = "multimodal_conversion_tests"
path = "tests/multimodal_conversion_tests.rs"

[[test]]
name = "openai_client_preservation_tests"
path = "tests/openai_client_preservation_tests.rs"

[[test]]
name = "openai_client_streaming_exploration_tests"
path = "tests/openai_client_streaming_exploration_tests.rs"

[[test]]
name = "openai_config_tests"
path = "tests/openai_config_tests.rs"

[[test]]
name = "openai_preservation_tests"
path = "tests/openai_preservation_tests.rs"

[[test]]
name = "openai_responses_integration_tests"
path = "tests/openai_responses_integration_tests.rs"

[[test]]
name = "openai_schema_property_tests"
path = "tests/openai_schema_property_tests.rs"
required-features = ["openai"]

[[test]]
name = "openai_streaming_exploration_tests"
path = "tests/openai_streaming_exploration_tests.rs"

[[test]]
name = "openrouter_contract_tests"
path = "tests/openrouter_contract_tests.rs"

[[test]]
name = "provider_contract_tests"
path = "tests/provider_contract_tests.rs"

[[test]]
name = "usage_tracking_tests"
path = "tests/usage_tracking_tests.rs"

[dependencies.adk-anthropic]
version = "0.8.2"
optional = true

[dependencies.adk-core]
version = "0.8.2"

[dependencies.adk-gemini]
version = "0.8.2"
optional = true

[dependencies.adk-telemetry]
version = "0.8.2"

[dependencies.anyhow]
version = "1.0"

[dependencies.async-openai]
version = "0.33"
features = [
    "rustls",
    "chat-completion",
    "responses",
]
optional = true
default-features = false

[dependencies.async-stream]
version = "0.3"

[dependencies.async-trait]
version = "0.1"

[dependencies.aws-config]
version = "1"
features = ["behavior-version-latest"]
optional = true

[dependencies.aws-sdk-bedrockruntime]
version = "1.128"
features = [
    "default-https-client",
    "rt-tokio",
]
optional = true
default-features = false

[dependencies.aws-smithy-types]
version = "1.4.7"
optional = true

[dependencies.base64]
version = "0.22"

[dependencies.chrono]
version = "0.4.44"
features = ["serde"]

[dependencies.futures]
version = "0.3"

[dependencies.ollama-rs]
version = "0.3.4"
features = ["stream"]
optional = true
default-features = false

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "stream",
    "rustls-tls-native-roots",
    "multipart",
]
optional = true
default-features = false

[dependencies.schemars]
version = "1.0"
optional = true

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.tokio]
version = "1.40"
features = [
    "sync",
    "time",
]
default-features = false

[dependencies.tracing]
version = "0.1"

[dev-dependencies.futures]
version = "0.3"

[dev-dependencies.proptest]
version = "1.5"

[dev-dependencies.tokio]
version = "1.40"
features = [
    "rt",
    "macros",
]
default-features = false

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
    "fmt",
    "env-filter",
]

[dev-dependencies.wiremock]
version = "0.6"
