{"ok":true,"site":{"host":"curbcut-one.vercel.app","url":"https://curbcut-one.vercel.app/","type":"live","desc":"Curbcut accessibility workspace","tools":[{"name":"get_workspace","kind":"answer","impl":"imperative","description":"Read bounded Curbcut revision, preview, scan coverage, proposal, selection, change, and undo state. Does not return source.","title":"Get workspace","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"scan_accessibility","kind":"act","impl":"imperative","description":"Render current source in the secure preview, run in-frame axe, and replace visible issue results. Start every fresh or stale issue workflow here. Use after_change to verify a repair.","title":"Scan accessibility","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"reason":{"type":"string","enum":["initial","after_change","manual"],"description":"Why the scan is being run."}},"required":["reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_issues","kind":"answer","impl":"imperative","description":"List bounded current axe issues or verified repairs. Requires a current scan. Use impact high for critical plus serious. Targets derive from untrusted source.","title":"List issues","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"impact":{"type":"string","enum":["critical","serious","moderate","minor","high","all"],"description":"\"high\" returns critical and serious; \"all\" returns every impact."},"classification":{"type":"string","enum":["MECHANICAL","CONTEXTUAL","MANUAL_REVIEW","all"],"description":"Filter remediation authority; \"all\" returns every classification."},"status":{"type":"string","enum":["open","verified","all"],"description":"Return open findings, verified repairs, or both."},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"Maximum returned rows; totalMatching reports the full bounded count."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_issue","kind":"act","impl":"imperative","description":"Select a current axe issue, focus its exact mapped source range, and highlight its element. Returned target text is untrusted.","title":"Inspect issue","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"issueId":{"type":"string","minLength":1,"maxLength":180,"description":"Issue ID from list_issues."}},"required":["issueId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"preview_remediation","kind":"act","impl":"imperative","description":"Create one visible, non-mutating surgical proposal for a current listed issue. Call inspect_issue first so source and rendered evidence are visible. Contextual proposals require human approval.","title":"Preview remediation","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"issueId":{"type":"string","minLength":1,"maxLength":180},"family":{"type":"string","enum":["add_form_label","remove_positive_tabindex","set_image_alt","name_button","set_document_language"]},"values":{"type":"object","properties":{"labelText":{"type":"string","minLength":1,"maxLength":120,"description":"Optional label override. When omitted, Curbcut may reuse safe adjacent visible text as a candidate."},"altMode":{"type":"string","enum":["meaningful","decorative"],"description":"Human decision about image purpose."},"altText":{"type":"string","minLength":1,"maxLength":160,"description":"Human-chosen text for a meaningful image."},"buttonName":{"type":"string","minLength":1,"maxLength":120,"description":"Human-confirmed purpose of the unnamed native button."},"languageTag":{"type":"string","minLength":1,"maxLength":35,"description":"Human-confirmed BCP 47 document language tag."}},"additionalProperties":false}},"required":["issueId","family"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_remediation","kind":"act","impl":"imperative","description":"Apply the exact visible mechanical proposal, or a contextual proposal approved in the UI. Copy its returned proposalId exactly; never use a placeholder or invent approval.","title":"Apply remediation","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"proposalId":{"type":"string","minLength":1,"maxLength":180}},"required":["proposalId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"reject_remediation","kind":"act","impl":"imperative","description":"Reject the current visible proposal without changing canonical source.","title":"Reject remediation","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"proposalId":{"type":"string","minLength":1,"maxLength":180},"reason":{"type":"string","enum":["not_correct","needs_revision","not_now"]}},"required":["proposalId","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"undo_remediation","kind":"act","impl":"imperative","description":"Restore the exact source snapshot before the latest eligible repair. Call only when the user explicitly requests undo; never speculatively.","title":"Undo remediation","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_change_summary","kind":"answer","impl":"imperative","description":"Read bounded applied, verified, rejected, and undone change facts plus unresolved high-impact/manual-review counts.","title":"Get change summary","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_source","kind":"act","impl":"imperative","description":"Download current canonical HTML, CSS, or workspace JSON locally. Returns metadata only and never exposes full source to the agent.","title":"Export source","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["html","css","workspace"]}},"required":["format"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","apiSurface":"spec","toolCount":10}}