本卡屬 FR-090 母案(開卡後補號)第 2 棒。只搬檔改 import,不改任何邏輯。中量驗證。與第 1 棒動的檔不重疊,可並行。

問題是什麼(白話)

套件會開「port」(抽象介面)要主專案提供實作,例如「這台設備被幾個稽核任務引用」「登入時怎麼驗 Turnstile」。jedi-asset 的兩個實作放在 infra/asset/,這是對的:它們是主專案接外部系統的膠水,屬 infra 層。但 iam、remote_agent、license、flow_control 四支的實作放在 app/ 下,同一種東西兩種位置。本卡把它們搬到 infra/<pkg>/

首腦核對(2026-09-12,每檔讀過檔頭、每個 importer grep 過):

在哪裡

主專案:/Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/

搬(git mv):
  app/auth/service/login_adapters.py            → infra/iam/login_adapters.py
  app/auth/service/login_policy_provider.py     → infra/iam/login_policy_provider.py
  app/remote_agent/adapter/*.py(3 檔)           → infra/remote_agent/adapter/
  app/license/adapter/notifier.py               → infra/license/notifier.py
  app/flow_control/adapter/task_existence_query.py → infra/flow_control/task_existence_query.py

改 import(共 10 個檔):
  core/iam_wiring.py:86
  app/auth/service/login_service.py
  app/user_auth_provider/service/user_auth_provider_service.py
  di_containers/remote_agent/remote_agent_containers.py:32-33
  di_containers/agent_task/agent_task_containers.py:14
  api/remote_agent/__init__.py:39
  infra/license/tenant_directory_adapter.py
  api/license/__init__.py
  di_containers/flow_control/flow_control_containers.py
  di_containers/flow_engine/task_assignee_containers.py

改路徑字串:
  scripts/deliverables/plugin_metrics.py:60
  4 處註解(見上)

守衛:
  test/test_module_boundaries.py

怎麼修

要寫測試