|
38 | 38 | DEFAULT_TASK = "monthly_snapshot_audit" |
39 | 39 | DEFAULT_MODE = "review_and_fix" |
40 | 40 | DEFAULT_PROVIDER = "auto" |
| 41 | +TASK_DEFAULT_PROVIDER = "task_default" |
| 42 | +TASK_DEFAULT_PROVIDERS = { |
| 43 | + "monthly_snapshot_audit": "auto", |
| 44 | + "long_horizon_signal_shadow": "codex", |
| 45 | +} |
41 | 46 | API_PATCH_SYSTEM_PROMPT = ( |
42 | 47 | "You are AIAuditBridge's API fallback patch provider. " |
43 | 48 | "Return exactly one JSON object that matches the service patch contract. " |
@@ -384,13 +389,19 @@ def validate_task(task: str, source_repo: str) -> str: |
384 | 389 | return normalized |
385 | 390 |
|
386 | 391 |
|
387 | | -def validate_provider(provider: str) -> str: |
388 | | - normalized = (provider or DEFAULT_PROVIDER).strip().lower() |
| 392 | +def validate_provider(provider: str, task: str = DEFAULT_TASK) -> str: |
| 393 | + normalized = (provider or TASK_DEFAULT_PROVIDER).strip().lower() |
| 394 | + if normalized == TASK_DEFAULT_PROVIDER: |
| 395 | + return default_provider_for_task(task) |
389 | 396 | if normalized not in SUPPORTED_PROVIDERS: |
390 | 397 | raise BridgeError(f"Unsupported CODEX_AUDIT_PROVIDER: {provider!r}") |
391 | 398 | return normalized |
392 | 399 |
|
393 | 400 |
|
| 401 | +def default_provider_for_task(task: str) -> str: |
| 402 | + return TASK_DEFAULT_PROVIDERS.get(task, DEFAULT_PROVIDER) |
| 403 | + |
| 404 | + |
394 | 405 | def api_fallback_allowed_source_repos() -> frozenset[str]: |
395 | 406 | configured = env_value("CODEX_AUDIT_API_FALLBACK_ALLOWED_SOURCE_REPOSITORIES") |
396 | 407 | if not configured: |
@@ -2772,7 +2783,7 @@ def main() -> int: |
2772 | 2783 | mode = env_value("CODEX_AUDIT_MODE", DEFAULT_MODE) |
2773 | 2784 | if mode not in {"review_only", "review_and_fix"}: |
2774 | 2785 | raise BridgeError(f"Unsupported CODEX_AUDIT_MODE: {mode}") |
2775 | | - provider = validate_provider(env_value("CODEX_AUDIT_PROVIDER", DEFAULT_PROVIDER)) |
| 2786 | + provider = validate_provider(env_value("CODEX_AUDIT_PROVIDER", TASK_DEFAULT_PROVIDER), task=task) |
2776 | 2787 | codex_backend = validate_codex_backend(env_value("CODEX_AUDIT_CODEX_BACKEND", DEFAULT_CODEX_BACKEND)) |
2777 | 2788 | issue_number_raw = env_value("ISSUE_NUMBER") |
2778 | 2789 | if not issue_number_raw.isdigit(): |
|
0 commit comments