diff --git a/Cargo.lock b/Cargo.lock index 714eeb9099f96abe88c6d56a6315c755fab35e50..2ae5f44ac976fbc08eccf8a8896c18d3bb982c5a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -161,7 +161,6 @@ dependencies = [ "agent_servers", "agent_settings", "anyhow", - "brush-parser", "chrono", "client", "clock", @@ -205,6 +204,7 @@ dependencies = [ "serde", "serde_json", "settings", + "shell_command_parser", "smallvec", "smol", "sqlez", @@ -15318,6 +15318,13 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +[[package]] +name = "shell_command_parser" +version = "0.1.0" +dependencies = [ + "brush-parser", +] + [[package]] name = "shellexpand" version = "2.1.2" diff --git a/Cargo.toml b/Cargo.toml index 7cb41534a7e331c4976cd4fe51b551b3a740fb77..b0935c94e9bba08da262bdaabf4385ec9419578c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -162,6 +162,7 @@ members = [ "crates/settings_macros", "crates/settings_profile_selector", "crates/settings_ui", + "crates/shell_command_parser", "crates/snippet", "crates/snippet_provider", "crates/snippets_ui", @@ -402,6 +403,7 @@ settings_content = { path = "crates/settings_content" } settings_json = { path = "crates/settings_json" } settings_macros = { path = "crates/settings_macros" } settings_ui = { path = "crates/settings_ui" } +shell_command_parser = { path = "crates/shell_command_parser" } snippet = { path = "crates/snippet" } snippet_provider = { path = "crates/snippet_provider" } snippets_ui = { path = "crates/snippets_ui" } diff --git a/crates/agent/Cargo.toml b/crates/agent/Cargo.toml index 0a9a3541890795b1a1783211559242d60b8b4e8b..2ea713a04d66b6e351cdb163318c39498bb412c3 100644 --- a/crates/agent/Cargo.toml +++ b/crates/agent/Cargo.toml @@ -19,7 +19,6 @@ workspace = true [dependencies] acp_thread.workspace = true -brush-parser.workspace = true action_log.workspace = true agent-client-protocol.workspace = true agent_servers.workspace = true @@ -58,6 +57,7 @@ schemars.workspace = true serde.workspace = true serde_json.workspace = true settings.workspace = true +shell_command_parser.workspace = true smallvec.workspace = true smol.workspace = true sqlez.workspace = true diff --git a/crates/agent/src/agent.rs b/crates/agent/src/agent.rs index 19eb651e30170aa395ac3eeba51c54c6f37f2055..0a36db8c206414485b94d825b96ec42f04d1c983 100644 --- a/crates/agent/src/agent.rs +++ b/crates/agent/src/agent.rs @@ -4,7 +4,6 @@ mod legacy_thread; mod native_agent_server; pub mod outline; mod pattern_extraction; -mod shell_parser; mod templates; #[cfg(test)] mod tests; diff --git a/crates/agent/src/pattern_extraction.rs b/crates/agent/src/pattern_extraction.rs index 56fb8cfaa1d840271b0b46899eadaabc36662fbc..0e82bd3bafa909c710fb917ac481eb7fd7abd3de 100644 --- a/crates/agent/src/pattern_extraction.rs +++ b/crates/agent/src/pattern_extraction.rs @@ -1,4 +1,4 @@ -use crate::shell_parser::extract_commands; +use shell_command_parser::extract_commands; use std::path::{Path, PathBuf}; use url::Url; diff --git a/crates/agent/src/tool_permissions.rs b/crates/agent/src/tool_permissions.rs index ba3b549ae7a0de9b653835451015f99ac5f2fb13..220122db75d61caa912a784f9b12668fe058fbae 100644 --- a/crates/agent/src/tool_permissions.rs +++ b/crates/agent/src/tool_permissions.rs @@ -1,8 +1,8 @@ use crate::AgentTool; -use crate::shell_parser::extract_commands; use crate::tools::TerminalTool; use agent_settings::{AgentSettings, CompiledRegex, ToolPermissions, ToolRules}; use settings::ToolPermissionMode; +use shell_command_parser::extract_commands; use std::path::{Component, Path}; use std::sync::LazyLock; use util::shell::ShellKind; diff --git a/crates/shell_command_parser/Cargo.toml b/crates/shell_command_parser/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..0e00eac7efdd9e9dca4890d1ec27dc4ddfe93d69 --- /dev/null +++ b/crates/shell_command_parser/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "shell_command_parser" +version = "0.1.0" +edition.workspace = true +publish.workspace = true +license = "GPL-3.0-or-later" + +[lints] +workspace = true + +[lib] +path = "src/shell_command_parser.rs" + +[dependencies] +brush-parser.workspace = true + +[dev-dependencies] diff --git a/crates/shell_command_parser/LICENSE-GPL b/crates/shell_command_parser/LICENSE-GPL new file mode 120000 index 0000000000000000000000000000000000000000..89e542f750cd3860a0598eff0dc34b56d7336dc4 --- /dev/null +++ b/crates/shell_command_parser/LICENSE-GPL @@ -0,0 +1 @@ +../../LICENSE-GPL \ No newline at end of file diff --git a/crates/agent/src/shell_parser.rs b/crates/shell_command_parser/src/shell_command_parser.rs similarity index 100% rename from crates/agent/src/shell_parser.rs rename to crates/shell_command_parser/src/shell_command_parser.rs