|
9 | 9 | from pydantic import ( |
10 | 10 | BaseModel, |
11 | 11 | Field, |
| 12 | + PrivateAttr, |
12 | 13 | SecretStr, |
13 | 14 | field_serializer, |
14 | 15 | field_validator, |
|
18 | 19 | from openhands.sdk.context.agent_context import AgentContext |
19 | 20 | from openhands.sdk.llm import LLM |
20 | 21 | from openhands.sdk.tool import Tool |
| 22 | +from openhands.sdk.utils.deprecation import warn_deprecated |
21 | 23 |
|
22 | 24 | from .metadata import ( |
23 | 25 | SETTINGS_METADATA_KEY, |
@@ -107,6 +109,9 @@ class CondenserSettings(BaseModel): |
107 | 109 | class VerificationSettings(BaseModel): |
108 | 110 | """Critic and iterative-refinement settings for the agent.""" |
109 | 111 |
|
| 112 | + _deprecated_confirmation_mode: bool = PrivateAttr(default=False) |
| 113 | + _deprecated_security_analyzer: str | None = PrivateAttr(default=None) |
| 114 | + |
110 | 115 | # -- Critic -- |
111 | 116 | critic_enabled: bool = Field( |
112 | 117 | default=False, |
@@ -197,6 +202,64 @@ class VerificationSettings(BaseModel): |
197 | 202 | }, |
198 | 203 | ) |
199 | 204 |
|
| 205 | + @property |
| 206 | + def confirmation_mode(self) -> bool: |
| 207 | + warn_deprecated( |
| 208 | + "VerificationSettings.confirmation_mode", |
| 209 | + deprecated_in="1.16.1", |
| 210 | + removed_in="1.18.0", |
| 211 | + details=( |
| 212 | + "Use ConversationSettings.confirmation_mode; " |
| 213 | + "verification settings no longer serialize " |
| 214 | + "conversation approval controls." |
| 215 | + ), |
| 216 | + ) |
| 217 | + return self._deprecated_confirmation_mode |
| 218 | + |
| 219 | + @confirmation_mode.setter |
| 220 | + def confirmation_mode(self, value: bool) -> None: |
| 221 | + warn_deprecated( |
| 222 | + "VerificationSettings.confirmation_mode", |
| 223 | + deprecated_in="1.16.1", |
| 224 | + removed_in="1.18.0", |
| 225 | + details=( |
| 226 | + "Use ConversationSettings.confirmation_mode; " |
| 227 | + "verification settings no longer serialize " |
| 228 | + "conversation approval controls." |
| 229 | + ), |
| 230 | + stacklevel=3, |
| 231 | + ) |
| 232 | + self._deprecated_confirmation_mode = value |
| 233 | + |
| 234 | + @property |
| 235 | + def security_analyzer(self) -> str | None: |
| 236 | + warn_deprecated( |
| 237 | + "VerificationSettings.security_analyzer", |
| 238 | + deprecated_in="1.16.1", |
| 239 | + removed_in="1.18.0", |
| 240 | + details=( |
| 241 | + "Use ConversationSettings.security_analyzer; " |
| 242 | + "verification settings no longer serialize " |
| 243 | + "conversation security controls." |
| 244 | + ), |
| 245 | + ) |
| 246 | + return self._deprecated_security_analyzer |
| 247 | + |
| 248 | + @security_analyzer.setter |
| 249 | + def security_analyzer(self, value: str | None) -> None: |
| 250 | + warn_deprecated( |
| 251 | + "VerificationSettings.security_analyzer", |
| 252 | + deprecated_in="1.16.1", |
| 253 | + removed_in="1.18.0", |
| 254 | + details=( |
| 255 | + "Use ConversationSettings.security_analyzer; " |
| 256 | + "verification settings no longer serialize " |
| 257 | + "conversation security controls." |
| 258 | + ), |
| 259 | + stacklevel=3, |
| 260 | + ) |
| 261 | + self._deprecated_security_analyzer = value |
| 262 | + |
200 | 263 |
|
201 | 264 | def _default_llm_settings() -> LLM: |
202 | 265 | model = LLM.model_fields["model"].get_default() |
|
0 commit comments