Файли
openidea/Cargo.toml
T
l0ng-ai c199a56c3f feat(agents): Dispatch and supervise coding agents over ACP
Adds an Agents feature: start coding agents (Claude Code, Codex, Gemini CLI,
Copilot, Cursor, OpenCode and more, plus custom ones from
<config>/agents/<id>.toml) on a task, each in its own git worktree or in the
checkout, and follow them from the IDE.

- ide-agent crate: one ACP agent process per task (newline-delimited
  JSON-RPC), the timeline folded from session/update, permission requests,
  session settings (model, mode, thinking effort), slash commands, context
  usage, a message queue with "send now", @-referenced files (embedded when
  the agent takes embedded context) and images. Tasks persist and their
  sessions are reloaded with session/load.
- Agents tool window grouped by what each task needs; a task opens as an
  editor tab with the conversation, a permission banner and its changes
  (diff against the task's base). New Task is an editor page.
- Composer: @ file references from the project index, / commands,
  up/down history, pasted or dropped images, Shift+Tab cycles the mode.
  "Send to Agent" adds the editor selection or Project view files.
- Editor: the Switcher lists every open editor, not only files; editor
  kinds can mark their tabs restorable, so agent tabs survive a reload.
- Select popups size to fit short option details.
2026-10-27 14:27:57 +08:00

108 рядки
3.0 KiB
TOML

[workspace]
resolver = "3"
members = ["crates/*", "src-tauri"]
[workspace.package]
version = "0.1.14"
edition = "2024"
rust-version = "1.96"
license = "Apache-2.0"
authors = ["OpenIDEA contributors"]
[workspace.dependencies]
# internal
ide-core = { path = "crates/ide-core" }
ide-vfs = { path = "crates/ide-vfs" }
ide-text = { path = "crates/ide-text" }
ide-language = { path = "crates/ide-language" }
ide-index = { path = "crates/ide-index" }
ide-syntax = { path = "crates/ide-syntax" }
ide-search = { path = "crates/ide-search" }
ide-jsonrpc = { path = "crates/ide-jsonrpc" }
ide-lsp = { path = "crates/ide-lsp" }
ide-dap = { path = "crates/ide-dap" }
ide-vcs = { path = "crates/ide-vcs" }
ide-terminal = { path = "crates/ide-terminal" }
ide-run = { path = "crates/ide-run" }
ide-workspace = { path = "crates/ide-workspace" }
ide-sdk = { path = "crates/ide-sdk" }
ide-build = { path = "crates/ide-build" }
ide-analysis = { path = "crates/ide-analysis" }
ide-coverage = { path = "crates/ide-coverage" }
ide-profiler = { path = "crates/ide-profiler" }
ide-http = { path = "crates/ide-http" }
ide-db = { path = "crates/ide-db" }
ide-web = { path = "crates/ide-web" }
ide-spell = { path = "crates/ide-spell" }
ide-agent = { path = "crates/ide-agent" }
# serialization & IPC typing
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.9"
toml_edit = "0.25"
specta = { version = "=2.0.0-rc.25", features = ["derive"] }
# async & concurrency
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "process", "io-util", "fs"] }
tokio-util = { version = "0.7", features = ["rt"] }
parking_lot = "0.12"
rayon = "1"
dashmap = "6"
futures = "0.3"
# errors & diagnostics
thiserror = "2"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
# text & fs
ropey = "1.6"
encoding_rs = "0.8"
chardetng = "0.1"
ignore = "0.4"
globset = "0.4"
notify = "8"
notify-debouncer-full = "0.6"
trash = "5"
blake3 = "1"
dunce = "1"
dirs = "6"
# search, index, language
grep-searcher = "0.1"
grep-regex = "0.1"
grep-matcher = "0.1"
nucleo-matcher = "0.3"
redb = "4"
tree-sitter = "0.25"
# protocols & integrations
lsp-types = "0.97"
gix = { version = "0.89", default-features = false }
portable-pty = "0.9"
reqwest = { version = "0.13", default-features = false, features = ["rustls-no-provider", "http2", "charset", "gzip", "deflate", "brotli"] }
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] }
rustls-platform-verifier = "0.7"
sqlx = { version = "0.9", default-features = false, features = ["runtime-tokio", "tls-rustls-ring-webpki", "sqlite", "postgres", "mysql"] }
uuid = { version = "1", features = ["v4"] }
# testing
insta = { version = "1", features = ["yaml"] }
proptest = "1"
tempfile = "3"
[profile.dev]
# Keep debug builds snappy while giving dependencies decent speed.
opt-level = 0
[profile.dev.package."*"]
opt-level = 2
[profile.release]
codegen-units = 1
lto = true
opt-level = 3
panic = "abort"
strip = true