[package]
edition = "2024"
rust-version = "1.93.0"
name = "vtcode-core"
version = "0.136.3"
authors = ["Vinh Nguyen <vinhnguyen2308@gmail.com>"]
build = "build.rs"
include = [
"src/",
"tests/",
"examples/",
"benches/",
"build.rs",
"Cargo.toml",
"README.md",
"LICENSE",
"templates/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core library for VT Code - a Rust-based terminal coding agent"
homepage = "https://github.com/vinhnx/vtcode"
documentation = "https://docs.rs/vtcode-core"
readme = "README.md"
keywords = [
"ai",
"coding",
"agent",
"llm",
"rust",
]
categories = [
"development-tools",
"api-bindings",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/vinhnx/vtcode"
[package.metadata.cargo-machete]
ignored = [
"toml_edit",
"tower",
]
[package.metadata.docs.rs]
all-features = true
default-target = "x86_64-unknown-linux-gnu"
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
a2a-server = [
"http-server",
"vtcode-a2a/a2a-server",
]
anthropic-api = [
"http-server",
"vtcode-llm/anthropic-api",
]
default = ["tui"]
desktop-notifications = ["dep:notify-rust"]
http-server = [
"dep:axum",
"dep:tower",
]
mock = []
policies = []
schema = [
"dep:schemars",
"vtcode-config/schema",
"vtcode-commons/schema",
]
sqlite = ["dep:rusqlite"]
tui = ["dep:crossterm"]
[lib]
name = "vtcode_core"
path = "src/lib.rs"
[[example]]
name = "anstyle_test"
path = "examples/anstyle_test.rs"
[[example]]
name = "dialoguer_example"
path = "examples/dialoguer_example.rs"
[[example]]
name = "migration_test"
path = "examples/migration_test.rs"
[[test]]
name = "apply_patch_alias"
path = "tests/apply_patch_alias.rs"
[[test]]
name = "apply_patch_comprehensive"
path = "tests/apply_patch_comprehensive.rs"
[[test]]
name = "apply_patch_semantic"
path = "tests/apply_patch_semantic.rs"
[[test]]
name = "code_search_contract"
path = "tests/code_search_contract.rs"
[[test]]
name = "config_loader_test"
path = "tests/config_loader_test.rs"
[[test]]
name = "core_fuzz_props"
path = "tests/core_fuzz_props.rs"
[[test]]
name = "create_file_tool"
path = "tests/create_file_tool.rs"
[[test]]
name = "delete_file_tool"
path = "tests/delete_file_tool.rs"
[[test]]
name = "execpolicy_security_tests"
path = "tests/execpolicy_security_tests.rs"
[[test]]
name = "file_conflict_integration"
path = "tests/file_conflict_integration.rs"
[[test]]
name = "file_ops_read"
path = "tests/file_ops_read.rs"
[[test]]
name = "file_ops_security"
path = "tests/file_ops_security.rs"
[[test]]
name = "filesystem_tool_aliases"
path = "tests/filesystem_tool_aliases.rs"
[[test]]
name = "get_errors_tool"
path = "tests/get_errors_tool.rs"
[[test]]
name = "loop_detection_integration"
path = "tests/loop_detection_integration.rs"
[[test]]
name = "loop_detector_props"
path = "tests/loop_detector_props.rs"
[[test]]
name = "mcp_basic_test"
path = "tests/mcp_basic_test.rs"
[[test]]
name = "mcp_cli_integration_test"
path = "tests/mcp_cli_integration_test.rs"
[[test]]
name = "mcp_context7_manual"
path = "tests/mcp_context7_manual.rs"
[[test]]
name = "mcp_integration_e2e"
path = "tests/mcp_integration_e2e.rs"
[[test]]
name = "mcp_integration_test"
path = "tests/mcp_integration_test.rs"
[[test]]
name = "mcp_startup_timeout_test"
path = "tests/mcp_startup_timeout_test.rs"
[[test]]
name = "patch_recovery"
path = "tests/patch_recovery.rs"
[[test]]
name = "phase4_dual_output_integration"
path = "tests/phase4_dual_output_integration.rs"
[[test]]
name = "pty_session_guard_test"
path = "tests/pty_session_guard_test.rs"
[[test]]
name = "pty_test"
path = "tests/pty_test.rs"
[[test]]
name = "pty_tests"
path = "tests/pty_tests.rs"
[[test]]
name = "pty_unicode_test"
path = "tests/pty_unicode_test.rs"
[[test]]
name = "real_execute_tool_ref_optimization_test"
path = "tests/real_execute_tool_ref_optimization_test.rs"
[[test]]
name = "real_optimization_integration_test"
path = "tests/real_optimization_integration_test.rs"
[[test]]
name = "run_command_tool"
path = "tests/run_command_tool.rs"
[[test]]
name = "steering_integration"
path = "tests/steering_integration.rs"
[[test]]
name = "theme_shared_state"
path = "tests/theme_shared_state.rs"
[[test]]
name = "unicode_handling_test"
path = "tests/unicode_handling_test.rs"
[[test]]
name = "web_fetch_default_prompt_test"
path = "tests/web_fetch_default_prompt_test.rs"
[[bench]]
name = "agent_harness"
path = "benches/agent_harness.rs"
harness = false
[[bench]]
name = "tool_pipeline"
path = "benches/tool_pipeline.rs"
harness = false
[dependencies.ansi-to-tui]
version = "8.0.1"
[dependencies.anstream]
version = "1.0"
[dependencies.anstyle]
version = "1.0"
[dependencies.anstyle-git]
version = "1.1"
[dependencies.anstyle-ls]
version = "1.0"
[dependencies.anyhow]
version = "1.0"
[dependencies.arc-swap]
version = "1.9"
[dependencies.async-process]
version = "2.2"
[dependencies.async-stream]
version = "0.3"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.axum]
version = "0.8"
features = [
"json",
"macros",
]
optional = true
[dependencies.base64]
version = "0.22.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4.6"
features = [
"derive",
"derive",
]
[dependencies.colorchoice-clap]
version = "1.0"
[dependencies.compact_str]
version = "0.9"
features = ["serde"]
[dependencies.crossterm]
version = "0.29"
features = ["event-stream"]
optional = true
[dependencies.dialoguer]
version = "0.12.0"
[dependencies.dirs]
version = "6.0"
[dependencies.dunce]
version = "1.0"
[dependencies.flate2]
version = "1.1"
[dependencies.futures]
version = "0.3"
[dependencies.glob]
version = "0.3"
[dependencies.hashbrown]
version = "0.17"
features = ["serde"]
[dependencies.humantime]
version = "2.1"
[dependencies.ignore]
version = "0.4"
[dependencies.indexmap]
version = "2.13"
features = ["serde"]
[dependencies.json5]
version = "1.3"
[dependencies.jsonschema]
version = "0.46"
[dependencies.linkme]
version = "0.3"
[dependencies.lru]
version = "0.18"
[dependencies.nix]
version = "0.31"
features = [
"user",
"signal",
"poll",
"term",
]
[dependencies.notify]
version = "8.2.0"
[dependencies.notify-rust]
version = "4.17"
optional = true
[dependencies.nucleo-matcher]
version = "0.3"
[dependencies.num_cpus]
version = "1.16"
[dependencies.once_cell]
version = "1.21"
[dependencies.parking_lot]
version = "0.12"
[dependencies.portable-pty]
version = "0.9.0"
[dependencies.quick_cache]
version = "0.7"
[dependencies.ratatui]
version = "=0.30.2"
features = [
"crossterm",
"layout-cache",
"crossterm",
"unstable-rendered-line-info",
"unstable-widget-ref",
]
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.ring]
version = "0.17"
[dependencies.roff]
version = "1.1"
[dependencies.rusqlite]
version = "0.35"
features = ["bundled"]
optional = true
[dependencies.rustc-hash]
version = "2.1"
[dependencies.schemars]
version = "1.2"
optional = true
[dependencies.serde]
version = "1.0"
features = [
"derive",
"rc",
]
[dependencies.serde-saphyr]
version = "0.0.28"
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.11"
[dependencies.shell-words]
version = "1.1"
[dependencies.smallvec]
version = "1.15.1"
[dependencies.strsim]
version = "0.11"
[dependencies.tar]
version = "0.4"
[dependencies.tempfile]
version = "3.27"
[dependencies.terminal_size]
version = "0.4.4"
[dependencies.textwrap]
version = "0.16"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokio]
version = "1.52"
features = [
"full",
"fs",
"io-util",
"macros",
"rt-multi-thread",
"sync",
"process",
]
[dependencies.tokio-util]
version = "0.7"
features = ["codec"]
[dependencies.toml]
version = "1.0.6"
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
[dependencies.tree-sitter]
version = "0.26"
[dependencies.tree-sitter-bash]
version = "0.25"
[dependencies.tree-sitter-c]
version = "0.24"
[dependencies.tree-sitter-cpp]
version = "0.23"
[dependencies.tree-sitter-go]
version = "0.25.0"
[dependencies.tree-sitter-java]
version = "0.23.5"
[dependencies.tree-sitter-javascript]
version = "0.25.0"
[dependencies.tree-sitter-python]
version = "0.25.0"
[dependencies.tree-sitter-rust]
version = "0.24.2"
[dependencies.tree-sitter-typescript]
version = "0.23.2"
[dependencies.unicode-width]
version = "0.2.0"
[dependencies.url]
version = "2.5"
[dependencies.uuid]
version = "1.23.2"
features = [
"v4",
"serde",
]
[dependencies.vt100]
version = "0.16"
[dependencies.vtcode-a2a]
version = "0.136.3"
[dependencies.vtcode-auth]
version = "0.136.3"
[dependencies.vtcode-bash-runner]
version = "0.136.3"
[dependencies.vtcode-commons]
version = "0.136.3"
[dependencies.vtcode-config]
version = "0.136.3"
[dependencies.vtcode-exec-events]
version = "0.136.3"
[dependencies.vtcode-indexer]
version = "0.136.3"
[dependencies.vtcode-llm]
version = "0.136.3"
features = ["copilot"]
[dependencies.vtcode-macros]
version = "0.136.3"
[dependencies.vtcode-mcp]
version = "0.136.3"
[dependencies.vtcode-memory]
version = "0.136.3"
[dependencies.vtcode-safety]
version = "0.136.3"
[dependencies.vtcode-skills]
version = "0.136.3"
[dependencies.vtcode-ui]
version = "0.136.3"
[dependencies.vtcode-utility-tool-specs]
version = "0.136.3"
[dependencies.webbrowser]
version = "1.2"
[dependencies.which]
version = "8.0.2"
[dependencies.zip]
version = "8.6"
features = ["deflate"]
default-features = false
[dev-dependencies.assert_fs]
version = "1.1"
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.serial_test]
version = "3.5"
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies.libc]
version = "0.2"
[target.'cfg(target_os = "macos")'.dependencies.xattr]
version = "1.6"
[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"))',
]