{"name":"browser-workflow-repair","description":"Browser workflow repair / self-healing automation / dom drift fix / flow memory in one call for agents whose CSS selectors broke after a page redeploy. Composite: one call runs dom-change-diff + form-fill-plan + browser-flow-digest + website-screenshot in parallel, merged into {dom_diff, form_fill_plan, flow_digest, screenshot}. dom-change-diff compares before/after HTML and suggests stable replacement selectors for anything that moved; form-fill-plan drafts a fresh fill plan against current markup and goal; browser-flow-digest compresses a prior trajectory into reusable workflow memory (only runs when supplied); website-screenshot captures the live page when a url is given. Use it as a self-healing browser automation API, a DOM drift repair tool, or a workflow-memory generator.","price":"$0.06","method":"POST","input_schema":{"properties":{"before_html":{"type":"string","description":"HTML snapshot of the page before the change that broke automation. Required, max 2,000,000 chars."},"after_html":{"type":"string","description":"Current HTML snapshot of the same page/component. Required, max 2,000,000 chars."},"goal":{"type":"string","description":"What the browser workflow is trying to accomplish, e.g. 'log in and reach the dashboard'. Required, max 500 chars."},"trajectory":{"type":["array","string"],"description":"Optional prior recorded browser trajectory (JSON array of steps, or a plain-text trace) to compress into reusable workflow memory. Skipped if omitted."},"url":{"type":"string","description":"Optional live URL to capture a current screenshot of. Skipped if omitted."}},"required":["before_html","after_html","goal"]},"input_example":{"before_html":"<form><button id='login'>Log in</button></form>","after_html":"<form><button data-testid='login-btn'>Log in</button></form>","goal":"log in and reach the dashboard"},"output_example":{"goal":"log in and reach the dashboard","dom_diff":{"selector_changes":[{"selector":"#login","status":"removed","stable_selector_hint":"[data-testid=\"login-btn\"]"}],"has_changes":true},"form_fill_plan":{"steps":[{"selector":"[data-testid=\"login-btn\"]","action":"click","resolved":true}],"advisory":true},"flow_digest":null,"screenshot":null,"skipped":["browser-flow-digest","website-screenshot"],"composed_of":["dom-change-diff","form-fill-plan","browser-flow-digest","website-screenshot"],"components":[{"name":"dom-change-diff","ok":true,"ms":40}],"degraded":true},"x402_payment_required":true,"x402_facilitator":"https://api.cdp.coinbase.com/platform/v2/x402"}