[package]
edition = "2024"
rust-version = "1.85"
name = "dirge-agent"
version = "0.2.2"
authors = ["Yogthos <yogthos@gmail.com>"]
build = false
exclude = [
"spikes/",
"img/",
"docs/",
".beads/",
".dirge/",
".github/",
"blog.md",
"publishing.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Minimalistic coding agent written in Rust, optimized for memory footprint and performance"
homepage = "https://github.com/dirge-code/dirge"
readme = "README.md"
keywords = [
"ai",
"cli",
"agent",
"llm",
"tui",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "GPL-3.0-only"
repository = "https://github.com/dirge-code/dirge"
[package.metadata.cargo-machete]
ignored = ["rig-core"]
[features]
acp = ["dep:agent-client-protocol"]
default = [
"loop",
"git-worktree",
"mcp",
"lsp",
"acp",
"plugin",
"semantic-ts",
"semantic-python",
"semantic-bash",
"semantic-clojure",
"semantic-go",
"semantic-ruby",
"semantic-rust",
"semantic-java",
"semantic-c",
"semantic-cpp",
"semantic-elixir",
]
experimental-ui-tab-slash = []
experimental-ui-terminal-tab = []
git-worktree = []
loop = []
lsp = ["dep:lsp-types"]
mcp = [
"dep:rmcp",
"rmcp?/client",
"rmcp?/transport-child-process",
"rmcp?/transport-streamable-http-client-reqwest",
]
plugin = ["dep:janetrs"]
semantic = [
"dep:tree-sitter",
"dep:streaming-iterator",
]
semantic-bash = [
"semantic",
"dep:tree-sitter-bash",
]
semantic-c = [
"semantic",
"dep:tree-sitter-c",
]
semantic-clojure = [
"semantic",
"dep:tree-sitter-clojure",
]
semantic-cpp = [
"semantic",
"dep:tree-sitter-cpp",
]
semantic-elixir = [
"semantic",
"dep:tree-sitter-elixir",
]
semantic-go = [
"semantic",
"dep:tree-sitter-go",
]
semantic-java = [
"semantic",
"dep:tree-sitter-java",
]
semantic-python = [
"semantic",
"dep:tree-sitter-python",
]
semantic-ruby = [
"semantic",
"dep:tree-sitter-ruby",
]
semantic-rust = [
"semantic",
"dep:tree-sitter-rust",
]
semantic-ts = [
"semantic",
"dep:tree-sitter-typescript",
]
[[bin]]
name = "dirge"
path = "src/main.rs"
[dependencies.agent-client-protocol]
version = "0.12.0"
optional = true
[dependencies.ansi-to-tui]
version = "8"
[dependencies.anyhow]
version = "1"
[dependencies.async-stream]
version = "0.3"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
[dependencies.compact_str]
version = "0.9"
features = ["serde"]
[dependencies.crossterm]
version = "0.29"
[dependencies.dirs]
version = "6"
[dependencies.futures]
version = "0.3"
[dependencies.html2text]
version = "0.17"
[dependencies.http]
version = "1"
[dependencies.ignore]
version = "0.4"
[dependencies.include_dir]
version = "0.7"
[dependencies.indexmap]
version = "2"
[dependencies.janetrs]
version = "0.8"
optional = true
[dependencies.jsonschema]
version = "0.46"
[dependencies.lsp-types]
version = "0.97"
optional = true
[dependencies.nucleo-matcher]
version = "0.3"
[dependencies.pulldown-cmark]
version = "0.13"
[dependencies.ratatui]
version = "0.30"
features = ["crossterm"]
default-features = false
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.13"
[dependencies.rig]
version = "0.37"
features = ["rmcp"]
default-features = false
[dependencies.rig-core]
version = "0.37"
features = [
"reqwest",
"derive",
"rustls",
]
default-features = false
[dependencies.rmcp]
version = "1.7"
features = [
"client",
"transport-child-process",
"transport-streamable-http-client-reqwest",
]
optional = true
default-features = false
[dependencies.rusqlite]
version = "0.31"
features = ["bundled"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.smallvec]
version = "1"
[dependencies.streaming-iterator]
version = "0.1"
optional = true
[dependencies.sysinfo]
version = "0.32"
features = ["system"]
default-features = false
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"sync",
"time",
"process",
"fs",
"io-util",
]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.tree-sitter]
version = "0.25"
optional = true
[dependencies.tree-sitter-bash]
version = "0.25"
optional = true
[dependencies.tree-sitter-c]
version = "0.24"
optional = true
[dependencies.tree-sitter-clojure]
version = "0.1"
optional = true
[dependencies.tree-sitter-cpp]
version = "0.23"
optional = true
[dependencies.tree-sitter-elixir]
version = "0.3.5"
optional = true
[dependencies.tree-sitter-go]
version = "0.25"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-python]
version = "0.25"
optional = true
[dependencies.tree-sitter-ruby]
version = "0.23"
optional = true
[dependencies.tree-sitter-rust]
version = "0.24"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.unicode-width]
version = "0.2"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.yaml-rust2]
version = "0.11"
[dev-dependencies.tokio]
version = "1"
features = ["test-util"]
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[profile.dev]
debug = 0
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
debug = 0
strip = true