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 enums;
14pub mod judgements;
15pub mod objectives;
16pub mod rubrics;
17
18// Re-export all public types
19pub use artifacts::{Artifact, ArtifactBundle, ArtifactContent};
20pub use context_override::{
21    ApplicationErrorType, ApplicationStatus, ContextOverride, ContextOverrideStatus,
22};
23pub use enums::{
24    AdaptiveBatchLevel, AdaptiveCurriculumLevel, GraphType, InferenceMode, JobStatus, JobType,
25    ObjectiveDirection, ObjectiveKey, OptimizationMode, OutputMode, ProviderName, RewardScope,
26    RewardSource, RewardType, SuccessStatus, TrainingType, VerifierMode,
27};
28pub use judgements::{CriterionScoreData, Judgement, RubricAssignment};
29pub use objectives::{
30    EventObjectiveAssignment, ObjectiveSpec, OutcomeObjectiveAssignment, RewardObservation,
31};
32pub use rubrics::{Criterion, CriterionExample, Rubric};
33
34#[cfg(test)]
35mod tests {
36    use super::*;
37
38    #[test]
39    fn test_module_exports() {
40        // Verify all types are accessible
41        let _ = JobStatus::Running;
42        let _ = Rubric::new("1.0");
43        let _ = ObjectiveSpec::maximize_reward();
44        let _ = Judgement::new();
45        let _ = Artifact::text("test");
46        let _ = ContextOverride::new();
47    }
48}