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