프로젝트 이름 `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>
37 lines
1.7 KiB
TOML
37 lines
1.7 KiB
TOML
[package]
|
|
name = "kebab-llm-local"
|
|
version = { workspace = true }
|
|
edition = { workspace = true }
|
|
rust-version = { workspace = true }
|
|
license = { workspace = true }
|
|
repository = { workspace = true }
|
|
description = "Ollama HTTP adapter implementing kb_core::LanguageModel via reqwest::blocking"
|
|
|
|
[dependencies]
|
|
kebab-core = { path = "../kebab-core" }
|
|
kebab-config = { path = "../kebab-config" }
|
|
kebab-llm = { path = "../kebab-llm" }
|
|
# `default-features = false` drops the `default-tls` (native-tls / openssl)
|
|
# feature so we don't pull in a system OpenSSL; we explicitly pin rustls.
|
|
# Note: `default-features = false` does NOT drop tokio — reqwest 0.12's
|
|
# `blocking` feature internally wraps a private current-thread tokio
|
|
# runtime, so `cargo tree -p kb-llm-local --edges normal | grep tokio`
|
|
# will list tokio. The auditable invariant for this crate is "no
|
|
# top-level tokio dep + no async surface (`async`/`await`/`tokio::*`)
|
|
# exposed to callers" rather than "tokio absent from the tree".
|
|
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
tracing = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
# wiremock requires a tokio runtime to host the mock HTTP server. tokio
|
|
# is also pulled transitively at runtime by reqwest's `blocking` feature
|
|
# (private current-thread runtime); see the dependency comment above.
|
|
# What we DO guarantee: this crate's source has zero `async`/`await`/
|
|
# `tokio::*` symbols, so the public/runtime API stays sync.
|
|
wiremock = { workspace = true }
|
|
tokio = { workspace = true, features = ["macros", "rt"] }
|