프로젝트 이름 `kb` → `kebab` rename 의 첫 단계. - workspace `Cargo.toml`: members `crates/kb-*` → `crates/kebab-*`, repository URL `altair823/kb` → `altair823/kebab`. - 18 crate 폴더 rename via `git mv` (history 보존). - 각 crate `Cargo.toml`: `name = "kb-*"` → `"kebab-*"`, path deps `../kb-*` → `../kebab-*`. - 모든 `.rs`: `kb_<id>` snake-case 모듈 path 18 개 (`kb_core`, `kb_config`, `kb_app`, `kb_cli`, `kb_eval`, `kb_search`, `kb_chunk`, `kb_normalize`, `kb_source_fs`, `kb_parse_md`, `kb_parse_types`, `kb_store_sqlite`, `kb_store_vector`, `kb_embed`, `kb_embed_local`, `kb_llm`, `kb_llm_local`, `kb_rag`) → `kebab_<id>` 일괄 sed (단어 경계 \\b 사용해 영어 문장 안의 "kb" 약어 미오염). CLI binary 이름 (`[[bin]] name = "kb"`), 환경변수 `KB_*`, XDG paths, tracing target, 그리고 docs sweep 은 다음 commit 에서. ## 검증 - `cargo check --workspace` clean — 모든 crate 빌드 통과 후 commit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56 lines
2.5 KiB
TOML
56 lines
2.5 KiB
TOML
[package]
|
|
name = "kebab-store-vector"
|
|
version = { workspace = true }
|
|
edition = { workspace = true }
|
|
rust-version = { workspace = true }
|
|
license = { workspace = true }
|
|
repository = { workspace = true }
|
|
description = "LanceDB-backed VectorStore for kb (§5.6 embedding_records, §6.3 lancedb tables, §7.2 VectorStore)"
|
|
|
|
[dependencies]
|
|
kebab-core = { path = "../kebab-core" }
|
|
kebab-config = { path = "../kebab-config" }
|
|
# kb-store-sqlite is allowed for the embedding_records writers only
|
|
# (P3-3 spec: "Allowed dep `kb-store-sqlite` for writing/reading rows in
|
|
# embedding_records"). The Two-phase upsert flow uses
|
|
# `put_embedding_records_pending` + `mark_embedding_records_committed`.
|
|
kebab-store-sqlite = { path = "../kebab-store-sqlite" }
|
|
|
|
# LanceDB embedded vector store. `default-features=false` opts out of
|
|
# the cloud object-store integrations (aws / gcs / azure / dynamodb /
|
|
# oss); kb is always-local for v1, so dragging in those SDKs would just
|
|
# inflate the build.
|
|
lancedb = { workspace = true }
|
|
arrow = { workspace = true }
|
|
arrow-array = { workspace = true }
|
|
arrow-schema = { workspace = true }
|
|
# Embedded async runtime. The VectorStore trait is sync (§7.2) but
|
|
# LanceDB's Rust API is async-only; we own a current-thread
|
|
# tokio::Runtime and `block_on` per trait method. current-thread saves
|
|
# the two worker threads a multi-thread runtime would spawn — kb-app
|
|
# already serializes vector ops behind its own job scheduler so the
|
|
# extra parallelism wouldn't be exploited.
|
|
tokio = { workspace = true }
|
|
# `try_collect` for streaming Lance query results into a Vec<RecordBatch>.
|
|
futures = { workspace = true }
|
|
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
tracing = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
blake3 = { workspace = true }
|
|
time = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tempfile = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
# Integration tests seed `documents` / `chunks` fixtures by raw SQL
|
|
# (no kb-parse-md / kb-normalize / kb-chunk dep) so they can construct
|
|
# adversarial filter / dim-mismatch states. rusqlite is a `[dev-]`
|
|
# dep only — the runtime crate uses kb-store-sqlite's typed surface
|
|
# (`filter_chunks`, `put_embedding_records_pending`, …) and does not
|
|
# touch rusqlite directly (P3-3 spec: kb-store-vector must not list
|
|
# rusqlite/globset as direct deps).
|
|
rusqlite = { workspace = true }
|