feat(analysis): admin coverage + per-page inspection API
Read-only admin endpoints (admin-gated, not analysis-enabled-gated) for
the dashboard's coverage overview and page-detail view:
- GET /v1/admin/analysis/mangas?search= — paginated per-manga coverage
(analyzed/total pages; only mangas with pages).
- GET /v1/admin/analysis/mangas/:id/chapters — per-chapter coverage.
- GET /v1/admin/analysis/chapters/:id/pages — per-page status grid
(done | failed | queued | none).
- GET /v1/admin/analysis/pages/:id — full result (status, is_nsfw, scene,
model, analyzed_at, error, OCR lines with kind, tags, content warnings);
"none" for an existing-but-unanalyzed page, 404 for a missing page.
repo::page_analysis gains manga_coverage / chapter_coverage /
chapter_page_status / page_detail; domain adds the matching row types.
Tests: coverage counts (manga + chapter), per-page status, full detail +
unanalyzed "none" + 404, non-admin 403.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>