1#![warn(missing_docs)]
41
42#[cfg(feature = "ast")]
43pub mod ast;
44pub mod autolink;
45pub mod bootstrap;
46pub mod brain;
47pub mod context;
48pub mod doctor;
49pub mod error;
50pub mod exporter;
51pub mod fts;
52pub mod id;
53pub mod ignore;
54pub mod indexer;
55pub mod mmap;
56pub mod mutator;
57pub mod note;
58#[cfg(feature = "obsidian")]
59pub mod obsidian;
60pub mod query;
61pub mod registry;
62pub mod storage;
63pub mod symbols;
64pub mod types;
65pub mod watch;
66
67pub use autolink::{
68 is_auto_relation, is_explicit_relation, list_orphan_notes, normalize_target_arg, path_stem,
69 run_auto_link, AutoLinkReport, AutoLinkSuggestion, OrphanNote, REL_AUTO_FILENAME,
70 REL_AUTO_TAG, WEIGHT_AUTO_FILENAME, WEIGHT_AUTO_TAG,
71};
72pub use bootstrap::{
73 bootstrap_noninteractive, bootstrap_workspace, default_agents_md_template,
74 resolve_agents_md_template, BootstrapAction, BootstrapMode, BootstrapOptions, BootstrapReport,
75};
76pub use brain::{find_brain_dir, Brain};
77pub use context::ContextOptions;
78pub use fts::{is_generic_topic, prepare_search_query, tokenize_query, PreparedQuery};
79pub use doctor::{run_doctor, run_doctor_with, DoctorFinding, DoctorOptions, DoctorReport, DoctorSeverity};
80pub use error::{BrainError, Result};
81pub use exporter::{BrainExporter, BrainImporter, PortableBrainBundle, BUNDLE_VERSION};
82pub use ignore::{recommended_ignore_extras, write_rustbrainignore, IgnoreSet};
83pub use indexer::WorkspaceIndexer;
84pub use mmap::{CsrCompiler, CsrMmapGraph, MMAP_VERSION};
85pub use note::{create_note, default_dir_for_type, slugify_title, NoteCreated, NoteNewOptions};
86pub use query::{PendingLink, QueryOptions, RankedHit};
87pub use registry::{GlobalRankedHit, GlobalRegistry};
88pub use storage::{Database, SCHEMA_VERSION};
89pub use symbols::{extract_symbol_refs, symbol_node_id, SymbolRef};
90pub use types::{
91 xml_escape, ContextBundle, ContextNode, ContextRole, Edge, Node, NodeType, SyncStats,
92};
93pub use watch::WatchConfig;
94
95#[cfg(feature = "ast")]
96pub use ast::{compute_symbol_hash, AstError, CodeAstParser, SymbolAnchor};
97
98#[cfg(feature = "obsidian")]
99pub use obsidian::{
100 extract_wikilinks, parse_frontmatter, CanvasEdge, CanvasNode, Frontmatter, ObsidianCanvas,
101 WikiLink,
102};
103
104#[cfg(feature = "jshift")]
105pub use mutator::{extract_json_field_slice, update_json_field_inplace};
106
107#[cfg(feature = "watch")]
108pub use watch::watch_workspace;