[package]
name = "loopflow"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "Run steps and flows with coding agents"
repository = "https://github.com/loopflowstudio/loopflow"
keywords = ["ai", "llm", "agent", "workflow", "automation"]
categories = ["development-tools", "command-line-utilities"]

[lib]
crate-type = ["rlib"]

[[bin]]
name = "lf"
path = "src/bin/lf.rs"

[[bin]]
name = "lfd"
path = "src/bin/lfd.rs"

[[bin]]
name = "lf-prompt"
path = "src/bin/lf-prompt.rs"

# --- Dependencies from loopflow-engine ---
[dependencies]
clap = { version = "4.6", features = ["derive", "env"] }
dirs = "6"
ignore = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_urlencoded = "0.7"
serde_yaml_ng = "0.10"
tracing = "0.1"
thiserror = "2.0"
tiktoken-rs = "0.12"
uuid = { version = "1", features = ["v4"] }
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
rand = "0.10"
once_cell = "1"
regex = "1"

# --- Dependencies from loopflow-ops ---
sha2 = "0.10"
hex = "0.4"
secrecy = { version = "0.8", features = ["serde"] }
subtle = "2"

# --- Dependencies from lf ---
anyhow = "1"
ctrlc = "3"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# --- Dependencies from lfd ---
async-trait = "0.1"
aes-gcm = "0.10"
axum = { version = "0.8", features = ["ws"] }
base64 = "0.22"
bytes = "1"
bollard = "0.19"
cron = "0.17"
deadpool-postgres = "0.14"
futures-util = "0.3"
gethostname = "1.1"
hmac = "0.12"
humantime = "2"
ipnet = "2"
reqwest = { version = "0.13", features = ["blocking", "json"] }
rusqlite = { version = "0.39", features = ["bundled"] }
time = { version = "0.3", features = ["formatting", "parsing", "serde"] }
tokio = { version = "1", features = ["io-util", "macros", "process", "rt-multi-thread", "signal", "sync", "time"] }
tokio-postgres = { version = "0.7", features = ["with-chrono-0_4", "with-serde_json-1"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.7", features = ["rt"] }
tower-http = { version = "0.7", features = ["trace"] }
tempfile = "3.27"
tar = "0.4"

[dev-dependencies]
loopflow-test-support = { path = "../loopflow-test-support" }
tokio = { version = "1", features = ["test-util"] }
