Daily batch pipeline: an ADK 2 workflow graph drives extraction against Gemini, a Vertex batch job backfills
historical PDFs, and everything lands in one Firestore that this dashboard reads.
The decision logic (every run)
Runs on: Cloud Run · Firestore (leased work queue = the checkpoint) · GCS · Vertex AI. Historical bulk
backfill used Vertex batch pricing through the same gate.
The gate logic mirrors pipeline/workflow_graph.py and agents/* — node names tagged in (parens); verified by test.