Skip to main content

mdx_rust_core/
lib.rs

1//! Core primitives for the `mdx-rust` CLI.
2//!
3//! `mdx-rust-core` contains the optimizer, hardening engine, safety pipeline,
4//! registry, evaluation, ledger, and audit primitives used by the `mdx-rust`
5//! binary.
6//!
7//! ## Stability contract
8//!
9//! The supported product surface for `0.3.x` is the `mdx-rust` CLI. This crate
10//! is published so the CLI can be installed from crates.io and so advanced
11//! users can inspect the internal data structures, but the library API is not
12//! yet stable. Public items may change before `1.0`.
13//!
14//! The intentionally documented facade is the set of `pub use` exports below.
15//! Module paths are left public for the CLI and tests, but most modules are
16//! hidden from rustdoc because they are implementation detail for now.
17
18#[doc(hidden)]
19pub mod config;
20#[doc(hidden)]
21pub mod eval;
22#[doc(hidden)]
23pub mod hardening;
24#[doc(hidden)]
25pub mod hooks;
26#[doc(hidden)]
27pub mod ledger;
28#[doc(hidden)]
29pub mod llm;
30#[doc(hidden)]
31pub mod optimizer;
32#[doc(hidden)]
33pub mod registry;
34#[doc(hidden)]
35pub mod runner;
36#[doc(hidden)]
37pub mod safety_pipeline;
38#[doc(hidden)]
39pub mod security;
40#[doc(hidden)]
41pub mod trace;
42
43/// Configuration loading and defaults used by the CLI.
44pub use config::Config;
45/// Dataset and scorer metadata used by optimizer reports.
46pub use eval::{EvaluationDataset, EvaluationSample, ScorerMetadata};
47/// Scoped Rust hardening engine for ordinary Rust modules. Unstable before `1.0`.
48pub use hardening::{
49    run_hardening, HardeningChangeSummary, HardeningConfig, HardeningMode, HardeningOutcome,
50    HardeningPolicyRecord, HardeningRun, HardeningStatus, WorkspaceSummary,
51};
52/// Built-in lifecycle hook primitives. These are unstable before `1.0`.
53pub use hooks::{
54    evaluate_builtin_hook, HookAction, HookContext, HookDecision, HookPolicy, HookStage,
55};
56/// Experiment budget and ledger records. These are unstable before `1.0`.
57pub use ledger::{
58    split_dataset, DatasetSplit, ExperimentLedger, OptimizationBudget, PromptVariantRecord,
59};
60/// Optimizer entrypoint and run records. These are unstable before `1.0`.
61pub use optimizer::{
62    mechanical_score, run_optimization, AcceptedEditSummary, AuditPacket, AuditProvenance,
63    Candidate, EditStrategy, ModelProvenance, OptimizationRun, OptimizeConfig, ScoreProvenance,
64};
65/// Agent registry types used by CLI commands.
66pub use registry::{AgentContract, RegisteredAgent, Registry};
67/// Agent runner result and trace events. These are unstable before `1.0`.
68pub use runner::{run_agent, AgentRunResult, TraceEvent};
69/// Candidate safety pipeline. Direct use is unstable before `1.0`.
70pub use safety_pipeline::{
71    execute_candidate_edit, CandidateExecutionConfig, CandidateExecutionContext,
72    CandidateExecutionOutcome, SafetyRejection, SafetyRejectionKind,
73};
74/// Deterministic static audit reports.
75pub use security::{audit_agent, AuditFinding, AuditSeverity, SecurityAuditReport};
76/// Trace diagnosis records.
77pub use trace::{diagnose_run, FailureKind, FailureSignal, TraceDiagnosis};