finetype-cli 0.6.39

CLI for FineType semantic type classification
[package]
name = "finetype-cli"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
description = "CLI for FineType semantic type classification"
default-run = "finetype"

[[bin]]
name = "finetype"
path = "src/main.rs"

[[bin]]
name = "train-disambiguator"
path = "src/bin/train_disambiguator.rs"

[features]
default = ["cpu", "embed-models"]
# `cpu` is the shipped path: inference only, no `finetype-train`, so the
# distributed binary never compiles bundled DuckDB. This dodges the bundled
# DuckDB 1.5.3 amalgamation failing to build under the Windows release runner's
# MSVC, and keeps the binary lean — training is a dev/research workflow.
cpu = ["finetype-model/cpu"]
# GPU builds are the training builds in this repo: `cuda`/`metal` pull the
# trainer (and its DuckDB) on top of the GPU inference backend, so existing
# `--no-default-features --features metal` training scripts keep working. These
# only run on Linux/macOS where bundled DuckDB compiles fine.
cuda = ["finetype-model/cuda", "train", "finetype-train/cuda"]
metal = ["finetype-model/metal", "train", "finetype-train/metal"]
embed-models = []
# Dev/eval-only: expose finetype-model's RHH runtime toggle so a single binary can
# A/B a Sharpen rule on/off via RHH_DISABLE_HINTS. Never in the default (shipped) build.
rhh-instrumentation = ["finetype-model/rhh-instrumentation"]
# Opt-in trainer for CPU-host training (`cargo run --features train -- \
# train-multi-branch ...`). Gates the `train-multi-branch` subcommand; `cuda`
# and `metal` enable it transitively.
train = ["dep:finetype-train", "finetype-train/tui"]

[dependencies]
finetype-core = { workspace = true }
finetype-model = { workspace = true }
finetype-train = { workspace = true, optional = true }
finetype-mcp = { version = "0.6.39", path = "../finetype-mcp" }
clap = { workspace = true }
csv = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true }
anyhow = { workspace = true }
candle-core = { workspace = true }
candle-nn = { workspace = true }
indexmap = { workspace = true }
tracing-subscriber = { workspace = true }
rand = { workspace = true }
uuid = { workspace = true }
tempfile = { workspace = true }

[build-dependencies]
ureq = { version = "2.9", features = ["tls"] }

[dev-dependencies]
tempfile = { workspace = true }
serde_json = { workspace = true }

[package.metadata.cargo-machete]
ignored = ["ureq"]