{"ok":true,"site":{"host":"gosx3d.m31labs.dev","url":"https://gosx3d.m31labs.dev/","type":"live","desc":"Agent-native 3D scene workbench where people and browser agents inspect, focus, and stage revision-safe changes while humans keep commit authority.","tools":[{"name":"scene_get_state","kind":"answer","impl":"imperative","description":"Read a concise canonical SceneDoc overview: revision, object/component counts, roots, materials, camera, environment, and current selection. Call this before preparing revision-safe actions.","title":"Inspect scene state","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?selection=scene-root","/?selection=ambient-light","/?selection=key-light","/?selection=rim-light"]},{"name":"scene_find_objects","kind":"answer","impl":"imperative","description":"Search canonical SceneDoc objects by stable ID or human name, optionally filtering by component type and visibility. Returns concise object records with transforms for planning actions.","title":"Find scene objects","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","maxLength":120,"description":"Case-insensitive substring of object name or stable ID. Empty returns all objects up to limit."},"types":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","enum":["group","mesh","light","model","prefab","physics"]}},"visibleOnly":{"type":"boolean","default":false},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?selection=scene-root","/?selection=ambient-light","/?selection=key-light","/?selection=rim-light"]},{"name":"scene_focus_object","kind":"act","impl":"imperative","description":"Request that the visible Studio UI focus and select one canonical object by stable ID so the viewport and Inspector converge. This only changes ephemeral UI state; it never mutates the canonical SceneDoc or commits an edit.","title":"Focus a scene object","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["objectId"],"properties":{"objectId":{"type":"string","minLength":1,"maxLength":160,"description":"Stable SceneDoc object or material ID."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?selection=scene-root","/?selection=ambient-light","/?selection=key-light","/?selection=rim-light"]},{"name":"scene_preview_actions","kind":"act","impl":"imperative","description":"Validate and visibly stage 1-12 reversible scene actions against an exact canonical revision. This never commits: a human must review and explicitly commit the opaque proposal in the Studio UI. Use scene_get_state and scene_find_objects first.","title":"Preview scene actions","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["expectedRevision","title","operations"],"properties":{"expectedRevision":{"type":"integer","minimum":0,"description":"Exact canonical revision returned by scene_get_state."},"title":{"type":"string","minLength":1,"maxLength":80,"description":"Short human-facing proposal title."},"rationale":{"type":"string","maxLength":400,"description":"Why these actions help the user's stated goal."},"operations":{"type":"array","minItems":1,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","target","name"],"properties":{"kind":{"const":"rename-entity"},"target":{"type":"string","minLength":1,"maxLength":160,"description":"Stable SceneDoc object or material ID."},"name":{"type":"string","minLength":1,"maxLength":120}}},{"type":"object","additionalProperties":false,"required":["kind","target","transform"],"properties":{"kind":{"const":"set-transform"},"target":{"type":"string","minLength":1,"maxLength":160,"description":"Stable SceneDoc object or material ID."},"transform":{"type":"object","additionalProperties":false,"minProperties":1,"description":"Only include transform fields to change. Rotation is XYZ Euler radians.","properties":{"position":{"type":"object","additionalProperties":false,"required":["x","y","z"],"properties":{"x":{"type":"number","minimum":-1000000,"maximum":1000000},"y":{"type":"number","minimum":-1000000,"maximum":1000000},"z":{"type":"number","minimum":-1000000,"maximum":1000000}}},"rotation":{"type":"object","additionalProperties":false,"required":["x","y","z"],"properties":{"x":{"type":"number","minimum":-1000000,"maximum":1000000},"y":{"type":"number","minimum":-1000000,"maximum":1000000},"z":{"type":"number","minimum":-1000000,"maximum":1000000}}},"scale":{"type":"object","additionalProperties":false,"required":["x","y","z"],"properties":{"x":{"type":"number","minimum":-1000000,"maximum":1000000},"y":{"type":"number","minimum":-1000000,"maximum":1000000},"z":{"type":"number","minimum":-1000000,"maximum":1000000}}}}}}},{"type":"object","additionalProperties":false,"required":["kind","target","material"],"properties":{"kind":{"const":"assign-material"},"target":{"type":"string","minLength":1,"maxLength":160,"description":"Stable SceneDoc object or material ID."},"material":{"type":"string","minLength":1,"maxLength":160,"description":"Stable SceneDoc object or material ID."}}}]}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?selection=scene-root","/?selection=ambient-light","/?selection=key-light","/?selection=rim-light"]}],"category":"Developer Tools","favicon":"/favicons/gosx3d.m31labs.dev.png","apiSurface":"spec","toolCount":4}}