Skip to main content

synth_ai_core/data/
mod.rs

1//! Data types for the Synth SDK.
2//!
3//! This module contains core data structures used throughout the SDK:
4//! - Enums for job types, statuses, and configuration options
5//! - Rubrics and criteria for evaluation
6//! - Objectives and reward observations
7//! - Judgements and rubric assignments
8//! - Artifacts for storing outputs
9//! - Context overrides for unified optimization
10
11pub mod artifacts;
12pub mod context_override;
13pub mod contracts;
14pub mod enum_values;
15pub mod enums;
16pub mod judgements;
17pub mod levers;
18pub mod objectives;
19pub mod rewards;
20pub mod rubrics;
21pub mod sensors;
22
23// Re-export all public types
24pub use artifacts::{Artifact, ArtifactBundle, ArtifactContent};
25pub use context_override::{
26    ApplicationErrorType, ApplicationStatus, ContextOverride, ContextOverrideStatus,
27};
28pub use contracts::lever_sensor_v1_contract_schema;
29pub use enum_values::data_enum_values;
30pub use enums::{
31    AdaptiveBatchLevel, AdaptiveCurriculumLevel, GraphType, InferenceMode, JobStatus, JobType,
32    ObjectiveDirection, ObjectiveKey, OptimizationMode, OutputMode, ProviderName, RewardScope,
33    RewardSource, RewardType, SuccessStatus, SynthModelName, TrainingType, VerifierMode,
34};
35pub use judgements::{CriterionScoreData, Judgement, RubricAssignment};
36pub use levers::{
37    Lever, LeverActor, LeverConstraints, LeverFormat, LeverKind, LeverMutability, LeverMutation,
38    LeverProvenance, LeverSnapshot, MiproLeverSummary, ScopeKey, ScopeKind,
39};
40pub use objectives::{
41    EventObjectiveAssignment, InstanceObjectiveAssignment, ObjectiveSpec,
42    OutcomeObjectiveAssignment, RewardObservation,
43};
44pub use rewards::{
45    CalibrationExample, EventRewardRecord, GoldExample, OutcomeRewardRecord, RewardAggregates,
46};
47pub use rubrics::{Criterion, CriterionExample, Rubric};
48pub use sensors::{Sensor, SensorFrame, SensorFrameSummary, SensorKind};
49
50#[cfg(test)]
51mod tests {
52    use super::*;
53
54    #[test]
55    fn test_module_exports() {
56        // Verify all types are accessible
57        let _ = JobStatus::Running;
58        let _ = Rubric::new("1.0");
59        let _ = ObjectiveSpec::maximize_reward();
60        let _ = Judgement::new();
61        let _ = Artifact::text("test");
62        let _ = ContextOverride::new();
63    }
64}