# 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.88"
name = "philharmonic"
version = "0.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Philharmonic workflow orchestration system — meta-crate re-exporting the entire crate family. Depends on all published library crates; feature-gates connector implementations so consumers can pick individually with default-features = false."
readme = "README.md"
keywords = [
    "philharmonic",
    "workflow",
    "orchestration",
]
categories = ["data-structures"]
license = "Apache-2.0 OR MPL-2.0"
repository = "https://github.com/metastable-void/philharmonic"

[features]
connector-email-smtp = ["dep:philharmonic-connector-impl-email-smtp"]
connector-embed = ["dep:philharmonic-connector-impl-embed"]
connector-http-forward = ["dep:philharmonic-connector-impl-http-forward"]
connector-llm-anthropic = ["dep:philharmonic-connector-impl-llm-anthropic"]
connector-llm-gemini = ["dep:philharmonic-connector-impl-llm-gemini"]
connector-llm-openai-compat = ["dep:philharmonic-connector-impl-llm-openai-compat"]
connector-sql-mysql = ["dep:philharmonic-connector-impl-sql-mysql"]
connector-sql-postgres = ["dep:philharmonic-connector-impl-sql-postgres"]
connector-vector-search = ["dep:philharmonic-connector-impl-vector-search"]
default = [
    "connector-http-forward",
    "connector-llm-openai-compat",
    "connector-sql-postgres",
    "connector-sql-mysql",
    "connector-embed",
    "connector-vector-search",
]
https = [
    "mechanics/https",
    "dep:tokio-rustls",
]

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

[[bin]]
name = "mechanics-worker"
path = "src/bin/mechanics_worker/main.rs"

[[bin]]
name = "philharmonic-api"
path = "src/bin/philharmonic_api/main.rs"

[[bin]]
name = "philharmonic-connector"
path = "src/bin/philharmonic_connector/main.rs"

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

[dependencies.axum]
version = "0.8"

[dependencies.clap]
version = "4"
features = ["derive"]

[dependencies.coset]
version = "0.4"

[dependencies.hex]
version = "0.4"

[dependencies.http]
version = "1"

[dependencies.hyper-util]
version = "0.1"
features = ["full"]

[dependencies.mechanics]
version = "0.4.0"

[dependencies.mechanics-config]
version = "0.1.0"

[dependencies.mechanics-core]
version = "0.3.0"

[dependencies.philharmonic-api]
version = "0.1.1"

[dependencies.philharmonic-connector-client]
version = "0.1.0"

[dependencies.philharmonic-connector-common]
version = "0.2.0"

[dependencies.philharmonic-connector-impl-api]
version = "0.1.1"

[dependencies.philharmonic-connector-impl-email-smtp]
version = "0.0.0"
optional = true

[dependencies.philharmonic-connector-impl-embed]
version = "0.1.0"
optional = true

[dependencies.philharmonic-connector-impl-http-forward]
version = "0.1.0"
optional = true

[dependencies.philharmonic-connector-impl-llm-anthropic]
version = "0.0.0"
optional = true

[dependencies.philharmonic-connector-impl-llm-gemini]
version = "0.0.0"
optional = true

[dependencies.philharmonic-connector-impl-llm-openai-compat]
version = "0.1.0"
optional = true

[dependencies.philharmonic-connector-impl-sql-mysql]
version = "0.1.0"
optional = true

[dependencies.philharmonic-connector-impl-sql-postgres]
version = "0.1.0"
optional = true

[dependencies.philharmonic-connector-impl-vector-search]
version = "0.1.0"
optional = true

[dependencies.philharmonic-connector-router]
version = "0.1.0"

[dependencies.philharmonic-connector-service]
version = "0.2.0"

[dependencies.philharmonic-policy]
version = "0.2.0"

[dependencies.philharmonic-store]
version = "0.1.1"

[dependencies.philharmonic-store-sqlx-mysql]
version = "0.1.1"

[dependencies.philharmonic-types]
version = "0.3.5"

[dependencies.philharmonic-workflow]
version = "0.1.1"

[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]

[dependencies.reqwest]
version = "0.13"
features = [
    "json",
    "rustls",
]
default-features = false

[dependencies.rust-embed]
version = "8"

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

[dependencies.serde_json]
version = "1"

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.tokio-rustls]
version = "0.26"
optional = true

[dependencies.toml]
version = "0.8"

[dependencies.tower]
version = "0.5"

[dependencies.x25519-dalek]
version = "2"
features = ["static_secrets"]

[dependencies.zeroize]
version = "1"
features = ["derive"]

[dev-dependencies.tokio]
version = "1"
features = [
    "macros",
    "rt",
    "time",
]

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
overflow-checks = true
strip = true
