[package]
edition = "2024"
rust-version = "1.93.0"
name = "vtcode-llm"
version = "0.136.0"
authors = ["Vinh Nguyen <vinhnguyen2308@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "LLM provider abstraction, client implementations, and streaming for VT Code"
homepage = "https://github.com/vinhnx/vtcode"
documentation = "https://docs.rs/vtcode-llm"
readme = "README.md"
keywords = [
"vt",
"llm",
"provider",
"ai",
"streaming",
]
categories = ["development-tools"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/vinhnx/vtcode"
[package.metadata.docs.rs]
all-features = true
default-target = "x86_64-unknown-linux-gnu"
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
anthropic-api = [
"dep:axum",
"dep:tower-http",
"dep:tokio-stream",
]
copilot = ["dep:portable-pty"]
default = []
http-server = ["dep:tokio-stream"]
[lib]
name = "vtcode_llm"
path = "src/lib.rs"
[dependencies.anstyle]
version = "1.0"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-stream]
version = "0.3"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.axum]
version = "0.8"
features = [
"json",
"macros",
]
optional = true
[dependencies.bytes]
version = "1.11"
[dependencies.compact_str]
version = "0.9"
features = ["serde"]
[dependencies.dirs]
version = "6.0"
[dependencies.futures]
version = "0.3"
[dependencies.hashbrown]
version = "0.17"
features = ["serde"]
[dependencies.lru]
version = "0.18"
[dependencies.once_cell]
version = "1.21"
[dependencies.openai-harmony]
version = "0.0.8"
[dependencies.parking_lot]
version = "0.12"
[dependencies.portable-pty]
version = "0.9.0"
optional = true
[dependencies.ratatui]
version = "=0.30.2"
features = [
"crossterm",
"layout-cache",
]
default-features = false
[dependencies.regex]
version = "1.12"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
"stream",
"http2",
]
default-features = false
[dependencies.rig]
version = "0.40"
features = [
"reqwest",
"rustls",
]
default-features = false
package = "rig-core"
[dependencies.rustc-hash]
version = "2.1"
[dependencies.semver]
version = "1.0"
[dependencies.serde]
version = "1.0"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0"
[dependencies.shell-words]
version = "1.1"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokio]
version = "1.52"
features = [
"full",
"fs",
"io-util",
"macros",
"rt-multi-thread",
"sync",
"time",
]
[dependencies.tokio-stream]
version = "0.1"
optional = true
[dependencies.tokio-tungstenite]
version = "0.29"
features = [
"connect",
"rustls-tls-webpki-roots",
]
default-features = false
[dependencies.tower-http]
version = "0.7"
features = ["cors"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2.5"
[dependencies.uuid]
version = "1.23.2"
features = ["v4"]
[dependencies.vtcode-commons]
version = "0.136.0"
[dependencies.vtcode-config]
version = "0.136.0"
[dependencies.vtcode-exec-events]
version = "0.136.0"
[dependencies.vtcode-macros]
version = "0.136.0"
[dependencies.vtcode-utility-tool-specs]
version = "0.136.0"
[dependencies.which]
version = "8.0.2"
[dev-dependencies.assert_fs]
version = "1.1"
[dev-dependencies.tempfile]
version = "3.27"
[dev-dependencies.wiremock]
version = "0.6.5"
[lints.clippy]
allow_attributes = "allow"
allow_attributes_without_reason = "allow"
assertions_on_result_states = "allow"
await_holding_lock = "warn"
await_holding_refcell_ref = "warn"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "warn"
collapsible_if = "allow"
dbg_macro = "warn"
debug_assert_with_mut_call = "warn"
expect_used = "warn"
expl_impl_clone_on_copy = "warn"
fallible_impl_from = "warn"
float_cmp = "warn"
float_cmp_const = "warn"
get_unwrap = "warn"
if_let_mutex = "warn"
indexing_slicing = "allow"
invalid_upcast_comparisons = "warn"
iter_not_returning_iterator = "warn"
large_futures = "warn"
let_underscore_future = "warn"
let_underscore_must_use = "allow"
lossy_float_literal = "warn"
map_err_ignore = "warn"
mem_forget = "warn"
multiple_unsafe_ops_per_block = "warn"
panic = "warn"
panic_in_result_fn = "allow"
rc_mutex = "warn"
string_slice = "allow"
todo = "warn"
unchecked_time_subtraction = "warn"
undocumented_unsafe_blocks = "warn"
unimplemented = "warn"
unnecessary_safety_comment = "warn"
unnecessary_safety_doc = "warn"
unreachable = "warn"
unused_result_ok = "allow"
unwrap_in_result = "allow"
unwrap_used = "warn"
[lints.rust]
missing_docs = "warn"
trivial_numeric_casts = "warn"
unsafe_code = "warn"
unstable_features = "warn"
unused_extern_crates = "warn"
unused_import_braces = "warn"
unused_qualifications = "warn"
unused_results = "allow"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(tarpaulin)",
'cfg(feature, values("schema", "default", "tui"))',
]