[workspace]
members = [
    "crates/sapphire-sync",
    "crates/sapphire-retrieve",
    "crates/sapphire-workspace-cli",
]
resolver = "3"

[workspace.package]
version = "0.7.0"
description = "Workspace management library for indexing, search, and sync of file-based documents"
license = "MIT OR Apache-2.0"
repository = "https://github.com/fluo10/sapphire-workspace"
edition = "2024"

[workspace.dependencies]
anyhow = "1"
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4", features = ["derive", "env"] }
indexmap = { version = "2", features = ["serde"] }
rmcp = { version = "1.2", features = ["server", "transport-io"] }
rusqlite = { version = "0.39", features = ["bundled"] }
schemars = "1.0"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
tokio = { version = "1" }
toml = "1.1"
tracing-subscriber = "0.3"
uuid = { version = "1", features = ["v4", "serde"] }

[profile.dev.package."*"]
opt-level = 1

[package]
name = "sapphire-workspace"
edition.workspace = true
version.workspace = true
description.workspace = true
license.workspace = true
repository.workspace = true
keywords = ["workspace", "markdown", "search", "sync"]
categories = ["filesystem", "database"]

[features]
default = ["sqlite-store", "lancedb-store", "fastembed-embed", "git-sync"]
sqlite-store    = ["sapphire-retrieve/sqlite-store"]
lancedb-store   = ["sapphire-retrieve/lancedb-store"]
fastembed-embed = ["sapphire-retrieve/fastembed-embed"]
git-sync        = ["sapphire-sync/git"]

[dependencies]
sapphire-retrieve = { version = "0.7.0", path = "crates/sapphire-retrieve", default-features = false }
sapphire-sync     = { version = "0.7.0", path = "crates/sapphire-sync", default-features = false }
thiserror.workspace = true
serde.workspace = true
toml.workspace = true
tokio = { workspace = true, features = ["full"] }
indexmap.workspace = true
walkdir = "2"
uuid.workspace = true
md-5 = "0.10"
dirs = "5"
