[workspace] resolver = "3" members = [ "crates/kebab-core", "crates/kebab-parse-types", "crates/kebab-config", "crates/kebab-source-fs", "crates/kebab-parse-md", "crates/kebab-normalize", "crates/kebab-chunk", "crates/kebab-store-sqlite", "crates/kebab-store-vector", "crates/kebab-search", "crates/kebab-embed", "crates/kebab-embed-local", "crates/kebab-llm", "crates/kebab-llm-local", "crates/kebab-rag", "crates/kebab-app", "crates/kebab-cli", "crates/kebab-eval", "crates/kebab-parse-image", "crates/kebab-parse-pdf", "crates/kebab-tui", "crates/kebab-mcp", "crates/kebab-parse-code", ] [workspace.package] edition = "2024" rust-version = "1.85" license = "MIT OR Apache-2.0" repository = "https://github.com/altair823/kebab" version = "0.17.0" [workspace.dependencies] anyhow = "1" thiserror = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" # Golden-fixture loader (P5-1, kebab-eval) parses YAML; pinned in the # workspace so future eval-adjacent crates share the same major. serde_yaml = "0.9" time = { version = "0.3", features = ["serde", "macros", "formatting", "parsing"] } uuid = { version = "1", features = ["v7", "serde"] } blake3 = "1" tracing = "0.1" # `bundled` ships SQLite source so the workspace doesn't depend on a # system libsqlite3 (matches the kebab-store-sqlite feature set). rusqlite = { version = "0.32", features = ["bundled"] } globset = "0.4" tempfile = "3" proptest = "1" # p9-fb-19: LRU cache for `App::search` results. Bounded capacity # from `config.search.cache_capacity` (default 256, ~1.3 MB cap). lru = "0.12" # fastembed-rs ships ONNX runtime via the `ort-download-binaries` feature # in its default set (which also pulls `hf-hub` for first-run model # downloads). Pinned to the 4.x line per task p3-2 (current 5.x release # remains untested for this workspace). fastembed = "4.9" # LanceDB embedded vector store (P3-3). 0.23.x pulls arrow / arrow-array / # arrow-schema 56.x transitively (via lance 1.0); the kebab-store-vector # crate matches that major to share the same Arrow types without a # re-export adapter. lancedb = { version = "0.23", default-features = false } arrow = "56" arrow-array = "56" arrow-schema = "56" tokio = { version = "1", features = ["rt", "macros"] } futures = "0.3" # Strict citation-marker extraction in kebab-rag (P4-3) needs a single regex # pass; pulled into the workspace deps so future crates can share the # same major. regex = "1" # MCP (Model Context Protocol) SDK. server + macros + transport-io provide # stdio JSON-RPC transport for `kebab-mcp` (p9-fb-30). schemars feature # exposes the derive macro used by tool input schemas. rmcp = { version = "1.6", default-features = false, features = ["server", "macros", "transport-io", "schemars"] } # Dev-only HTTP mock server for kebab-llm-local Ollama adapter tests. Requires # a tokio runtime to host its mock server (the runtime adapter crate stays # sync via reqwest::blocking โ€” wiremock is dev-only there). wiremock = "0.6" base64 = "0.22" # Pure-Rust git library for repo metadata detection (kebab-parse-code). # No `git` binary required. Default features include thread-safety + most # object-reading capabilities needed for HEAD name + commit SHA queries. gix = { version = "0.70", default-features = false, features = ["revision"] } # Rust source parsing for code ingest (kebab-parse-code, p10-1A-2). The # chunker stays tree-sitter-free โ€” AST work is parser-side per design ยง6.3. tree-sitter = "0.26" tree-sitter-rust = "0.24" # Python / TS / JS grammars for code ingest (kebab-parse-code, p10-1B). tree-sitter-python = "0.25.0" tree-sitter-typescript = "0.23.2" tree-sitter-javascript = "0.25.0" # Go grammar for code ingest (kebab-parse-code, p10-1C-Go). tree-sitter-go = "0.25.0" # JVM family grammars for code ingest (kebab-parse-code, p10-1C-JK). tree-sitter-java = "0.23.5" tree-sitter-kotlin-ng = "1.1.0" # bare tree-sitter-kotlin requires ts <0.23; -ng uses tree-sitter-language 0.1 (ts 0.26 compat) # C/C++ family grammars for code ingest (kebab-parse-code, p10-1D). tree-sitter-c = "0.24.2" tree-sitter-cpp = "0.23.4" # Disk-footprint trim for dev / test builds. Codegen, opt-level, and # behavior are unchanged โ€” only DWARF debug info is reduced (line # numbers kept, column numbers dropped) and split into separate # `.dwo` files. backtrace stays useful (function + line). release # profile is untouched, so CI / `--release` runs are byte-identical # to upstream defaults. [profile.dev] debug = "line-tables-only" split-debuginfo = "unpacked" [profile.test] debug = "line-tables-only" split-debuginfo = "unpacked"