{"operations":{"receiveEvents":{"channel":{"$ref":"#/channels/control"},"action":"receive","messages":[{"$ref":"#/channels/control/messages/server.configured"},{"$ref":"#/channels/control/messages/server.error"},{"$ref":"#/channels/control/messages/server.pong"},{"$ref":"#/channels/control/messages/server.prompt_applied"},{"$ref":"#/channels/control/messages/server.reset_applied"},{"$ref":"#/channels/control/messages/server.session_info"},{"$ref":"#/channels/control/messages/server.stats"},{"$ref":"#/channels/control/messages/server.stream_exhausted"}]},"sendControl":{"channel":{"$ref":"#/channels/control"},"action":"send","messages":[{"$ref":"#/channels/control/messages/client.commands"},{"$ref":"#/channels/control/messages/client.configure"},{"$ref":"#/channels/control/messages/client.keys"},{"$ref":"#/channels/control/messages/client.ping"},{"$ref":"#/channels/control/messages/client.prompt"},{"$ref":"#/channels/control/messages/client.reset"},{"$ref":"#/channels/control/messages/client.stop"}]}},"x-fal-openapi":{"operationId":"start_session_start_session_post","url":"./openapi.json"},"info":{"title":"ABotWorld0 realtime client API","version":"1.0.0","description":"Client contract for the WebRTC session created by the linked OpenAPI operation."},"defaultContentType":"application/json","asyncapi":"3.1.0","x-fal-wma":{"perspective":"client","commandWorld":{"commands":{"stateField":"/active","activatedField":"/activated","message":{"$ref":"#/channels/control/messages/client.commands"}},"startup":"automatic","ready":"first-frame","stop":{"$ref":"#/channels/control/messages/client.stop"},"setup":{"limit":"once-per-session","replay":"never","applied":{"$ref":"#/channels/control/messages/server.configured"},"message":{"$ref":"#/channels/control/messages/client.configure"}},"reset":{"payloadTemplate":{"type":"reset"},"replay":"never","applied":{"$ref":"#/channels/control/messages/server.reset_applied"},"message":{"$ref":"#/channels/control/messages/client.reset"},"inputField":"/prompt","policy":"serial"},"updates":{"payloadTemplate":{"type":"prompt"},"replay":"never","applied":{"$ref":"#/channels/control/messages/server.prompt_applied"},"message":{"$ref":"#/channels/control/messages/client.prompt"},"inputField":"/prompt","policy":"serial"},"errors":{"descriptionField":"/error","message":{"$ref":"#/channels/control/messages/server.error"}}},"profileVersion":"0.1","ended":{"$ref":"#/channels/control/messages/server.stream_exhausted"},"requiredFeatures":["command-world/1"]},"channels":{"control":{"servers":[{"$ref":"#/servers/session"}],"messages":{"server.stats":{"$ref":"#/components/messages/server.stats"},"client.commands":{"$ref":"#/components/messages/client.commands"},"server.error":{"$ref":"#/components/messages/server.error"},"client.stop":{"$ref":"#/components/messages/client.stop"},"client.reset":{"$ref":"#/components/messages/client.reset"},"client.configure":{"$ref":"#/components/messages/client.configure"},"client.prompt":{"$ref":"#/components/messages/client.prompt"},"client.keys":{"$ref":"#/components/messages/client.keys"},"server.reset_applied":{"$ref":"#/components/messages/server.reset_applied"},"server.session_info":{"$ref":"#/components/messages/server.session_info"},"server.stream_exhausted":{"$ref":"#/components/messages/server.stream_exhausted"},"server.pong":{"$ref":"#/components/messages/server.pong"},"server.configured":{"$ref":"#/components/messages/server.configured"},"client.ping":{"$ref":"#/components/messages/client.ping"},"server.prompt_applied":{"$ref":"#/components/messages/server.prompt_applied"}},"address":"fal"}},"components":{"messages":{"server.stats":{"title":"Server stats message","name":"stats","payload":{"$ref":"#/components/schemas/ABotWorld0ServerStatsMessage"}},"client.commands":{"title":"Movement","examples":[{"name":"move-forward","payload":{"active":["forward"],"activated":[],"type":"commands"}}],"name":"commands","payload":{"$ref":"#/components/schemas/ABotWorld0ClientWorldCommandsMessage"},"summary":"Move through the world and look around."},"server.error":{"title":"Server error message","name":"error","payload":{"$ref":"#/components/schemas/ABotWorld0ServerControlErrorMessage"}},"client.stop":{"title":"End session","name":"stop","payload":{"$ref":"#/components/schemas/ABotWorld0ClientStopMessage"}},"client.reset":{"title":"Restart world","examples":[{"name":"Ancient Ruins","x-fal-ui":{"tags":["Exploration"],"category":"Adventure","order":0,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/example.png","thumbnail_alt":"An explorer among golden stone columns and ivy-covered temple ruins."},"payload":{"preset":"example","type":"reset"},"summary":"Explore sunlit temple ruins, towering columns, and paths reclaimed by vines."},{"name":"Desert Valley","x-fal-ui":{"tags":["Exploration"],"category":"Desert","order":1,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/84b90ad568b693d2.png","thumbnail_alt":"A traveler wading through a desert stream between rocky cliffs and palms."},"payload":{"preset":"desert-valley","type":"reset"},"summary":"Follow a shallow stream through sandstone cliffs, palms, and distant dunes."},{"name":"Alpine Meadow","x-fal-ui":{"tags":["Exploration"],"category":"Mountains","order":2,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/20fee71742eed3c0.png","thumbnail_alt":"A narrow path crosses a grassy meadow toward a rugged mountain range."},"payload":{"preset":"alpine-meadow","type":"reset"},"summary":"Take a mountain trail across a wildflower meadow beneath an open blue sky."},{"name":"Forest Stream","x-fal-ui":{"tags":["Exploration"],"category":"Forest","order":3,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/960a962e0e710275.png","thumbnail_alt":"Stepping stones cross a clear stream surrounded by mossy rocks and trees."},"payload":{"preset":"forest-stream","type":"reset"},"summary":"Cross stepping stones over clear water and explore a shaded woodland path."},{"name":"Northern Lights","x-fal-ui":{"tags":["Exploration"],"category":"Arctic","order":4,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/fe7d590734555ed0.png","thumbnail_alt":"A traveler and fox beside a snowy river under colorful northern lights."},"payload":{"preset":"landscape","type":"reset"},"summary":"Explore a snowy riverside beneath green and violet northern lights."}],"name":"reset","payload":{"$ref":"#/components/schemas/ABotWorld0ClientWorldResetMessage"},"summary":"Start again with a different world or image."},"client.configure":{"title":"Customize world","examples":[{"name":"Ancient Ruins","x-fal-ui":{"tags":["Exploration"],"category":"Adventure","order":0,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/example.png","thumbnail_alt":"An explorer among golden stone columns and ivy-covered temple ruins."},"payload":{"preset":"example","type":"configure"},"summary":"Explore sunlit temple ruins, towering columns, and paths reclaimed by vines."},{"name":"Desert Valley","x-fal-ui":{"tags":["Exploration"],"category":"Desert","order":1,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/84b90ad568b693d2.png","thumbnail_alt":"A traveler wading through a desert stream between rocky cliffs and palms."},"payload":{"preset":"desert-valley","type":"configure"},"summary":"Follow a shallow stream through sandstone cliffs, palms, and distant dunes."},{"name":"Alpine Meadow","x-fal-ui":{"tags":["Exploration"],"category":"Mountains","order":2,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/20fee71742eed3c0.png","thumbnail_alt":"A narrow path crosses a grassy meadow toward a rugged mountain range."},"payload":{"preset":"alpine-meadow","type":"configure"},"summary":"Take a mountain trail across a wildflower meadow beneath an open blue sky."},{"name":"Forest Stream","x-fal-ui":{"tags":["Exploration"],"category":"Forest","order":3,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/960a962e0e710275.png","thumbnail_alt":"Stepping stones cross a clear stream surrounded by mossy rocks and trees."},"payload":{"preset":"forest-stream","type":"configure"},"summary":"Cross stepping stones over clear water and explore a shaded woodland path."},{"name":"Northern Lights","x-fal-ui":{"tags":["Exploration"],"category":"Arctic","order":4,"thumbnail_url":"https://raw.githubusercontent.com/fal-ai-community/ABot-World/e33d5a872df94fd6455fcf0ff4d259b20a4ee2ec/web_client/datasets/images/fe7d590734555ed0.png","thumbnail_alt":"A traveler and fox beside a snowy river under colorful northern lights."},"payload":{"preset":"landscape","type":"configure"},"summary":"Explore a snowy riverside beneath green and violet northern lights."}],"name":"configure","payload":{"$ref":"#/components/schemas/ABotWorld0ClientConfigureMessage"},"summary":"Choose how this world begins."},"client.prompt":{"title":"Update world","examples":[{"name":"follow-the-path","payload":{"prompt":"A realistic outdoor world scene with a navigable path, natural lighting, detailed ground texture, and stable forward motion.","type":"prompt"}}],"name":"prompt","payload":{"$ref":"#/components/schemas/ABotWorld0ClientWorldPromptMessage"},"summary":"Change the world description as you explore."},"client.keys":{"title":"Client keys message","name":"keys","payload":{"$ref":"#/components/schemas/ABotWorld0ClientKeysMessage"}},"server.reset_applied":{"title":"Server reset_applied message","name":"reset_applied","payload":{"$ref":"#/components/schemas/ABotWorld0ServerResetAppliedMessage"}},"server.session_info":{"title":"Server session_info message","name":"session_info","payload":{"$ref":"#/components/schemas/ABotWorld0ServerSessionInfoMessage"}},"server.stream_exhausted":{"title":"Server stream_exhausted message","name":"stream_exhausted","payload":{"$ref":"#/components/schemas/ABotWorld0ServerStreamExhaustedMessage"}},"server.pong":{"title":"Server pong message","name":"pong","payload":{"$ref":"#/components/schemas/ABotWorld0ServerPongMessage"}},"server.configured":{"title":"Server configured message","name":"configured","payload":{"$ref":"#/components/schemas/ABotWorld0ServerConfiguredMessage"}},"client.ping":{"title":"Client ping message","name":"ping","payload":{"$ref":"#/components/schemas/ABotWorld0ClientPingMessage"}},"server.prompt_applied":{"title":"Server prompt_applied message","name":"prompt_applied","payload":{"$ref":"#/components/schemas/ABotWorld0ServerPromptAppliedMessage"}}},"schemas":{"ABotWorld0ServerConfiguredMessage":{"title":"ConfiguredMessage","required":["type"],"type":"object","properties":{"type":{"title":"Type","const":"configured","type":"string","default":"configured"}}},"ABotWorld0ServerControlErrorMessage":{"title":"ControlErrorMessage","required":["type","error"],"type":"object","properties":{"error":{"title":"Error","type":"string"},"retryable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Retryable","description":"Whether retrying unchanged input may succeed; absent if unspecified.","default":null},"type":{"title":"Type","const":"error","type":"string","default":"error"}}},"ABotWorld0ServerStreamExhaustedMessage":{"type":"object","title":"StreamExhaustedMessage","required":["type"],"description":"The model has no more frames to send and the current peer is closing.\nClients must negotiate a new session to continue.","properties":{"type":{"title":"Type","const":"stream_exhausted","type":"string","default":"stream_exhausted"}}},"ABotWorld0ServerPromptAppliedMessage":{"title":"PromptAppliedMessage","required":["type"],"type":"object","properties":{"type":{"title":"Type","const":"prompt_applied","type":"string","default":"prompt_applied"}}},"ABotWorld0ServerResolutionInfo":{"title":"ResolutionInfo","required":["width","height"],"type":"object","properties":{"width":{"title":"Width","type":"integer"},"height":{"title":"Height","type":"integer"}}},"ABotWorld0ServerStatsMessage":{"title":"StatsMessage","required":["type","block_index","block_seconds","generation_fps","gpu_wait_frac","queue_age_ms_p50","queue_age_ms_max","pace_sleep_ms_avg","queue_depth"],"type":"object","properties":{"block_seconds":{"title":"Block Seconds","type":"number"},"queue_depth":{"title":"Queue Depth","type":"integer"},"generation_fps":{"title":"Generation Fps","type":"number"},"queue_age_ms_max":{"title":"Queue Age Ms Max","type":"number"},"type":{"title":"Type","const":"stats","type":"string","default":"stats"},"gpu_wait_frac":{"title":"Gpu Wait Frac","type":"number"},"pace_sleep_ms_avg":{"title":"Pace Sleep Ms Avg","type":"number"},"queue_age_ms_p50":{"title":"Queue Age Ms P50","type":"number"},"block_index":{"title":"Block Index","type":"integer"}}},"ABotWorld0ClientStopMessage":{"title":"StopMessage","required":["type"],"additionalProperties":false,"type":"object","properties":{"type":{"title":"Type","x-fal-ui":{"hidden":true},"const":"stop","type":"string","default":"stop"}}},"ABotWorld0ServerResetAppliedMessage":{"title":"ResetAppliedMessage","required":["type"],"type":"object","properties":{"type":{"title":"Type","const":"reset_applied","type":"string","default":"reset_applied"}}},"ABotWorld0ClientKeysMessage":{"type":"object","title":"KeysMessage","required":["type"],"deprecated":true,"description":"Legacy physical-key report retained for existing WMA clients.","properties":{"pressed":{"title":"Pressed","maxItems":32,"items":{"type":"string"},"type":"array"},"activated":{"title":"Activated","maxItems":32,"items":{"type":"string"},"type":"array"},"type":{"title":"Type","const":"keys","type":"string"}}},"ABotWorld0ServerPresetInfo":{"title":"PresetInfo","required":["name","prompt"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"prompt":{"title":"Prompt","type":"string"}}},"ABotWorld0ClientPingMessage":{"type":"object","title":"PingMessage","required":["type"],"description":"Latency probe; the server echoes ``ts`` back in a ``pong`` payload.","properties":{"ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts","default":null},"type":{"title":"Type","const":"ping","type":"string"}}},"ABotWorld0ClientWorldPromptMessage":{"title":"WorldPromptMessage","required":["type","prompt"],"type":"object","properties":{"prompt":{"type":"string","title":"World description","x-fal-ui":{"field":"textarea","order":0},"maxLength":2000,"description":"Change the scene's description while continuing this world.","minLength":1},"type":{"title":"Type","x-fal-ui":{"hidden":true},"const":"prompt","type":"string","default":"prompt"}}},"ABotWorld0ClientWorldResetMessage":{"title":"WorldResetMessage","required":["type"],"type":"object","properties":{"preset":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"examples":["example","desert-valley","alpine-meadow","forest-stream","landscape"],"x-fal-ui":{"hidden":true,"order":0},"title":"Starting world","description":"Choose a built-in world, or provide a starting image below.","default":null},"image_url":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"title":"Starting image","x-fal-ui":{"field":"image","order":2},"description":"Use your own image instead of a built-in world.","default":null},"prompt":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"title":"World description","x-fal-ui":{"field":"textarea","order":1},"description":"Optionally replace the starting world's description.","default":null},"type":{"title":"Type","x-fal-ui":{"hidden":true},"const":"reset","type":"string","default":"reset"}}},"ABotWorld0ServerPongMessage":{"type":"object","title":"PongMessage","required":["type"],"description":"Reply to a ``ping``, echoing the client's timestamp for RTT measurement.\n\nThe echoed timestamp has two wire spellings: apps that handle ``ping``\nthemselves echo ``ts``; the fallback handler in\n:class:`registry.wma.sdk.Session` replies with ``client_ts``. Clients read\nwhichever is present. ``server_ts`` is the (unsynchronized) runner clock; it\nonly shows how the round trip divides once the client has an offset estimate.","properties":{"client_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Client Ts","default":null},"ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts","default":null},"server_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Server Ts","default":null},"type":{"title":"Type","const":"pong","type":"string","default":"pong"}}},"ABotWorld0ClientWorldCommandsMessage":{"type":"object","title":"WorldCommandsMessage","x-fal-ui":{"conflictGroups":[["forward","backward"],["left","right"],["look_up","look_down"],["look_left","look_right"]]},"required":["type"],"description":"Semantic command-state report.\n\n``active`` contains commands currently held by the user and ``activated``\ncontains edge-triggered commands since the previous report. A browser may\nmap a keyboard, gamepad, touch control, or agent action to these names.","properties":{"active":{"title":"Active","maxItems":8,"items":{"enum":["forward","left","backward","right","look_up","look_left","look_down","look_right"],"type":"string"},"type":"array"},"activated":{"title":"Activated","maxItems":8,"items":{"enum":["forward","left","backward","right","look_up","look_left","look_down","look_right"],"type":"string"},"type":"array"},"type":{"title":"Type","const":"commands","type":"string"}}},"ABotWorld0ClientConfigureMessage":{"type":"object","title":"ConfigureMessage","required":["type"],"description":"Optionally replace the automatic default world, once per connection.\n\nAwait ``configured`` before submitting more controls. Use ``reset`` for\nsubsequent restarts. Image URL takes precedence over the preset.","properties":{"preset":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"examples":["example","desert-valley","alpine-meadow","forest-stream","landscape"],"x-fal-ui":{"hidden":true,"order":0},"title":"Starting world","description":"Choose a built-in world, or provide a starting image below.","default":null},"image_url":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"title":"Starting image","x-fal-ui":{"field":"image","order":2},"description":"Use your own image instead of a built-in world.","default":null},"prompt":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"title":"World description","x-fal-ui":{"field":"textarea","order":1},"description":"Optionally replace the starting world's description.","default":null},"type":{"title":"Type","x-fal-ui":{"hidden":true},"const":"configure","type":"string","default":"configure"}}},"ABotWorld0ServerSessionInfoMessage":{"title":"SessionInfoMessage","required":["type","model_id","model_revision","resolution","frames_per_second","frames_per_block","max_blocks","key_order","conflict_groups","default_prompt","presets","turn","turn_status"],"type":"object","properties":{"turn":{"title":"Turn","type":"boolean"},"default_prompt":{"title":"Default Prompt","type":"string"},"resolution":{"$ref":"#/components/schemas/ABotWorld0ServerResolutionInfo"},"model_id":{"title":"Model Id","type":"string"},"type":{"title":"Type","const":"session_info","type":"string","default":"session_info"},"conflict_groups":{"title":"Conflict Groups","items":{"items":{"type":"string"},"type":"array"},"type":"array"},"model_revision":{"title":"Model Revision","type":"string"},"presets":{"title":"Presets","items":{"$ref":"#/components/schemas/ABotWorld0ServerPresetInfo"},"type":"array"},"key_order":{"title":"Key Order","items":{"type":"string"},"type":"array"},"turn_status":{"title":"Turn Status","type":"string"},"frames_per_block":{"title":"Frames Per Block","type":"integer"},"frames_per_second":{"title":"Frames Per Second","type":"number"},"max_blocks":{"title":"Max Blocks","type":"integer"}}}}},"servers":{"session":{"variables":{"sessionHost":{"description":"Logical peer supplied by the OpenAPI session negotiation.","default":"runtime-assigned.invalid"}},"protocol":"webrtc","host":"{sessionHost}","x-fal-negotiated-by":"start_session_start_session_post","description":"Runtime-assigned WebRTC peer negotiated over HTTP."}},"x-fal-media":{"perspective":"client","receive":[{"settings":{"width":1280,"height":704,"frameRate":16},"kind":"video"}],"send":[]}}