[package]
edition = "2024"
rust-version = "1.91"
name = "brainwires-tools"
version = "0.10.0"
authors = ["Brainwires"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Built-in tool implementations for the Brainwires Agent Framework"
homepage = "https://github.com/Brainwires/brainwires-framework"
documentation = "https://docs.rs/brainwires-tools"
readme = "README.md"
keywords = [
"ai-tools",
"llm",
"file-operations",
"code-search",
"validation",
]
categories = ["development-tools"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Brainwires/brainwires-framework"
resolver = "2"
[features]
browser = [
"dep:brainwires-mcp",
"native",
]
calendar = [
"dep:icalendar",
"dep:reqwest",
]
default = ["native"]
email = [
"dep:lettre",
"dep:async-imap",
"dep:imap-proto",
"dep:tokio-native-tls",
"dep:native-tls",
"dep:futures",
"dep:mailparse",
"dep:base64",
]
full = [
"orchestrator",
"rag",
"interpreters",
"openapi",
"email",
"calendar",
"browser",
"oauth",
"system",
]
interpreters = [
"interpreters-rhai",
"interpreters-lua",
]
interpreters-all = [
"interpreters-rhai",
"interpreters-lua",
"interpreters-js",
]
interpreters-js = ["dep:boa_engine"]
interpreters-lua = ["dep:mlua"]
interpreters-python = []
interpreters-rhai = ["dep:rhai"]
interpreters-wasm = [
"dep:wasm-bindgen",
"dep:js-sys",
"dep:web-sys",
"dep:getrandom",
"dep:serde-wasm-bindgen",
]
native = [
"dep:git2",
"dep:walkdir",
"dep:ignore",
"dep:reqwest",
"dep:glob",
"dep:diffy",
"dep:zeroize",
"tokio/process",
"tokio/fs",
"brainwires-core/native",
]
oauth = [
"native",
"dep:getrandom",
]
openapi = [
"dep:openapiv3",
"dep:serde_yml",
"dep:reqwest",
]
orchestrator = [
"dep:rhai",
"rhai/sync",
]
orchestrator-wasm = [
"dep:rhai",
"dep:web-time",
]
rag = [
"dep:brainwires-knowledge",
"brainwires-knowledge/rag",
"brainwires-knowledge/lancedb-backend",
"brainwires-knowledge/tree-sitter-languages",
]
reactor = ["system"]
services = ["system"]
system = ["dep:notify"]
system-full = ["system"]
wasm = ["brainwires-core/wasm"]
[lib]
name = "brainwires_tools"
path = "src/lib.rs"
[[example]]
name = "expense_aggregation"
path = "examples/expense_aggregation.rs"
required-features = ["orchestrator"]
[[example]]
name = "file_operations"
path = "examples/file_operations.rs"
required-features = ["orchestrator"]
[[example]]
name = "multi_api"
path = "examples/multi_api.rs"
required-features = ["orchestrator"]
[[example]]
name = "tool_prehook"
path = "examples/tool_prehook.rs"
[[example]]
name = "tool_registry"
path = "examples/tool_registry.rs"
[[test]]
name = "path_resolution"
path = "tests/path_resolution.rs"
[[bench]]
name = "token_comparison"
path = "benches/token_comparison.rs"
harness = false
required-features = ["orchestrator"]
[dependencies.anyhow]
version = "1"
[dependencies.async-imap]
version = "0.11"
features = ["runtime-tokio"]
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.boa_engine]
version = "0.21"
optional = true
[dependencies.brainwires-core]
version = "0.10.0"
[dependencies.brainwires-knowledge]
version = "0.10.0"
optional = true
default-features = false
[dependencies.brainwires-mcp]
version = "0.10.0"
optional = true
[dependencies.diffy]
version = "0.4"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.getrandom]
version = "0.2"
optional = true
[dependencies.git2]
version = "0.20"
optional = true
[dependencies.glob]
version = "0.3"
optional = true
[dependencies.hex]
version = "0.4"
[dependencies.icalendar]
version = "0.16"
optional = true
[dependencies.ignore]
version = "0.4"
optional = true
[dependencies.imap-proto]
version = "0.16"
optional = true
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.lettre]
version = "0.11"
features = [
"tokio1-native-tls",
"smtp-transport",
"builder",
]
optional = true
default-features = false
[dependencies.mailparse]
version = "0.15"
optional = true
[dependencies.mlua]
version = "0.10.3"
features = [
"lua54",
"vendored",
]
optional = true
[dependencies.native-tls]
version = "0.2"
optional = true
[dependencies.notify]
version = "7"
optional = true
[dependencies.openapiv3]
version = "2"
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
]
optional = true
[dependencies.rhai]
version = "1.23"
features = [
"serde",
"std",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde-wasm-bindgen]
version = "0.6"
optional = true
[dependencies.serde_json]
version = "1"
[dependencies.serde_yml]
version = "0.0.12"
optional = true
[dependencies.sha2]
version = "0.10"
[dependencies.tempfile]
version = "3"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1.43"
features = ["time"]
[dependencies.tokio-native-tls]
version = "0.3"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.walkdir]
version = "2"
optional = true
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dependencies.web-sys]
version = "0.3"
features = ["console"]
optional = true
[dependencies.web-time]
version = "1.1"
optional = true
[dependencies.zeroize]
version = "1"
features = ["derive"]
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1.43"
features = [
"full",
"full",
"test-util",
]