{"ok":true,"site":{"host":"venue-studio-nine.vercel.app","url":"https://venue-studio-nine.vercel.app/","type":"live","desc":"Upload an empty event venue and collaborate with an agent to arrange a complete, validated layout.","tools":[{"name":"venue.read_project","kind":"answer","impl":"imperative","description":"Read the current venue image status, event brief, requested inventory, generated layouts, selected element IDs, validation state, and safe next actions.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.capture_scene","kind":"act","impl":"imperative","description":"Capture the currently rendered venue as a PNG image for visual inspection. Use this after generation or transformation, inspect the image, then refine elements with transform_elements and capture again until the composition is ready.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.load_image","kind":"act","impl":"imperative","description":"Load an empty venue image supplied by an agent or another tool. Pass exactly one imageUrl or raw imageBase64 plus its mimeType. This resets old layouts so the new photograph becomes the shared canvas.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"imageUrl":{"type":"string","minLength":1,"maxLength":20000000},"imageBase64":{"type":"string","minLength":1,"maxLength":20000000},"mimeType":{"type":"string","enum":["image/png","image/jpeg","image/webp"]},"name":{"type":"string","minLength":1,"maxLength":140},"width":{"type":"number","minimum":1,"maximum":12000},"height":{"type":"number","minimum":1,"maximum":12000}},"oneOf":[{"required":["imageUrl"]},{"required":["imageBase64"]}],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.get_edit_request","kind":"act","impl":"imperative","description":"Return the current venue image, exact edit brief, and state version to the calling agent. The agent must use its own image-generation capability and return the output with apply_image_revision. The site never calls an image API.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"instruction":{"type":"string","minLength":1,"maxLength":2400}},"required":["instruction"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.apply_image_revision","kind":"act","impl":"imperative","description":"Apply an image produced by the calling agent's own image tool. Pass the baseStateVersion from render_scene, refine_scene, or get_edit_request to prevent overwriting newer user changes. The tool displays the revision and returns the exact image back for inspection.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"imageUrl":{"type":"string","minLength":1,"maxLength":20000000},"imageBase64":{"type":"string","minLength":1,"maxLength":20000000},"mimeType":{"type":"string","enum":["image/png","image/jpeg","image/webp"]},"baseStateVersion":{"type":"number","minimum":0},"instruction":{"type":"string","minLength":1,"maxLength":2400},"label":{"type":"string","minLength":1,"maxLength":160}},"required":["baseStateVersion","instruction"],"oneOf":[{"required":["imageUrl"]},{"required":["imageBase64"]}],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.configure_event","kind":"act","impl":"imperative","description":"Set the event name, type, guest count, table count, seats per table, or planning notes. This visibly updates the brief and makes previous layouts stale.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"eventType":{"type":"string","enum":["wedding","concert","conference","corporate","birthday","festival","custom"]},"guestCount":{"type":"number","minimum":1,"maximum":5000},"tableCount":{"type":"number","minimum":1,"maximum":500},"seatsPerTable":{"type":"number","minimum":1,"maximum":30},"notes":{"type":"string","maxLength":1000}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.set_requirements","kind":"act","impl":"imperative","description":"Add or replace count-based event inventory such as tables, stage, band, DJ, catering, bar, barbecue, lounge, power, registration, or a custom labelled zone.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["append","replace"],"default":"append"},"requirements":{"type":"array","minItems":1,"maxItems":30,"items":{"type":"object","properties":{"kind":{"type":"string","enum":["seating","dance_floor","stage","band","dj","catering","bar","bbq","lounge","photo_booth","registration","power","restroom","custom"]},"label":{"type":"string","minLength":1,"maxLength":80},"quantity":{"type":"number","minimum":1,"maximum":500},"capacityPerUnit":{"type":"number","minimum":1,"maximum":1000},"required":{"type":"boolean","default":true}},"required":["kind","quantity"],"additionalProperties":false}}},"required":["requirements"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.generate_layouts","kind":"act","impl":"imperative","description":"Generate up to three structured layout options from the current guest count and inventory. Call render_scene next to receive the source image and exact edit brief for the calling agent's own image tool.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"strategies":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["balanced","guest_flow","entertainment_first","service_first"]}}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.add_elements","kind":"act","impl":"imperative","description":"Add supported or custom labelled elements to the selected layout. Optional x and y are percentages of the visible venue image.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"elements":{"type":"array","minItems":1,"maxItems":12,"items":{"type":"object","properties":{"kind":{"type":"string","enum":["seating","dance_floor","stage","band","dj","catering","bar","bbq","lounge","photo_booth","registration","power","restroom","custom"]},"label":{"type":"string","minLength":1,"maxLength":80},"quantity":{"type":"number","minimum":1,"maximum":500},"capacityPerUnit":{"type":"number","minimum":1,"maximum":1000},"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":6,"maximum":65},"height":{"type":"number","minimum":6,"maximum":50},"rotation":{"type":"number","minimum":-180,"maximum":180},"rotateX":{"type":"number","minimum":-65,"maximum":65},"rotateY":{"type":"number","minimum":-65,"maximum":65}},"required":["kind","quantity"],"additionalProperties":false}}},"required":["elements"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.transform_elements","kind":"act","impl":"imperative","description":"Move, resize, scale, or rotate existing layout elements in two or three dimensions. Use x and y for venue-relative placement, rotation or rotateBy for a flat turn, rotateX and rotateY for 3D orientation, rotateXBy and rotateYBy for relative 3D turns, and scale for a relative size multiplier. Capture the scene afterward to visually inspect the result.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"transforms":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","properties":{"elementId":{"type":"string"},"x":{"type":"number","minimum":0,"maximum":100},"y":{"type":"number","minimum":0,"maximum":100},"width":{"type":"number","minimum":6,"maximum":65},"height":{"type":"number","minimum":6,"maximum":50},"rotation":{"type":"number","minimum":-180,"maximum":180},"rotateBy":{"type":"number","minimum":-360,"maximum":360},"rotateX":{"type":"number","minimum":-65,"maximum":65},"rotateY":{"type":"number","minimum":-65,"maximum":65},"rotateXBy":{"type":"number","minimum":-130,"maximum":130},"rotateYBy":{"type":"number","minimum":-130,"maximum":130},"scale":{"type":"number","minimum":0.5,"maximum":2}},"required":["elementId"],"additionalProperties":false}}},"required":["transforms"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.remove_elements","kind":"act","impl":"imperative","description":"Remove one or more elements from the selected layout by IDs returned by read_project. Validation updates immediately.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"elementIds":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string"}}},"required":["elementIds"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.render_scene","kind":"act","impl":"imperative","description":"Return the source venue image and a complete photoreal edit brief to the calling agent. The agent must edit the returned image with its own image-generation tool, then call apply_image_revision with the result. This website never uses an API key.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"instruction":{"type":"string","minLength":1,"maxLength":1200}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.refine_scene","kind":"act","impl":"imperative","description":"Return the latest applied venue image and a targeted refinement brief to the calling agent. The agent must edit that returned image with its own image-generation tool, then call apply_image_revision and inspect the returned revision.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"instruction":{"type":"string","minLength":1,"maxLength":1200}},"required":["instruction"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.validate_layout","kind":"act","impl":"imperative","description":"Validate one current layout for guest capacity, requested inventory, overlaps, arrival flow, barbecue placement, and blocking issues.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"planId":{"type":"string"}},"required":["planId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"venue.stage_layout","kind":"act","impl":"imperative","description":"Stage one current layout without blocking issues for visible human review. This never approves or exports the layout.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"planId":{"type":"string"},"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["planId","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","apiSurface":"spec","toolCount":15}}