[package]
name = "tycode-core"
version = "0.5.0"
edition = "2021"
authors = ["tigy"]
description = "Core chat actor and AI functionality for TyCode"
license = "MIT"
repository = "https://github.com/tigy32/Tycode"
[lib]
crate-type = ["cdylib", "rlib"]
[features]
default = []
voice = [
"dep:aws-sdk-transcribestreaming",
"dep:aws-sdk-polly",
"dep:cpal",
"dep:rubato",
"dep:tokio-tungstenite",
]
[dependencies]
async-trait = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
toml = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
chrono = { workspace = true }
rand = "0.8"
base64 = { workspace = true }
similar = { workspace = true }
sha2 = { workspace = true }
shell-words = "1.1"
tracing = { workspace = true }
strum = { version = "0.27", features = ["derive"] }
tokio = { version = "1.36.0", features = ["full", "process"] }
async-stream = "0.3"
futures-util = "0.3"
tokio-stream = "0.1"
uuid = { version = "1.6.1", features = ["v4", "serde"] }
rmcp = { version = "0.2", features = ["transport-child-process", "client"] }
async-channel = "2.1"
schemars = { version = "0.8", features = ["preserve_order"] }
regex = { version = "1.10" }
walkdir = { version = "2.4" }
dirs = { version = "5.0" }
ignore = { version = "0.4" }
lsp-types = "0.95"
cargo_metadata = "0.18"
syn = { version = "2.0", features = ["full", "parsing", "visit"] }
prettyplease = "0.2"
reqwest = { version = "0.12", features = ["json", "stream"] }
aws-config = { version = "1.1.1", features = ["credentials-process"] }
aws-sdk-bedrockruntime = "1.105.0"
aws-smithy-types = { version = "1", features = ["serde-deserialize", "serde-serialize"] }
aws-smithy-async = { version = "1" }
aws-smithy-runtime-api = { version = "1" }
aws-smithy-http = { version = "0.60" }
aws-sdk-polly = { version = "1", optional = true }
aws-sdk-transcribestreaming = { version = "1", optional = true }
cpal = { version = "0.15", optional = true }
rubato = { version = "0.14", optional = true }
tokio-tungstenite = { version = "0.21", features = ["native-tls"], optional = true }
[dev-dependencies]
tempfile = "3.8"
tracing-subscriber = "0.3"
rstest = "0.18"
hound = "3.5"
[target.'cfg(target_env = "musl")'.dependencies]
openssl-sys = { version = "0.9", features = ["vendored"] }