# Phase 1 Site Inventory — ai_client.py **File:** `src/ai_client.py` **Source:** `tests/artifacts/PHASE1_AUDIT_BASELINE.json` (audit `--include-baseline`) **Total sites in audit:** 59 **Migration-target sites:** 33 **Stay-as-is sites:** 26 ## Category Breakdown | Category | Count | |---|---| | BOUNDARY_CONVERSION (stay) | 1 | | BOUNDARY_SDK (stay) | 4 | | INTERNAL_BROAD_CATCH (MIGRATION) | 17 | | INTERNAL_COMPLIANT (stay) | 17 | | INTERNAL_PROGRAMMER_RAISE (stay) | 4 | | INTERNAL_RETHROW (MIGRATION) | 7 | | INTERNAL_SILENT_SWALLOW (MIGRATION) | 9 | ## Migration-Target Sites | # | Line | Category | Code excerpt | Phase bucket | |---|---|---|---|---| | 1 | L277 | INTERNAL_RETHROW | `_load_credentials` (RAISE) | Phase 12 (ai) / Phase 13 (rag) | | 2 | L302 | INTERNAL_SILENT_SWALLOW | `_classify_anthropic_error` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 3 | L314 | INTERNAL_SILENT_SWALLOW | `_classify_gemini_error` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 4 | L332 | INTERNAL_BROAD_CATCH | `_classify_deepseek_error` (EXCEPT) | Batch (Phase 3-7) | | 5 | L355 | INTERNAL_BROAD_CATCH | `_classify_minimax_error` (EXCEPT) | Batch (Phase 3-7) | | 6 | L394 | INTERNAL_BROAD_CATCH | `set_provider` (EXCEPT) | Batch (Phase 3-7) | | 7 | L414 | INTERNAL_SILENT_SWALLOW | `cleanup` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 8 | L432 | INTERNAL_SILENT_SWALLOW | `reset_session` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 9 | L520 | INTERNAL_BROAD_CATCH | `set_tool_preset` (EXCEPT) | Batch (Phase 3-7) | | 10 | L537 | INTERNAL_BROAD_CATCH | `set_bias_profile` (EXCEPT) | Batch (Phase 3-7) | | 11 | L716 | INTERNAL_BROAD_CATCH | `_execute_tool_calls_concurrently` (EXCEPT) | Batch (Phase 3-7) | | 12 | L723 | INTERNAL_BROAD_CATCH | `_execute_tool_calls_concurrently` (EXCEPT) | Batch (Phase 3-7) | | 13 | L801 | INTERNAL_RETHROW | `_default_send` (RAISE) | Phase 12 (ai) / Phase 13 (rag) | | 14 | L802 | INTERNAL_RETHROW | `_default_send` (RAISE) | Phase 12 (ai) / Phase 13 (rag) | | 15 | L994 | INTERNAL_BROAD_CATCH | `_reread_file_items` (EXCEPT) | Batch (Phase 3-7) | | 16 | L1234 | INTERNAL_RETHROW | `_list_anthropic_models` (RAISE) | Phase 12 (ai) / Phase 13 (rag) | | 17 | L1528 | INTERNAL_BROAD_CATCH | `_list_gemini_models` (EXCEPT) | Batch (Phase 3-7) | | 18 | L1529 | INTERNAL_RETHROW | `_list_gemini_models` (RAISE) | Phase 12 (ai) / Phase 13 (rag) | | 19 | L1555 | INTERNAL_SILENT_SWALLOW | `_extract_gemini_thoughts` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 20 | L1599 | INTERNAL_BROAD_CATCH | `_send_gemini` (EXCEPT) | Batch (Phase 3-7) | | 21 | L1611 | INTERNAL_BROAD_CATCH | `_send_gemini` (EXCEPT) | Batch (Phase 3-7) | | 22 | L1636 | INTERNAL_BROAD_CATCH | `_send_gemini` (EXCEPT) | Batch (Phase 3-7) | | 23 | L1657 | INTERNAL_BROAD_CATCH | `_send_gemini` (EXCEPT) | Batch (Phase 3-7) | | 24 | L1854 | INTERNAL_BROAD_CATCH | `_send` (EXCEPT) | Batch (Phase 3-7) | | 25 | L1856 | INTERNAL_RETHROW | `_send` (RAISE) | Phase 12 (ai) / Phase 13 (rag) | | 26 | L2242 | INTERNAL_SILENT_SWALLOW | `_list_minimax_models` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 27 | L2520 | INTERNAL_RETHROW | `_dashscope_call` (RAISE) | Phase 12 (ai) / Phase 13 (rag) | | 28 | L2848 | INTERNAL_BROAD_CATCH | `run_tier4_analysis` (EXCEPT) | Batch (Phase 3-7) | | 29 | L2867 | INTERNAL_BROAD_CATCH | `run_tier4_patch_callback` (EXCEPT) | Batch (Phase 3-7) | | 30 | L2898 | INTERNAL_BROAD_CATCH | `run_tier4_patch_generation` (EXCEPT) | Batch (Phase 3-7) | | 31 | L2914 | INTERNAL_SILENT_SWALLOW | `get_token_stats` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 32 | L2922 | INTERNAL_SILENT_SWALLOW | `get_token_stats` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | | 33 | L3082 | INTERNAL_SILENT_SWALLOW | `` (EXCEPT) | Phase 8 (mcp) / Phase 11 (ai) / Phase 13 (rag) | ## Stay-As-Is Sites | Line | Category | Code excerpt | |---|---|---| | L276 | BOUNDARY_SDK | `_load_credentials` (EXCEPT) | | L828 | INTERNAL_COMPLIANT | `run_with_tool_loop` (EXCEPT) | | L1233 | BOUNDARY_SDK | `_list_anthropic_models` (EXCEPT) | | L1437 | INTERNAL_COMPLIANT | `_send_anthropic` (EXCEPT) | | L1488 | INTERNAL_COMPLIANT | `_send_anthropic` (EXCEPT) | | L1777 | INTERNAL_COMPLIANT | `_send_gemini` (EXCEPT) | | L1809 | INTERNAL_COMPLIANT | `_send_gemini` (EXCEPT) | | L1896 | INTERNAL_COMPLIANT | `_pre_dispatch` (EXCEPT) | | L1926 | INTERNAL_COMPLIANT | `_send_gemini_cli` (EXCEPT) | | L1989 | INTERNAL_PROGRAMMER_RAISE | `_send_deepseek` (RAISE) | | L2071 | INTERNAL_COMPLIANT | `_send_deepseek` (EXCEPT) | | L2125 | INTERNAL_COMPLIANT | `_send_deepseek` (EXCEPT) | | L2184 | INTERNAL_COMPLIANT | `_send_deepseek` (EXCEPT) | | L2222 | INTERNAL_COMPLIANT | `_send_deepseek` (EXCEPT) | | L2299 | INTERNAL_PROGRAMMER_RAISE | `_ensure_minimax_client` (RAISE) | | L2310 | INTERNAL_PROGRAMMER_RAISE | `_ensure_grok_client` (RAISE) | | L2391 | INTERNAL_COMPLIANT | `_send_grok` (EXCEPT) | | L2473 | INTERNAL_COMPLIANT | `_send_minimax` (EXCEPT) | | L2487 | INTERNAL_PROGRAMMER_RAISE | `_ensure_qwen_client` (RAISE) | | L2617 | INTERNAL_COMPLIANT | `_send_qwen` (EXCEPT) | | L2711 | INTERNAL_COMPLIANT | `_send_llama` (EXCEPT) | | L2799 | INTERNAL_COMPLIANT | `_send_llama_native` (EXCEPT) | | L2813 | INTERNAL_COMPLIANT | `_get_llama_cost_tracking` (EXCEPT) | | L3057 | BOUNDARY_CONVERSION | `send` (EXCEPT) | | L3133 | BOUNDARY_SDK | `run_subagent_summarization` (EXCEPT) | | L3174 | BOUNDARY_SDK | `run_discussion_compression` (EXCEPT) |