mirror of
https://github.com/openai/codex.git
synced 2026-09-15 12:08:01 +00:00
Restrict guardian assessment parsing and circuit breaker visibility (#45680)
## What changed Make `parse_guardian_assessment`, the rejection circuit breaker types and methods, and `AUTO_REVIEW_DENIAL_WINDOW_SIZE` crate-visible with `pub(crate)`. Update their re-exports in `guardian-reviewer` to match. GitOrigin-RevId: 39521c7859936ebc9af570d7f1ad7b2348f3673d
This commit is contained in:
@@ -21,7 +21,7 @@ pub struct GuardianAssessment {
|
||||
/// wrapper so transient formatting drift fails less noisily during dogfooding.
|
||||
/// Non-JSON output is still a review failure; this is only a thin recovery path
|
||||
/// for cases where the model wrapped the JSON in extra prose.
|
||||
pub fn parse_guardian_assessment(text: Option<&str>) -> anyhow::Result<GuardianAssessment> {
|
||||
pub(crate) fn parse_guardian_assessment(text: Option<&str>) -> anyhow::Result<GuardianAssessment> {
|
||||
let Some(text) = text else {
|
||||
anyhow::bail!("guardian review completed without an assessment payload");
|
||||
};
|
||||
|
||||
@@ -4,10 +4,10 @@ const MAX_CONSECUTIVE_CYBER_GUARDIAN_DENIALS_PER_TURN: u32 = 1;
|
||||
const MAX_CONSECUTIVE_GUARDIAN_DENIALS_PER_TURN: u32 = 3;
|
||||
const MAX_RECENT_CYBER_AUTO_REVIEW_DENIALS_PER_TURN: u32 = 1;
|
||||
const MAX_RECENT_AUTO_REVIEW_DENIALS_PER_TURN: u32 = 10;
|
||||
pub const AUTO_REVIEW_DENIAL_WINDOW_SIZE: usize = 50;
|
||||
pub(crate) const AUTO_REVIEW_DENIAL_WINDOW_SIZE: usize = 50;
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct GuardianRejectionCircuitBreaker {
|
||||
pub(crate) struct GuardianRejectionCircuitBreaker {
|
||||
turns: std::collections::HashMap<String, GuardianRejectionCircuitBreakerTurn>,
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ struct GuardianRejectionCircuitBreakerTurn {
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub enum GuardianRejectionCircuitBreakerPolicy {
|
||||
pub(crate) enum GuardianRejectionCircuitBreakerPolicy {
|
||||
Standard,
|
||||
CyberModel,
|
||||
}
|
||||
@@ -37,7 +37,7 @@ impl From<&codex_protocol::openai_models::ModelInfo> for GuardianRejectionCircui
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub enum GuardianRejectionCircuitBreakerAction {
|
||||
pub(crate) enum GuardianRejectionCircuitBreakerAction {
|
||||
Continue,
|
||||
InterruptTurn {
|
||||
consecutive_denials: u32,
|
||||
@@ -46,11 +46,11 @@ pub enum GuardianRejectionCircuitBreakerAction {
|
||||
}
|
||||
|
||||
impl GuardianRejectionCircuitBreaker {
|
||||
pub fn clear_turn(&mut self, turn_id: &str) {
|
||||
pub(crate) fn clear_turn(&mut self, turn_id: &str) {
|
||||
self.turns.remove(turn_id);
|
||||
}
|
||||
|
||||
pub fn record_denial(
|
||||
pub(crate) fn record_denial(
|
||||
&mut self,
|
||||
turn_id: &str,
|
||||
policy: GuardianRejectionCircuitBreakerPolicy,
|
||||
@@ -83,7 +83,7 @@ impl GuardianRejectionCircuitBreaker {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn record_non_denial(&mut self, turn_id: &str) {
|
||||
pub(crate) fn record_non_denial(&mut self, turn_id: &str) {
|
||||
let turn = self.turns.entry(turn_id.to_string()).or_default();
|
||||
turn.consecutive_denials = 0;
|
||||
Self::record_recent_review(turn, /*denied*/ false);
|
||||
|
||||
@@ -23,11 +23,11 @@ mod settings;
|
||||
pub use assessment::GuardianAssessment;
|
||||
pub use assessment::guardian_output_contract_prompt;
|
||||
pub use assessment::guardian_output_schema;
|
||||
pub use assessment::parse_guardian_assessment;
|
||||
pub use circuit_breaker::AUTO_REVIEW_DENIAL_WINDOW_SIZE;
|
||||
pub use circuit_breaker::GuardianRejectionCircuitBreaker;
|
||||
pub use circuit_breaker::GuardianRejectionCircuitBreakerAction;
|
||||
pub use circuit_breaker::GuardianRejectionCircuitBreakerPolicy;
|
||||
pub(crate) use assessment::parse_guardian_assessment;
|
||||
pub(crate) use circuit_breaker::AUTO_REVIEW_DENIAL_WINDOW_SIZE;
|
||||
pub(crate) use circuit_breaker::GuardianRejectionCircuitBreaker;
|
||||
pub(crate) use circuit_breaker::GuardianRejectionCircuitBreakerAction;
|
||||
pub(crate) use circuit_breaker::GuardianRejectionCircuitBreakerPolicy;
|
||||
pub use model::ReviewModel;
|
||||
pub use model::select_review_model;
|
||||
pub use outcome::GuardianReviewError;
|
||||
|
||||
Reference in New Issue
Block a user