mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
Rename reject approval policy to granular (#14516)
This commit is contained in:
@@ -38,9 +38,9 @@ use shlex::try_join as shlex_try_join;
|
||||
const PROMPT_CONFLICT_REASON: &str =
|
||||
"approval required by policy, but AskForApproval is set to Never";
|
||||
const REJECT_SANDBOX_APPROVAL_REASON: &str =
|
||||
"approval required by policy, but AskForApproval::Reject.sandbox_approval is set";
|
||||
"approval required by policy, but AskForApproval::Granular.sandbox_approval is false";
|
||||
const REJECT_RULES_APPROVAL_REASON: &str =
|
||||
"approval required by policy rule, but AskForApproval::Reject.rules is set";
|
||||
"approval required by policy rule, but AskForApproval::Granular.rules is false";
|
||||
const RULES_DIR_NAME: &str = "rules";
|
||||
const RULE_EXTENSION: &str = "rules";
|
||||
const DEFAULT_POLICY_FILE: &str = "default.rules";
|
||||
@@ -104,7 +104,7 @@ fn is_policy_match(rule_match: &RuleMatch) -> bool {
|
||||
/// current prompt to the user.
|
||||
///
|
||||
/// `prompt_is_rule` distinguishes policy-rule prompts from sandbox/escalation
|
||||
/// prompts so `Reject.rules` and `Reject.sandbox_approval` are honored
|
||||
/// prompts so granular `rules` and `sandbox_approval` settings are honored
|
||||
/// independently. When both are present, policy-rule prompts take precedence.
|
||||
pub(crate) fn prompt_is_rejected_by_policy(
|
||||
approval_policy: AskForApproval,
|
||||
@@ -115,14 +115,14 @@ pub(crate) fn prompt_is_rejected_by_policy(
|
||||
AskForApproval::OnFailure => None,
|
||||
AskForApproval::OnRequest => None,
|
||||
AskForApproval::UnlessTrusted => None,
|
||||
AskForApproval::Reject(reject_config) => {
|
||||
AskForApproval::Granular(granular_config) => {
|
||||
if prompt_is_rule {
|
||||
if reject_config.rejects_rules_approval() {
|
||||
if !granular_config.allows_rules_approval() {
|
||||
Some(REJECT_RULES_APPROVAL_REASON)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
} else if reject_config.rejects_sandbox_approval() {
|
||||
} else if !granular_config.allows_sandbox_approval() {
|
||||
Some(REJECT_SANDBOX_APPROVAL_REASON)
|
||||
} else {
|
||||
None
|
||||
@@ -519,7 +519,7 @@ pub fn render_decision_for_unmatched_command(
|
||||
AskForApproval::OnFailure
|
||||
| AskForApproval::OnRequest
|
||||
| AskForApproval::UnlessTrusted
|
||||
| AskForApproval::Reject(_) => Decision::Prompt,
|
||||
| AskForApproval::Granular(_) => Decision::Prompt,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -554,7 +554,7 @@ pub fn render_decision_for_unmatched_command(
|
||||
}
|
||||
}
|
||||
}
|
||||
AskForApproval::Reject(_) => match file_system_sandbox_policy.kind {
|
||||
AskForApproval::Granular(_) => match file_system_sandbox_policy.kind {
|
||||
FileSystemSandboxKind::Unrestricted | FileSystemSandboxKind::ExternalSandbox => {
|
||||
// Mirror on-request behavior for unmatched commands; prompt-vs-reject is handled
|
||||
// by `prompt_is_rejected_by_policy`.
|
||||
|
||||
Reference in New Issue
Block a user