lingshu-tools 0.10.0

Tool registry, ToolHandler trait, and 50+ tool implementations
[package]
name = "lingshu-tools"
description = "Tool registry, ToolHandler trait, and 50+ tool implementations"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
build = "build.rs"

[features]
default = ["searxng", "brave", "ddgs", "firecrawl", "tavily", "exa", "parallel", "xai"]
searxng = []
brave = []
ddgs = []
firecrawl = []
tavily = []
exa = []
parallel = []
xai = []
google_cse = []

[dependencies]
lingshu-types = { workspace = true }
lingshu-security = { workspace = true }
lingshu-state = { workspace = true }
lingshu-cron = { workspace = true }
edgequake-llm = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yml = { workspace = true }
tokio = { workspace = true }
tokio-util = { workspace = true }
async-trait = { workspace = true }
inventory = { workspace = true }
strsim = { workspace = true }
shell-words = { workspace = true }
shellexpand = { workspace = true }
dashmap = { workspace = true }
regex = { workspace = true }
reqwest = { workspace = true }
wreq = { workspace = true }
tokio-tungstenite = { workspace = true }
futures = { workspace = true }
strip-ansi-escapes = { workspace = true }
tracing = { workspace = true }
edgeparse-core = "0.2.3"
uuid = { workspace = true }
image = { workspace = true }
url = { workspace = true }
unicode-normalization = { workspace = true }
sha2 = { workspace = true }
base64 = { workspace = true }
rand = { workspace = true }
cron = { workspace = true }
chrono = { workspace = true }
dirs = { workspace = true }
flate2 = { workspace = true }
tar = { workspace = true }
zip = { version = "2", default-features = false, features = ["deflate"] }
which = { workspace = true }
tempfile = { workspace = true }
libc = { workspace = true }
bollard = { workspace = true }
portable-pty = { workspace = true }

[target.'cfg(unix)'.dependencies]
openssh = { workspace = true }

[dev-dependencies]
tokio = { workspace = true }
mockall = { workspace = true }
tempfile = { workspace = true }
uuid = { workspace = true }
serde_json = { workspace = true }
lingshu-types = { workspace = true }
serial_test = "3"