{"ok":true,"site":{"host":"json-render-ai.vercel.app","url":"https://json-render-ai.vercel.app/","type":"live","desc":"json-render AI Builder","tools":[{"name":"describe_app","kind":"answer","impl":"imperative","description":"Describe the current validated AppSpec without changing it.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_components","kind":"answer","impl":"imperative","description":"List every component with its stable ID, type, parent, and children.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_component","kind":"act","impl":"imperative","description":"Add one supported component to a parent through the validated Command Runtime.","inputSchema":{"type":"object","properties":{"parentId":{"type":"string"},"componentType":{"type":"string","enum":["Page","Stack","Card","Text","Metric","Button","Input","Select"]},"props":{"type":"object","additionalProperties":true},"index":{"type":"integer","minimum":0}},"required":["parentId","componentType"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_component","kind":"act","impl":"imperative","description":"Update allowed properties on one component through the validated Command Runtime.","inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"props":{"type":"object","additionalProperties":true}},"required":["nodeId","props"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move_component","kind":"act","impl":"imperative","description":"Move a component to a valid parent and index without creating cycles.","inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"newParentId":{"type":"string"},"index":{"type":"integer","minimum":0}},"required":["nodeId","newParentId","index"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"remove_component","kind":"act","impl":"imperative","description":"Preview or confirm recursive component removal. First call without a token never changes state.","inputSchema":{"type":"object","properties":{"nodeId":{"type":"string"},"confirmationToken":{"type":"string"}},"required":["nodeId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"validate_app","kind":"answer","impl":"imperative","description":"Validate the current AppSpec and return path-level errors without changing it.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"undo_last_change","kind":"act","impl":"imperative","description":"Undo the most recent committed write through the shared Command Runtime.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/json-render-ai.vercel.app.svg","apiSurface":"spec","toolCount":8}}