mod cli;
mod diagnosis;
mod diagnostic_copy;
mod edges;
mod enumeration;
mod execute;
mod filesystem;
mod live;
mod orchestrate;
mod rebuild;
mod state;
mod strategy;
mod switchover;
mod validate;
pub use cli::{
default_scratch_parent, dry_run, migration_complete_notice, parse as parse_migrate_args,
refuses, render, require_destination, MigrateOptions,
};
pub use diagnosis::{
diagnose, same_filesystem, Capability, CollectionInventory, DiagnosisReport, SourceProvenance,
TargetContract, TtlSummary, DIAGNOSIS_FORMAT_VERSION,
};
pub use edges::{
cross_check_edges, export_edges, export_edges_verified, reinsert_edges, EdgeReinsertion,
};
pub use enumeration::{
enumerate_by_cursor, enumerate_collection, enumerate_page, reinsert, reinsert_batch,
scroll_page, BatchReinsertion, RawFact, Reinsertion, AGENT_COLLECTIONS,
};
pub(crate) use execute::journal_workspace;
pub(crate) use execute::target_embedder_witness;
pub use execute::{execute, ExecuteOutcome};
pub use filesystem::{bytes_on_disk, fingerprint};
pub(crate) use live::prepare_live_switch;
pub use orchestrate::{migrate, MigrateOutcome};
#[cfg(test)]
pub(crate) use rebuild::rebuild_with_stop;
pub use rebuild::{
rebuild, RebuildDestination, RebuildJournal, RebuildOutcome, RebuildSource, VectorPolicy,
};
pub use state::{
CollectionProgress, MigrationLock, MigrationState, Phase, Recovery, SwitchState, LOCK_FILE,
PHASES, STATE_FILE, STATE_FORMAT_VERSION, STATE_TEMP_FILE,
};
pub use strategy::{assess, resolve, Compatibility, Resolution, Strategy};
pub(crate) use switchover::{
commit_retained_switch, finalize_staged_live_switch, rollback_staged_live_switch,
stage_live_switch,
};
pub use switchover::{switch_over, SwitchOutcome, ARCHIVE_SUFFIX};
#[cfg(test)]
pub(crate) use validate::divergence_explained_by_expiry;
pub use validate::{validate_destination, ValidationOutcome};
pub enum OnlineMigrationStartup {
None,
SourceRestored { source_model: String },
TargetActivated {
embedder: crate::DynEmbedder,
model: String,
},
}
pub fn recover_online_migration_startup<F>(
source: &std::path::Path,
target_factory: F,
) -> Result<OnlineMigrationStartup, crate::MemoryError>
where
F: Fn(&str) -> Result<(crate::DynEmbedder, String), crate::MemoryError>,
{
crate::service::recover_startup(source, target_factory)
}
pub(crate) fn query_error(message: impl Into<String>) -> crate::MemoryError {
velesdb_core::Error::Query(message.into()).into()
}
#[cfg(test)]
mod tests;