[package]
edition = "2024"
name = "trusty-common"
version = "0.18.2"
authors = ["Bob Matsuoka <bob@matsuoka.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Shared utilities and provider-agnostic streaming chat (ChatProvider, OllamaProvider, OpenRouter, tool-use) for trusty-* projects"
homepage = "https://github.com/bobmatnyc/trusty-tools"
readme = "README.md"
keywords = [
"mcp",
"utilities",
"cli",
"openrouter",
]
categories = ["command-line-utilities"]
license = "MIT"
repository = "https://github.com/bobmatnyc/trusty-tools"
resolver = "2"
[features]
axum-server = [
"dep:axum",
"dep:tower-http",
]
bedrock = [
"dep:aws-config",
"dep:aws-sdk-bedrockruntime",
"dep:aws-types",
]
bm25 = []
bm25-client = []
bug-capture = ["dep:sha2"]
catchup = ["dep:rusqlite"]
cli-help = [
"dep:serde_yaml",
"dep:strsim",
"dep:indexmap",
"dep:thiserror",
]
console-metrics = ["stdio-mcp-client"]
crate-config = [
"dep:serde_yaml",
"dep:thiserror",
]
default = []
embedder = [
"dep:fastembed",
"dep:lru",
"dep:parking_lot",
"dep:ort",
]
embedder-bundled-ort = [
"embedder",
"fastembed/ort-download-binaries-native-tls",
]
embedder-candle = [
"embedder",
"dep:candle-core",
"dep:candle-nn",
"dep:candle-transformers",
"dep:hf-hub",
"dep:tokenizers",
"dep:thiserror",
]
embedder-client = [
"dep:thiserror",
"embedder",
]
embedder-coreml = ["embedder"]
embedder-cuda = [
"embedder",
"fastembed/cuda",
"fastembed/ort-load-dynamic",
"ort/cuda",
"ort/load-dynamic",
]
embedder-load-dynamic = [
"embedder",
"fastembed/ort-load-dynamic",
"ort/load-dynamic",
]
embedder-test-support = ["embedder"]
intent-source = [
"tickets",
"dep:regex",
"dep:thiserror",
]
mcp = []
memory-core = [
"dep:hnsw_rs",
"dep:git2",
"dep:dashmap",
"dep:futures",
"dep:regex",
"dep:lru",
"dep:parking_lot",
"dep:thiserror",
"dep:uuid",
"dep:redb",
"dep:postcard",
"dep:petgraph",
"dep:sha2",
"dep:hex",
"embedder",
"embedder-bundled-ort",
]
memory-core-kuzu = [
"memory-core",
"dep:kuzu",
]
migrations = []
monitor-tui = [
"dep:ratatui",
"dep:crossterm",
]
rpc = ["dep:uuid"]
stdio-mcp-client = []
symgraph = [
"dep:thiserror",
"dep:sha2",
]
symgraph-parser = [
"symgraph",
"dep:uuid",
"dep:indexmap",
"dep:similar",
"dep:walkdir",
"dep:petgraph",
"dep:tree-sitter",
"dep:tree-sitter-rust",
"dep:tree-sitter-python",
"dep:tree-sitter-javascript",
"dep:tree-sitter-go",
"dep:tree-sitter-java",
"dep:tree-sitter-typescript",
"dep:tree-sitter-c",
"dep:tree-sitter-cpp",
"dep:syn",
"dep:prettyplease",
"dep:proc-macro2",
"dep:quote",
"dep:genco",
]
symgraph-server = [
"symgraph-parser",
"axum-server",
]
tickets = [
"mcp",
"dep:uuid",
"dep:base64",
"dep:thiserror",
"dep:toml",
]
update-check = []
[lib]
name = "trusty_common"
crate-type = ["rlib"]
path = "src/lib.rs"
[[bin]]
name = "candle_metal_bench"
path = "src/bin/candle_metal_bench.rs"
required-features = ["embedder-candle"]
[[bin]]
name = "tickets-mcp"
path = "src/bin/tickets_mcp.rs"
required-features = ["tickets"]
[[test]]
name = "community_tests"
path = "tests/community_tests.rs"
[[test]]
name = "help_yaml_workspace"
path = "tests/help_yaml_workspace.rs"
[[test]]
name = "kg_graph_tests"
path = "tests/kg_graph_tests.rs"
[[test]]
name = "kg_store_snapshot_tests"
path = "tests/kg_store_snapshot_tests.rs"
[[test]]
name = "memory_palace"
path = "tests/memory_palace.rs"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "1.8"
features = ["behavior-version-latest"]
optional = true
[dependencies.aws-sdk-bedrockruntime]
version = "1.131"
optional = true
[dependencies.aws-types]
version = "1"
optional = true
[dependencies.axum]
version = "0.8"
features = ["macros"]
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.candle-core]
version = "0.8"
optional = true
default-features = false
[dependencies.candle-nn]
version = "0.8"
optional = true
default-features = false
[dependencies.candle-transformers]
version = "0.8"
optional = true
default-features = false
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.colored]
version = "2"
[dependencies.crossterm]
version = "0.28"
optional = true
[dependencies.dashmap]
version = "6"
optional = true
[dependencies.dirs]
version = "5"
[dependencies.fastembed]
version = "5"
features = ["hf-hub-native-tls"]
optional = true
default-features = false
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.futures-util]
version = "0.3"
[dependencies.genco]
version = "0.19"
optional = true
[dependencies.git2]
version = "0.20"
features = [
"vendored-libgit2",
"vendored-openssl",
]
optional = true
[dependencies.hex]
version = "0.4"
optional = true
[dependencies.hf-hub]
version = "0.3"
features = [
"online",
"tokio",
]
optional = true
default-features = false
[dependencies.hnsw_rs]
version = "0.3"
optional = true
[dependencies.indexmap]
version = "2"
features = ["serde"]
optional = true
[dependencies.kuzu]
version = "0.9"
optional = true
[dependencies.lru]
version = "0.12"
optional = true
[dependencies.ort]
version = "=2.0.0-rc.12"
features = [
"std",
"api-24",
]
optional = true
default-features = false
[dependencies.parking_lot]
version = "0.12"
optional = true
[dependencies.petgraph]
version = "0.8"
features = ["serde-1"]
optional = true
[dependencies.postcard]
version = "1"
features = ["alloc"]
optional = true
[dependencies.prettyplease]
version = "0.2"
optional = true
[dependencies.proc-macro2]
version = "1.0"
optional = true
[dependencies.quote]
version = "1.0"
optional = true
[dependencies.ratatui]
version = "0.29"
optional = true
[dependencies.redb]
version = "4"
optional = true
[dependencies.regex]
version = "1"
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"rustls-tls",
]
default-features = false
[dependencies.rusqlite]
version = "0.39"
features = ["bundled"]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml]
version = "0.9"
optional = true
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.similar]
version = "2"
features = ["text"]
optional = true
[dependencies.strsim]
version = "0.11"
optional = true
[dependencies.syn]
version = "2.0"
features = ["full"]
optional = true
[dependencies.sysinfo]
version = "0.33"
features = ["system"]
default-features = false
[dependencies.thiserror]
version = "1"
optional = true
[dependencies.tokenizers]
version = "0.21"
features = ["onig"]
optional = true
default-features = false
[dependencies.tokio]
version = "1"
features = [
"full",
"net",
"io-util",
"io-std",
"macros",
"rt",
"sync",
"process",
"time",
]
[dependencies.toml]
version = "0.8"
optional = true
[dependencies.tower-http]
version = "0.6"
features = [
"cors",
"trace",
"compression-gzip",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"registry",
]
[dependencies.tree-sitter]
version = "0.26"
optional = true
[dependencies.tree-sitter-c]
version = "0.23"
optional = true
[dependencies.tree-sitter-cpp]
version = "0.23"
optional = true
[dependencies.tree-sitter-go]
version = "0.25"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true
[dependencies.tree-sitter-python]
version = "0.25"
optional = true
[dependencies.tree-sitter-rust]
version = "0.24"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
optional = true
[dependencies.walkdir]
version = "2"
optional = true
[dev-dependencies.chrono]
version = "0.4"
features = ["serde"]
[dev-dependencies.postcard]
version = "1"
features = ["alloc"]
[dev-dependencies.redb]
version = "4"
[dev-dependencies.serial_test]
version = "3"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"macros",
"rt-multi-thread",
]
[dev-dependencies.toml]
version = "0.8"
[dev-dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[target.'cfg(target_os = "macos")'.dependencies.libc]
version = "0.2"
[target.'cfg(target_os = "macos")'.dependencies.ort]
version = "=2.0.0-rc.12"
features = [
"coreml",
"std",
"api-24",
]
optional = true
default-features = false