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