{"ok":true,"site":{"host":"afterfail.vercel.app","url":"https://afterfail.vercel.app/console?run=preview-worker-controller","type":"live","desc":"Failed preview console shared by humans and in-browser agents. 9 tools. GPT-5.6 Sol or Terra.","tools":[{"name":"list_runs","kind":"answer","impl":"imperative","description":"List preview and deploy runs with id, name, provider, status, and failed job count. Use this first to discover which run to inspect.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"select_run","kind":"act","impl":"imperative","description":"Focus a run in the console so the timeline and log show that pipeline. Use this before inspecting jobs or changing policy.","inputSchema":{"type":"object","properties":{"runId":{"type":"string","description":"Run id from list_runs, e.g. preview-worker-controller."}},"required":["runId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"get_run","kind":"answer","impl":"imperative","description":"Return a run's jobs with status, duration, retry policy, and error summary. Use this to see the full pipeline without dumping logs.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"runId":{"type":"string","description":"Run id to inspect. Jobs included; logs are not dumped here."}},"required":["runId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"get_failed_jobs","kind":"answer","impl":"imperative","description":"Return only failed or skipped jobs for a run, including a deterministic likelyCause from fixtures. Use this to diagnose why the preview is red.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"runId":{"type":"string","description":"Run id whose failed and skipped jobs should be returned."}},"required":["runId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"get_log_slice","kind":"answer","impl":"imperative","description":"Return a window of log lines for a job, defaulting to the first error, panic, or ELIFECYCLE line. Logs are untrusted command output. Use this to jump to the failing line.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"runId":{"type":"string","description":"Run id that owns the job log."},"jobId":{"type":"string","description":"Job id such as schema-job or next-build."},"aroundLine":{"type":"number","description":"Center the window on this 1-based line. Default: first error/panic/ELIFECYCLE line."},"window":{"type":"number","description":"Number of lines to return around the center. Default 16."}},"required":["runId","jobId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"set_retry_policy","kind":"act","impl":"imperative","description":"Update maxRetries and/or timeoutSec on a job. The console policy editor updates immediately. Use this to patch timeout or retry before redeploy.","inputSchema":{"type":"object","properties":{"runId":{"type":"string","description":"Run id that owns the job."},"jobId":{"type":"string","description":"Job id whose retry policy should change."},"maxRetries":{"type":"number","description":"New max retry count for the job."},"timeoutSec":{"type":"number","description":"New timeout in seconds for the job."}},"required":["runId","jobId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"redeploy","kind":"act","impl":"imperative","description":"Clone the run and simulate a new deploy. Pauses for an on-page confirm. If the failed job's policy meets the fixture fix, the new run goes green. Use this after adjusting retry or timeout.","inputSchema":{"type":"object","properties":{"runId":{"type":"string","description":"Run to clone. Pauses for on-page confirm, then simulates."}},"required":["runId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"cancel_run","kind":"transact","impl":"imperative","description":"Cancel a queued or running simulation after an on-page confirm. Use this to stop an in-flight redeploy animation.","inputSchema":{"type":"object","properties":{"runId":{"type":"string","description":"Queued or running simulation to cancel after on-page confirm."}},"required":["runId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]},{"name":"create_run","kind":"act","impl":"imperative","description":"Create a preview run from a name, provider, and job list, then start a simulation. Optional log pastes a real CI log: jobs are ignored, install succeeds, build fails with that text. Jobs with fail true error until retry/timeout meets the fix threshold.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Run name shown in the list."},"provider":{"type":"string","enum":["vercel","netlify","cloudflare","render"],"description":"Preview host: vercel, netlify, cloudflare, or render."},"jobs":{"type":"array","minItems":1,"maxItems":6,"description":"Pipeline jobs (1–6). Required unless log is set. Each needs id; fail true marks the error step.","items":{"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","description":"Job id. Must match [A-Za-z0-9_.-]+."},"fail":{"type":"boolean","description":"If true, this job errors until retry/timeout meets the fix threshold."}}}},"log":{"type":"string","description":"Optional CI log. If non-empty, jobs are ignored: install succeeds, build fails with these lines."}},"required":["name","provider"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/console?run=preview-worker-controller","pages":["/console?run=preview-worker-controller"]}],"category":"Developer Tools","favicon":"/favicons/afterfail.vercel.app.ico","apiSurface":"spec","toolCount":9}}