crtx-llm 0.1.1

Claude, Ollama, and replay adapters behind a shared trait.
Documentation
//! LLM adapters used by Cortex.
//!
//! This crate **must not write memory rows** — it only proposes candidates
//! that the reflection / memory layers ingest (BUILD_SPEC §8). The shared
//! shape lives in [`adapter`]; the deterministic CI / fixture adapter lives
//! in [`replay`]. Hosted backends (Claude, Ollama) plug into the same
//! [`adapter::LlmAdapter`] trait.

#![deny(unsafe_code, missing_debug_implementations)]
#![warn(missing_docs)]

pub mod adapter;
pub mod claude_http;
pub mod claude_summary;
pub mod ollama;
pub mod ollama_http;
pub mod ollama_summary;
pub mod openai_compat;
pub mod replay;
pub mod sensitivity;
pub mod summary;

pub use adapter::{
    blake3_hex, LlmAdapter, LlmError, LlmMessage, LlmRequest, LlmResponse, LlmRole, TokenUsage,
};
pub use claude_http::{
    ClaudeHttpAdapter, CLAUDE_ADAPTER_API_KEY_MISSING_INVARIANT,
    CLAUDE_ADAPTER_ENDPOINT_REJECTED_INVARIANT, CLAUDE_ADAPTER_MODEL_NOT_ALLOWED_INVARIANT,
};
pub use claude_summary::ClaudeSummaryBackend;
pub use ollama_summary::{canonical_prompt_template_blake3, OllamaSummaryBackend};
pub use ollama::{
    validate_config as validate_ollama_config,
    validate_endpoint_url as validate_ollama_endpoint_url,
    validate_model_ref as validate_ollama_model_ref, OllamaConfig,
};
pub use ollama_http::OllamaHttpAdapter;
pub use openai_compat::OpenAiCompatAdapter;
pub use replay::{
    FixtureFile, FixtureIndex, FixtureMatch, FixtureResponse, IndexEntry, ReplayAdapter,
};
pub use sensitivity::{check_remote_prompt_sensitivity, MaxSensitivity, SensitivityGateResult};
pub use summary::{
    NoopSummaryBackend, ReplaySummaryBackend, ReplaySummaryFixture, ReplaySummaryFixtureEntry,
    SourceClaim, SummaryBackend, SummaryError, SummaryRequest, SummaryResponse,
};