mirror of
https://github.com/openai/codex.git
synced 2026-11-05 20:10:33 +00:00
Resolve saved Daybreak preferences against advertised model programs (#59192)
## What changed Add `SavedDaybreakChoice` and `ModelAccessPrograms::select_saved` to resolve an optional saved preference. Enabled selects an advertised Daybreak program, disabled selects an advertised standard program, and unset or unsupported choices return `None`. ## Testing Extend selection tests to cover enabled, disabled, and unset preferences across advertised program combinations, preserving the preference for Daybreak Blue over Red. GitOrigin-RevId: 1c7ab3fe1d3a48ad64519bfedfe27de90838516c
This commit is contained in:
@@ -59,6 +59,7 @@ mod guardian_v2;
|
||||
mod reasoning_effort;
|
||||
|
||||
pub use access_programs::ModelAccessPrograms;
|
||||
pub use access_programs::SavedDaybreakChoice;
|
||||
pub use guardian_v2::AsyncClassifierMode;
|
||||
pub use guardian_v2::GuardianV2ModelConfig;
|
||||
pub use guardian_v2::GuardianV2TranscriptModelConfig;
|
||||
|
||||
@@ -17,7 +17,35 @@ pub struct ModelAccessPrograms {
|
||||
pub cyber: Vec<CyberAccessProgram>,
|
||||
}
|
||||
|
||||
/// Saved preference to resolve against the selected model's advertised programs.
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub enum SavedDaybreakChoice {
|
||||
Unset,
|
||||
On,
|
||||
Off,
|
||||
}
|
||||
|
||||
impl From<Option<bool>> for SavedDaybreakChoice {
|
||||
fn from(enabled: Option<bool>) -> Self {
|
||||
match enabled {
|
||||
Some(true) => Self::On,
|
||||
Some(false) => Self::Off,
|
||||
None => Self::Unset,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ModelAccessPrograms {
|
||||
/// Select only an advertised program for explicit saved intent. Unset and
|
||||
/// unsupported choices remain omitted, including On without Daybreak support.
|
||||
pub fn select_saved(&self, choice: SavedDaybreakChoice) -> Option<CyberAccessProgram> {
|
||||
match choice {
|
||||
SavedDaybreakChoice::On => self.daybreak(),
|
||||
SavedDaybreakChoice::Off => self.standard(),
|
||||
SavedDaybreakChoice::Unset => None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Select the preferred Daybreak treatment advertised for this model.
|
||||
pub fn daybreak(&self) -> Option<CyberAccessProgram> {
|
||||
[
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
#![cfg(test)]
|
||||
|
||||
use super::ModelAccessPrograms;
|
||||
use super::SavedDaybreakChoice;
|
||||
use crate::turn_input::CyberAccessProgram;
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
@@ -17,8 +20,20 @@ fn selects_only_advertised_programs_with_blue_preferred() {
|
||||
] {
|
||||
let programs = ModelAccessPrograms { cyber };
|
||||
assert_eq!(
|
||||
(programs.daybreak(), programs.standard()),
|
||||
(expected_daybreak, expected_standard)
|
||||
(
|
||||
programs.daybreak(),
|
||||
programs.standard(),
|
||||
programs.select_saved(SavedDaybreakChoice::from(Some(true))),
|
||||
programs.select_saved(SavedDaybreakChoice::from(Some(false))),
|
||||
programs.select_saved(SavedDaybreakChoice::from(/* enabled */ None)),
|
||||
),
|
||||
(
|
||||
expected_daybreak,
|
||||
expected_standard,
|
||||
expected_daybreak,
|
||||
expected_standard,
|
||||
None,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user