sqlite-graphrag 1.2.8

Persistent GraphRAG memory for Claude Code, Codex, Cursor, and 27 AI agents — one self-contained ~19 MiB Rust binary, zero daemon. Never re-explain your codebase again. Hybrid retrieval (FTS5 BM25 + cosine similarity + multi-hop graph traversal) surfaces the right memory in milliseconds. Embedding and entity enrichment run as parallel REST calls against your cloud LLM — no fragile headless subprocesses, no ONNX runtime, no model downloads. Soft-delete with full version history, transactional atomic writes, BLAKE3-tracked mutations. OAuth-only: raw API keys ABORT the spawn.
Documentation
//! Single point of terminal I/O for the CLI (stdout JSON, stderr human).
//!
//! All user-visible output must go through this module; direct `println!` in
//! other modules is forbidden.
//!
//! Split by responsibility (GAP-SG-146), roughly in order of how structured
//! the output is:
//!
//! * `envelope` — complete JSON payloads, and the single point where the
//!   agent-native reshaping surface is applied
//! * `error_envelope` — failure payloads, with a serializer-free fallback
//! * `stream` — NDJSON, one record per line, under the GAP-SG-215 stream
//!   contract: per-record knobs only, and the `agent_surface` record on the
//!   trailer rather than on every line
//! * `passthrough` — plain text and verbatim bytes, no JSON at all
//! * `human` — stderr diagnostics via `tracing`
//! * `sink` — the one place bytes actually reach stdout
//! * [`format`] — `--format` value enums
//! * `responses` — the serializable payload types themselves
//!
//! Every public item is re-exported here, so `crate::output::emit_json` and
//! friends keep working unchanged; callers never name a submodule.

mod envelope;
mod error_envelope;
mod format;
mod human;
mod passthrough;
mod responses;
mod sink;
mod stream;

#[cfg(test)]
mod tests;

pub use envelope::{emit_json, emit_json_compact};
pub use error_envelope::{emit_error_json, emit_error_json_with_suggestion};
pub use format::{JsonOutputFormat, OutputFormat};
pub use human::{emit_error, emit_error_i18n, emit_progress, emit_progress_i18n};
pub use passthrough::{emit_raw, emit_text};
pub use responses::{RecallItem, RecallResponse, RememberResponse};
pub use stream::{emit_json_line, emit_stream_record, emit_stream_trailer};