"""Оркестрация sweep-pipeline scraper_kit — strangler-копия `app.services.scrape_pipeline`.

Координирует полный прогон скрапа (SERP → save → houses → detail → IMV) поверх
провайдеров `scraper_kit.providers.*` и базового слоя `scraper_kit.base`. Развязана
от `app.*` через Protocol-инжекцию (`scraper_kit.contracts`):

  - `app.core.config.settings`          → инжектируемый `ScraperConfig`
  - `app.services.matching`             → инжектируемый `HouseMatcher`
  - `app.services.house_imv_backfill`   → инжектируемый `EnrichmentJobs`
  - `app.core.shutdown.shutdown_requested` → инжектируемый `Callable[[], bool]`
  - `app.services.scrape_runs`          → локальная копия `scraper_kit.orchestration.runs`

Боевой scheduler по-прежнему зовёт старый `app.services.scrape_pipeline` (strangler:
COPY, не MOVE). Переключение рантайма на этот модуль — отдельный поздний шаг.
"""
