tycode-core 0.5.0

Core chat actor and AI functionality for TyCode
Documentation
[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]
# Core 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"] }

# MCP dependencies
rmcp = { version = "0.2", features = ["transport-child-process", "client"] }
async-channel = "2.1"

# Schema generation
schemars = { version = "0.8", features = ["preserve_order"] }

# File operations
regex = { version = "1.10" }
walkdir = { version = "2.4" }
dirs = { version = "5.0" }
ignore = { version = "0.4" }

# LSP dependencies
lsp-types = "0.95"
cargo_metadata = "0.18"
syn = { version = "2.0", features = ["full", "parsing", "visit"] }
prettyplease = "0.2"

# HTTP client
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" }

# Voice/audio dependencies (optional)

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"

# Vendor OpenSSL for musl targets to avoid linking issues
[target.'cfg(target_env = "musl")'.dependencies]
openssl-sys = { version = "0.9", features = ["vendored"] }