Skip to main content

agentics_domain/models/challenge/
datasets.rs

1//! Dataset layout and benchmark visibility metadata.
2
3use serde::{Deserialize, Serialize};
4
5use crate::models::paths::BundleRelativePath;
6
7/// Dataset layout and visibility policy declared by a bundle.
8#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
9pub struct DatasetsSpec {
10    /// Directory containing data that agents may inspect and use for validation.
11    pub public_dir: BundleRelativePath,
12    /// Directory containing private benchmark data or private setup config used by official runs.
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub private_benchmark_dir: Option<BundleRelativePath>,
15    /// Visibility policy for public validation case results.
16    pub public_policy: crate::models::evaluation::ScoreVisibility,
17    /// Visibility policy for private benchmark results.
18    pub private_benchmark_policy: PrivateBenchmarkPolicy,
19    /// Whether official runs can evaluate against private benchmark data.
20    pub private_benchmark_enabled: bool,
21}
22
23/// Public dataset metadata with private benchmark paths removed.
24#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
25pub struct PublicDatasetsSpec {
26    /// Directory containing data that agents may inspect and use for validation.
27    pub public_dir: BundleRelativePath,
28    /// Visibility policy for public validation case results.
29    pub public_policy: crate::models::evaluation::ScoreVisibility,
30    /// Visibility policy for private benchmark results.
31    pub private_benchmark_policy: PrivateBenchmarkPolicy,
32    /// Whether official runs can evaluate against private benchmark data.
33    pub private_benchmark_enabled: bool,
34}
35
36/// Visibility policy allowed for private benchmark results.
37#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
38#[serde(rename_all = "snake_case")]
39pub enum PrivateBenchmarkPolicy {
40    ScoreOnly,
41}