()
| 207 | |
| 208 | |
| 209 | def main() -> None: |
| 210 | args = parse_args() |
| 211 | |
| 212 | from skillopt.config import load_config as _load, flatten_config, is_structured |
| 213 | |
| 214 | cfg = _load(args.config, overrides=args.cfg_options) |
| 215 | structured = is_structured(cfg) |
| 216 | |
| 217 | # Apply legacy --key value overrides |
| 218 | cli = {k: v for k, v in vars(args).items() |
| 219 | if v is not None and k not in ("config", "skill", "split", "cfg_options")} |
| 220 | if cli: |
| 221 | if structured: |
| 222 | from skillopt.config import apply_overrides |
| 223 | _MAP = { |
| 224 | "backend": "model.backend", |
| 225 | "optimizer_model": "model.optimizer", |
| 226 | "target_model": "model.target", |
| 227 | "optimizer_backend": "model.optimizer_backend", |
| 228 | "target_backend": "model.target_backend", |
| 229 | "reasoning_effort": "model.reasoning_effort", |
| 230 | "azure_endpoint": "model.azure_endpoint", |
| 231 | "azure_api_version": "model.azure_api_version", |
| 232 | "azure_api_key": "model.azure_api_key", |
| 233 | "azure_openai_endpoint": "model.azure_openai_endpoint", |
| 234 | "azure_openai_api_version": "model.azure_openai_api_version", |
| 235 | "azure_openai_api_key": "model.azure_openai_api_key", |
| 236 | "azure_openai_auth_mode": "model.azure_openai_auth_mode", |
| 237 | "azure_openai_ad_scope": "model.azure_openai_ad_scope", |
| 238 | "azure_openai_managed_identity_client_id": "model.azure_openai_managed_identity_client_id", |
| 239 | "optimizer_azure_openai_endpoint": "model.optimizer_azure_openai_endpoint", |
| 240 | "optimizer_azure_openai_api_version": "model.optimizer_azure_openai_api_version", |
| 241 | "optimizer_azure_openai_api_key": "model.optimizer_azure_openai_api_key", |
| 242 | "optimizer_azure_openai_auth_mode": "model.optimizer_azure_openai_auth_mode", |
| 243 | "optimizer_azure_openai_ad_scope": "model.optimizer_azure_openai_ad_scope", |
| 244 | "optimizer_azure_openai_managed_identity_client_id": "model.optimizer_azure_openai_managed_identity_client_id", |
| 245 | "target_azure_openai_endpoint": "model.target_azure_openai_endpoint", |
| 246 | "target_azure_openai_api_version": "model.target_azure_openai_api_version", |
| 247 | "target_azure_openai_api_key": "model.target_azure_openai_api_key", |
| 248 | "target_azure_openai_auth_mode": "model.target_azure_openai_auth_mode", |
| 249 | "target_azure_openai_ad_scope": "model.target_azure_openai_ad_scope", |
| 250 | "target_azure_openai_managed_identity_client_id": "model.target_azure_openai_managed_identity_client_id", |
| 251 | "codex_exec_path": "model.codex_exec_path", |
| 252 | "codex_exec_sandbox": "model.codex_exec_sandbox", |
| 253 | "codex_exec_profile": "model.codex_exec_profile", |
| 254 | "codex_exec_full_auto": "model.codex_exec_full_auto", |
| 255 | "codex_exec_reasoning_effort": "model.codex_exec_reasoning_effort", |
| 256 | "codex_exec_use_sdk": "model.codex_exec_use_sdk", |
| 257 | "codex_exec_network_access": "model.codex_exec_network_access", |
| 258 | "codex_exec_web_search": "model.codex_exec_web_search", |
| 259 | "codex_exec_approval_policy": "model.codex_exec_approval_policy", |
| 260 | "claude_code_exec_path": "model.claude_code_exec_path", |
| 261 | "claude_code_exec_profile": "model.claude_code_exec_profile", |
| 262 | "claude_code_exec_use_sdk": "model.claude_code_exec_use_sdk", |
| 263 | "claude_code_exec_effort": "model.claude_code_exec_effort", |
| 264 | "claude_code_exec_max_thinking_tokens": "model.claude_code_exec_max_thinking_tokens", |
| 265 | "minimax_base_url": "model.minimax_base_url", |
| 266 | "minimax_api_key": "model.minimax_api_key", |
no test coverage detected