Overview

Task file & boundaries

A task JSON file makes a run reproducible: goal, start URL, the success oracle, the stop boundary, budgets, policy and screenshot mode.

Overview#

A task JSON file makes a run reproducible: goal, start URL, the success oracle, the stop boundary, budgets, policy and screenshot mode.

invoice-claim.json
{
  "goal": "Download my latest invoice, attach it to a new reimbursement claim titled \"August travel\", then stop before submitting",
  "startUrl": "https://billing.example.com/invoices",
  "successCriteria": { "criteria": { "kind": "artifact", "documentType": "invoice" } },
  "stopBefore": ["submit claim"],
  "budgets": { "maxSteps": 30, "maxCostUsd": 0.5 },
  "browser": { "backend": "playwright", "headless": true },
  "policy": { "defaults": { "upload": "allow" } },
  "screenshot": "on-failure"
}
Run it
mlola browser run invoice-claim.json
mlola browser run --task invoice-claim.json --stop-before "submit claim,payment"

successCriteria is the independent oracle: url_contains, url_matches, title_contains, element_visible, text_visible, artifact, download_completed, manual, plus the all, any and not combinations. Without an oracle, a completion the runtime cannot verify is reported honestly (passed_with_unverified) instead of being treated as success.