Consolidate vendor facts into single adapter
Goal: vendor facts live in the catalogue or one adapter; shared mechanics exist once. No behaviour change.
- Widen the vendor census to `codex|gemini|claude|anthropic|antigravity|agy|pi-acp|deepseek` over apps/api, apps/jaahd, apps/web; each hit is a reasoned seam or moves to catalogue/adapter (fold or justify the separate ACP fence); remove provider-name branches in provider_health, api agent_providers, acp_runtime, routes/fleet.
- One base helper builds adapter env (unset omitted, never empty), used by every adapter.
- Codex legacy usage fold uses `fold_inclusive_counts`; `sdk_events` uses `base.count_int`.
- `accounts._creds_have_token` goes through `credential_file_present` and into `FENCED`.
- One stdlib staged-write helper for the account-uid scripts (pi_rpc, subagents, codex `_ENV_PATCH`/`_HOOKS_MERGE`, agent_layer), keeping uid/mode/group; shrink `_RENAME_ALLOWED`.
Out of scope: renaming DB columns, verbs, MCP names (ADR-0166); changing accepted credential shapes.
Done means: census test green with the widened pattern; existing adapter, usage, credential-read and login tests pass with identical results; quick gate green.
Outcome
Census widened to all 8 vendor names (ACP fence folded in, roster-comparison check). Provider branches moved onto catalogue fields; one adapter_env, one staged_write, creds read FENCED. Quick gate green; PR #6633 queued. Debt deferred to draft #9030. Memory: none applied.
Artifacts
Activity
- Created
- Run
- Runner started
- Runner ended (done)