[package]
name = "kebab-embed-ollama"
version       = { workspace = true }
edition       = { workspace = true }
rust-version  = { workspace = true }
license       = { workspace = true }
repository    = { workspace = true }
description   = "Ollama HTTP adapter implementing kebab_core::Embedder (POST /api/embed, L2-normalized, batched + fail-soft)"

[dependencies]
kebab-core = { path = "../kebab-core" }
kebab-config = { path = "../kebab-config" }
# `default-features = false` drops native-tls (system OpenSSL); we pin rustls.
# reqwest 0.12's `blocking` feature wraps a private current-thread tokio
# runtime — this crate exposes NO async surface (no `async`/`await`/`tokio::*`
# symbols), matching the kebab-llm-local invariant.
reqwest    = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
serde      = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tracing    = { workspace = true }
anyhow     = { workspace = true }

[dev-dependencies]
# wiremock hosts the mock /api/embed server (needs a tokio runtime); tokio is
# also pulled transitively at runtime by reqwest's `blocking` feature.
wiremock   = { workspace = true }
tokio      = { workspace = true, features = ["macros", "rt"] }

[lints]
workspace = true
