use super::super::args::EnrichOperation;
use serde::Serialize;
#[derive(Debug, Serialize)]
pub(crate) struct PhaseEvent<'a> {
pub(crate) phase: &'a str,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) binary_path: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) version: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) items_total: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) items_pending: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) llm_parallelism: Option<u32>,
}
#[derive(Debug, Serialize)]
pub(crate) struct ScanStartEvent<'a> {
pub(crate) phase: &'static str,
pub(crate) operation: &'a str,
pub(crate) entities_in_namespace: i64,
pub(crate) backlog_degree0_proxy: Option<i64>,
pub(crate) pair_algorithm: Option<&'static str>,
pub(crate) limit: Option<usize>,
pub(crate) scan_deadline_secs: Option<u64>,
}
pub(crate) fn enrich_operation_cli_name(op: &EnrichOperation) -> &'static str {
match op {
EnrichOperation::MemoryBindings => "memory-bindings",
EnrichOperation::AugmentBindings => "augment-bindings",
EnrichOperation::EntityDescriptions => "entity-descriptions",
EnrichOperation::BodyEnrich => "body-enrich",
EnrichOperation::ReEmbed => "re-embed",
EnrichOperation::WeightCalibrate => "weight-calibrate",
EnrichOperation::RelationReclassify => "relation-reclassify",
EnrichOperation::EntityConnect => "entity-connect",
EnrichOperation::EntityTypeValidate => "entity-type-validate",
EnrichOperation::DescriptionEnrich => "description-enrich",
EnrichOperation::CrossDomainBridges => "cross-domain-bridges",
EnrichOperation::DomainClassify => "domain-classify",
EnrichOperation::GraphAudit => "graph-audit",
EnrichOperation::DeepResearchSynth => "deep-research-synth",
EnrichOperation::BodyExtract => "body-extract",
}
}
#[derive(Debug, Serialize)]
pub(crate) struct ConcurrencyEvent {
pub(crate) phase: &'static str,
pub(crate) scan_parallelism: u32,
pub(crate) drain_parallelism: u32,
}