MCP-2199 — Block button in Tool Quarantine view

Frontend lane of GH #632. Playwright sweep: 3/3 passed. Built to the backend contract with page.route mocks (POST /api/v1/servers/{id}/tools/block not yet merged) — to be re-run unmocked after the backend lane lands + rebase onto origin/main.

PASS 1. Block + Block All render in the Tool Quarantine view

Expected: A red-outlined 'Block' sits next to every 'Approve', and 'Block All' next to 'Approve All', for each quarantined (changed/pending) tool.

Observed: Banner shows Approve All + Block All; create_issue (changed) and list_repos (pending) each show Approve + Block.

PASS 2. Block (single) POSTs {tools:[name]} and the tool leaves the list

Expected: Clicking 'Block' on create_issue calls POST /api/v1/servers/github/tools/block with body {tools:['create_issue']}; the tool then leaves the quarantine list (mocked as approved+disabled).

Observed: blockCalls[0].body == {tools:['create_issue']}; quarantine banner disappears once the list empties.

PASS 3. Block All POSTs {block_all:true}

Expected: Clicking 'Block All' calls POST .../tools/block with body {block_all:true}.

Observed: blockCalls[0].body == {block_all:true}; banner disappears.