1#[macro_use]
2mod trace_support;
3
4mod admin;
5mod coordinator;
6mod database_lock;
7mod executable_trust;
8mod ids;
9mod operational;
10mod projection;
11mod runtime;
12mod sqlite;
13mod telemetry;
14mod writer;
15
16pub use admin::{
17 AdminHandle, AdminService, IntegrityReport, LogicalPurgeReport, LogicalRestoreReport,
18 ProvenancePurgeOptions, ProvenancePurgeReport, SafeExportManifest, SafeExportOptions,
19 SemanticReport, SkippedEdge, TraceReport, VectorGeneratorPolicy, VectorRegenerationConfig,
20 VectorRegenerationReport, load_vector_regeneration_config,
21};
22pub use coordinator::{
23 ActionRow, ExecutionCoordinator, ExpansionRootRows, ExpansionSlotRows, GroupedQueryRows,
24 NodeRow, ProvenanceEvent, QueryPlan, QueryRows, RunRow, StepRow,
25};
26pub use ids::{new_id, new_row_id};
27pub use operational::{
28 OperationalCollectionKind, OperationalCollectionRecord, OperationalCompactionReport,
29 OperationalCurrentRow, OperationalFilterClause, OperationalFilterField,
30 OperationalFilterFieldType, OperationalFilterMode, OperationalFilterValue,
31 OperationalHistoryValidationIssue, OperationalHistoryValidationReport, OperationalMutationRow,
32 OperationalPurgeReport, OperationalReadReport, OperationalReadRequest,
33 OperationalRegisterRequest, OperationalRepairReport, OperationalRetentionActionKind,
34 OperationalRetentionPlanItem, OperationalRetentionPlanReport, OperationalRetentionRunItem,
35 OperationalRetentionRunReport, OperationalSecondaryIndexDefinition,
36 OperationalSecondaryIndexField, OperationalSecondaryIndexRebuildReport,
37 OperationalSecondaryIndexValueType, OperationalTraceReport, OperationalValidationContract,
38 OperationalValidationField, OperationalValidationFieldType, OperationalValidationMode,
39};
40pub use projection::{ProjectionRepairReport, ProjectionService, ProjectionTarget};
41pub use runtime::EngineRuntime;
42pub use sqlite::{SharedSqlitePolicy, shared_sqlite_policy};
43pub use telemetry::{
44 SqliteCacheStatus, TelemetryCounters, TelemetryLevel, TelemetrySnapshot, read_db_cache_status,
45};
46pub use writer::{
47 ActionInsert, ChunkInsert, ChunkPolicy, EdgeInsert, EdgeRetire, LastAccessTouchReport,
48 LastAccessTouchRequest, NodeInsert, NodeRetire, OperationalWrite, OptionalProjectionTask,
49 ProvenanceMode, RunInsert, StepInsert, VecInsert, WriteReceipt, WriteRequest, WriterActor,
50};
51
52use thiserror::Error;
53
54#[derive(Debug, Error)]
56pub enum EngineError {
57 #[error("sqlite error: {0}")]
58 Sqlite(#[from] rusqlite::Error),
59 #[error("schema error: {0}")]
60 Schema(#[from] fathomdb_schema::SchemaError),
61 #[error("io error: {0}")]
62 Io(#[from] std::io::Error),
63 #[error("writer actor rejected request: {0}")]
64 WriterRejected(String),
65 #[error("write timed out (may still commit): {0}")]
66 WriterTimedOut(String),
67 #[error("invalid write request: {0}")]
68 InvalidWrite(String),
69 #[error("bridge error: {0}")]
70 Bridge(String),
71 #[error("capability missing: {0}")]
72 CapabilityMissing(String),
73 #[error("database locked: {0}")]
74 DatabaseLocked(String),
75 #[error("invalid configuration: {0}")]
76 InvalidConfig(String),
77}