{"ok":true,"site":{"host":"mhtorregrosa.github.io","url":"https://mhtorregrosa.github.io/SwitchboardZero/","type":"live","desc":"Switchboard Zero is a deterministic human-agent crisis control room powered by WebMCP.","tools":[{"name":"inspect_grid","kind":"act","impl":"imperative","description":"Read the complete current Switchboard Zero simulation state, including damaged lines, district service, available generation, human-locked districts, risk tolerance and pending approvals. Use this before proposing or applying a recovery plan.","title":"Inspect the crisis grid","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/SwitchboardZero/"},{"name":"simulate_recovery_plan","kind":"act","impl":"imperative","description":"Build a deterministic recovery sequence without applying grid switches. Critical-first avoids all service trade-offs, balanced maximizes useful recovery with one explicit human decision, and maximum-coverage accepts elevated relay risk. The visible control room updates to show the proposed plan.","title":"Simulate a recovery plan","inputSchema":{"type":"object","properties":{"strategy":{"type":"string","enum":["critical-first","balanced","maximum-coverage"],"description":"Recovery objective to simulate."}},"required":["strategy"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/SwitchboardZero/"},{"name":"apply_authorized_actions","kind":"act","impl":"imperative","description":"Execute recovery steps from the most recently simulated plan in order. Stop at the first step outside the current human-defined authority boundary. A later step is never executed past a withheld dependency.","title":"Apply authorized recovery actions","inputSchema":{"type":"object","properties":{"planId":{"type":"string","description":"The exact plan ID returned by simulate_recovery_plan."}},"required":["planId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/SwitchboardZero/"},{"name":"request_human_decision","kind":"act","impl":"imperative","description":"Place the action that was actually withheld by apply_authorized_actions into the visible human decision queue. The action must belong to the latest plan. This tool explains the trade-off but never approves or performs it.","title":"Request a human decision","inputSchema":{"type":"object","properties":{"actionId":{"type":"string","enum":["transfer_transit_feed","bypass_solar_interlock"],"description":"Sensitive action returned as blocked by apply_authorized_actions."},"reason":{"type":"string","minLength":12,"maxLength":280,"description":"Plain-language reason that states who gains, who loses and for how long or at what risk."}},"required":["actionId","reason"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/SwitchboardZero/"},{"name":"simulate_delay_impact","kind":"act","impl":"imperative","description":"Run a non-destructive counterfactual showing what would happen if the operator waited between one and twelve minutes. This never advances the live exercise clock or changes the grid.","title":"Forecast the cost of waiting","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"minutes":{"type":"integer","minimum":1,"maximum":12}},"required":["minutes"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/SwitchboardZero/"}],"favicon":"/favicons/mhtorregrosa.github.io.svg","apiSurface":"spec","category":"AI & Agents","toolCount":5}}