pub mod body_hash;
pub mod cancellation;
pub mod entrypoint;
pub mod go_signature;
pub mod helper;
pub mod identity;
pub mod incremental;
pub mod parallel_commit;
pub mod pass3_intra;
pub mod pass4_cross;
pub mod pass5_cross_language;
pub mod pass5b_c_indirect;
pub mod pass_go_method_set;
pub mod phase4e_binding;
pub mod phase4e_incremental;
pub mod progress;
pub mod reindex;
pub mod staging;
pub mod test_helpers;
pub(crate) mod unification;
pub const GRAPH_PHASE_1_NAME: &str = "AST extraction";
pub const GRAPH_PHASE_2_NAME: &str = "Metadata enrichment";
pub const GRAPH_PHASE_3_NAME: &str = "Intra-file edges";
pub const GRAPH_PHASE_4_NAME: &str = "Cross-file resolution";
pub const GRAPH_PHASE_5_NAME: &str = "Cross-language linking";
pub const SAVE_COMPONENT_SYMBOLS: &str = "symbols";
pub const SAVE_COMPONENT_TRIGRAMS: &str = "trigrams";
pub const SAVE_COMPONENT_RELATIONS: &str = "relations";
pub const SAVE_COMPONENT_GRAPH: &str = "unified graph";
pub use cancellation::CancellationToken;
pub use entrypoint::{
AnalysisStrategySummary, BuildConfig, BuildResult, DurableGraphPersistenceRequest,
GRAPH_FILE_PROCESSING_PHASE, build_and_persist_graph, build_and_persist_graph_with_progress,
build_unified_graph, build_unified_graph_cancellable, build_unified_graph_with_progress,
build_unified_graph_with_progress_cancellable, inferred_plugin_selection_manifest,
persist_and_analyze_graph, persist_durable_graph_transaction,
};
pub use helper::{GraphBuildHelper, HelperStats};
pub use identity::{IdentityIndex, IdentityKey};
pub use incremental::{
IncrementalStats, add_edge_incremental, compute_reverse_dep_closure, incremental_rebuild,
remove_file_nodes,
};
pub use parallel_commit::{
ChunkCommitPlan, FilePlan, GlobalOffsets, Phase3Result, compute_commit_plan,
pending_edges_to_delta, phase2_assign_ranges, phase4_apply_global_remap,
remap_edge_kind_string_ids, remap_node_entry_global, remap_option_string_id, remap_string_id,
};
pub use pass3_intra::{
IntraFileReference, Pass3Result, Pass3Stats, PendingEdge, UnresolvedRef, pass3_intra_edges,
};
pub use pass4_cross::{ExportMap, Pass4Stats, pass4_cross_file};
pub use pass5_cross_language::{Pass5Stats, link_cross_language_edges};
pub use progress::GraphBuildProgressTracker;
pub use reindex::{ReindexStats, allocate_new_segment, reindex_files};
pub use staging::{
GoEmbeddingHint, GoHints, GoMethodReceiverHint, GoNamedTypeConversionHint, GoReceiverCallHint,
GoReceiverHintKind, StagedEdgeRef, StagedNodeRef, StagingGraph, StagingOp,
};
pub use body_hash::{
build_line_offsets, compute_node_body_hash, extract_node_body, has_valid_body_span,
node_kind_supports_body_hash, resolve_body_span,
};