Start a build run
start_runRuns a registered recipe. THIS IS THE TOOL THAT DOES THE REAL WORK: it reads the sources and can run for a long time. Start builds in full mode: full runs use one progressive acquisition with an inspection checkpoint after about five minutes and continue automatically. The checkpoint is not an approval gate or a second run. Four modes: full (the whole build), sample (an explicitly requested bounded experiment), refresh (forward from where the last run reached), backfill (one exact window). Example: {"recipe_id": "…", "recipe_digest": "…", "mode": "full"}. A sample must state at least one ceiling (max_rows, max_source_bytes or window); a backfill must state window {start, end}. For full builds, use the approved recipe source limits: do not automatically copy optional sample run clamps (max_rows or max_source_bytes) into a full run. Some source adapters cannot enforce those additional run clamps and will refuse before acquisition. Never remove a user-required bound to work around that refusal; ask whether the existing recipe limits meet their intent. Returns {run_id, status, mode, version, dashboard_url}. A run larger than the size that starts on its own comes back status "held" with projected_bytes and projected_runtime_seconds — show those to the user and call confirm_run only if they agree. If an earlier run failed for a platform reason, inspect get_run first, then pass retry_of_run_id with that failed run id to request a fresh attempt of the SAME recipe and limits. Repeating start_run without it replays the original run. The service refuses retries of active runs, other recipes/workspaces, and non-retryable failures. A retry still needs the normal user approval. Three optional members, each only when there is a reason: reuse_saved_answers: false (full only) reads every per-row answer fresh instead of reusing what the table's last full saved, when explain_recipe or a stale answer says so; discard_snapshot_history: true (full or sample) is the consent a start refused snapshot_history_would_be_discarded waits for — it replaces a snapshot table's day-by-day history with the one day this run reads, so pass it only when the person agreed to lose that history; resume_capture_run_id (full only) resumes a failed or cancelled full instead of starting the acquisition again. Next: run_events to watch it, then query_run to check the rows it built.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| window | No | ||
| max_rows | No | ||
| recipe_id | Yes | ||
| recipe_digest | Yes | ||
| resource_class | No | ||
| retry_of_run_id | No | ||
| max_source_bytes | No | ||
| reuse_saved_answers | No | ||
| resume_capture_run_id | No | ||
| discard_snapshot_history | No |