#[doc(hidden)]
pub mod ngram;
#[doc(hidden)]
pub mod phrase;
#[doc(hidden)]
pub mod scoring;
#[doc(hidden)]
pub mod tokenizer;
pub mod import;
pub mod types;
#[cfg(feature = "connect")]
#[doc(hidden)]
pub mod connect;
mod resolver_core;
mod resolver_intents;
mod resolver_learning;
mod resolver_metadata;
mod resolver_persist;
mod engine;
pub use engine::{MicroResolve, NamespaceHandle};
pub(crate) type FxHashMap<K, V> = std::collections::HashMap<K, V, rustc_hash::FxBuildHasher>;
pub(crate) type FxHashSet<T> = std::collections::HashSet<T, rustc_hash::FxBuildHasher>;
pub use types::*;
use std::collections::HashMap;
#[doc(hidden)]
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug)]
pub struct NegativeTrainingEntry {
pub timestamp: u64,
pub corpus_size: usize,
pub intents_affected: usize,
pub alpha: f32,
}
#[doc(hidden)]
#[derive(Clone)]
pub struct Resolver {
pub(crate) l0: crate::ngram::NgramIndex,
pub(crate) l1: crate::scoring::LexicalGraph,
pub(crate) l2: crate::scoring::IntentIndex,
training: HashMap<String, HashMap<String, Vec<String>>>,
intent_types: HashMap<String, IntentType>,
descriptions: HashMap<String, String>,
instructions: HashMap<String, String>,
persona: HashMap<String, String>,
sources: HashMap<String, IntentSource>,
targets: HashMap<String, IntentTarget>,
schemas: HashMap<String, serde_json::Value>,
guardrails: HashMap<String, Vec<String>>,
version: u64,
namespace_name: String,
namespace_description: String,
namespace_default_threshold: Option<f32>,
domain_descriptions: HashMap<String, String>,
negative_training_log: Vec<NegativeTrainingEntry>,
pub(crate) l0_enabled: bool,
pub(crate) l1_morphology: bool,
pub(crate) l1_synonym: bool,
pub(crate) l1_abbreviation: bool,
}
impl Default for Resolver {
fn default() -> Self {
Self::new()
}
}