@@ -1760,16 +1760,14 @@ pub struct CopilotExpAssignmentResponse {
17601760 pub assignment_context : String ,
17611761}
17621762
1763- /// Controls whether bypass-permissions mode is available in a managed session.
1764- #[ derive( Clone , Copy , Debug , PartialEq , Eq , Serialize , Deserialize ) ]
1765- #[ serde( rename_all = "lowercase" ) ]
1766- #[ non_exhaustive]
1767- pub enum DisableBypassPermissionsMode {
1768- /// Turn off bypass-permissions mode.
1769- Disable ,
1763+ /// Well-known managed bypass-permissions policies.
1764+ pub struct DisableBypassPermissionsModes ;
1765+
1766+ impl DisableBypassPermissionsModes {
1767+ /// Turn off bypass-permissions mode entirely.
1768+ pub const DISABLE : & ' static str = "disable" ;
17701769 /// Permit automatic bypass but block full allow-all.
1771- #[ serde( rename = "allow-auto-only" ) ]
1772- AllowAutoOnly ,
1770+ pub const ALLOW_AUTO_ONLY : & ' static str = "allow-auto-only" ;
17731771}
17741772
17751773/// Permission rules injected as a managed-settings layer at session bootstrap.
@@ -1784,10 +1782,11 @@ pub enum DisableBypassPermissionsMode {
17841782#[ serde( rename_all = "camelCase" ) ]
17851783#[ non_exhaustive]
17861784pub struct ManagedSettingsPermissions {
1787- /// Restricts bypass-permissions mode for the session. Serialized as
1788- /// `disableBypassPermissionsMode`.
1785+ /// Restricts bypass-permissions mode for the session. See
1786+ /// [`DisableBypassPermissionsModes`] for well-known values. Unknown values
1787+ /// are forwarded so newer runtime policies fail closed.
17891788 #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
1790- pub disable_bypass_permissions_mode : Option < DisableBypassPermissionsMode > ,
1789+ pub disable_bypass_permissions_mode : Option < String > ,
17911790 /// Tool-permission patterns that are always denied.
17921791 #[ serde( default , skip_serializing_if = "Option::is_none" ) ]
17931792 pub deny : Option < Vec < String > > ,
@@ -1801,11 +1800,8 @@ pub struct ManagedSettingsPermissions {
18011800
18021801impl ManagedSettingsPermissions {
18031802 /// Sets the bypass-permissions policy for this managed layer.
1804- pub fn with_disable_bypass_permissions_mode (
1805- mut self ,
1806- value : DisableBypassPermissionsMode ,
1807- ) -> Self {
1808- self . disable_bypass_permissions_mode = Some ( value) ;
1803+ pub fn with_disable_bypass_permissions_mode ( mut self , value : impl Into < String > ) -> Self {
1804+ self . disable_bypass_permissions_mode = Some ( value. into ( ) ) ;
18091805 self
18101806 }
18111807
0 commit comments