1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
//! # neurographrag
//!
//! Local GraphRAG memory for LLMs in a single SQLite file — zero external
//! services required.
//!
//! `neurographrag` is a CLI-first library that persists memories, entities and
//! typed relationships inside a single SQLite database. It combines FTS5
//! full-text search with `sqlite-vec` KNN over locally-generated embeddings to
//! expose a hybrid retrieval ranker tailored for LLM agents.
//!
//! ## CLI usage
//!
//! Install and initialize once, then save and recall memories:
//!
//! ```bash
//! cargo install neurographrag
//! neurographrag init
//! neurographrag remember \
//! --name onboarding-note \
//! --type user \
//! --description "first memory" \
//! --body "hello graphrag"
//! neurographrag recall "graphrag" --k 5
//! ```
//!
//! ## Crate layout
//!
//! The public modules group the CLI, the SQLite storage layer and the
//! supporting primitives (embedder, chunking, graph, namespace detection,
//! output, paths and pragmas). The CLI binary wires them together through the
//! commands in [`commands`].
//!
//! ## Exit codes
//!
//! Errors returned from [`errors::AppError`] map to deterministic exit codes
//! suitable for orchestration by shell scripts and LLM agents. Consult the
//! README for the full contract.
use ;
/// Sinaliza que um sinal de encerramento (SIGINT / SIGTERM / SIGHUP) foi recebido.
///
/// Definido em `main` via `ctrlc::set_handler`. Subcomandos de longa duração podem
/// consultar [`shutdown_requested`] para encerrar gracefully antes do timeout.
pub static SHUTDOWN: AtomicBool = new;
/// Retorna `true` se um sinal de encerramento foi recebido desde o início do processo.
/// Token-aware chunking utilities for bodies that exceed the embedding window.
/// `clap` definitions for the top-level `neurographrag` binary.
/// Subcommand handlers wired into the `clap` tree from [`cli`].
/// Compile-time constants: embedding dimensions, limits and thresholds.
/// Local embedding generation backed by `fastembed`.
/// Library-wide error type and the mapping to process exit codes (see [`errors::AppError`]).
/// Graph traversal helpers over the entities and relationships tables.
/// Bilingual message layer for human-facing stderr progress (`--lang en|pt`, `NEUROGRAPHRAG_LANG`).
/// Semáforo de contagem via lock files para limitar invocações paralelas (veja [`lock::acquire_cli_slot`]).
/// Guarda de memória: verifica disponibilidade de RAM antes de carregar o modelo ONNX.
/// Namespace resolution with precedence between flag, environment and markers.
/// Centralized stdout/stderr emitters for CLI output formatting.
/// Parser de argumentos dual-format: aceita Unix epoch e RFC 3339.
/// XDG-aware filesystem paths for the database and cache directories.
/// SQLite pragma helpers applied on every connection.
/// Persistence layer: memories, entities, chunks and version history.
pub use migrations;