Skip to main content
Each trace is a JSON Lines file under examples/v0.1/traces/. Every line is either a message, { from, step, msg }, or a transport event that is not a message, { marker }. CI validates every message against the canonical schema for its method, matches every response to its request, checks that status_seq increases by exactly one across statuses, events, and session-state notifications (AWP-CTL-008), and checks frame seq per channel (AWP-DAT-001). Tokens are illustrative.

Core flow, lockstep

Discovery, session opening, the initial observation, one extended action across two advances with progress and completion, and closure, on the inline binding against a grid world. Source: core-lockstep.jsonl. 1. Discovery: the agent states its versions and modalities — agent → world
2. The world answers with its manifest under the selected version — world → agent
3. Open a lockstep session on avatar_0, subscribe to grid_view, request tick authority — agent → world
4. session.ready enumerates exactly what was granted; tick is 0 — world → agent
5. Session transition to ready — world → agent
6. Initial observation for tick 0 (AWP-TIM-009) — world → agent
7. First observation delivered: session active — world → agent
8. Heartbeat carrying the agent clock — agent → world
9. Pong with session-clock receive and transmit stamps — world → agent
10. Submit an extended action; it is admitted and staged until the next advance (AWP-TIM-010) — agent → world
11. Admission acknowledgement: accepted, with receipt and transition time — world → agent
12. Advance one tick from tick 0 — agent → world
13. The staged action begins executing at the start of the advance — world → agent
14. Frame for tick 1 — world → agent
15. Tick result after statuses and frames — world → agent
16. Advance again — agent → world
17. The action reaches its goal — world → agent
18. Frame for tick 2 — world → agent
19. Tick result — world → agent
20. Close the session — agent → world
21. Session closed; the embodiment is released — world → agent
22. Close acknowledged — world → agent

Core flow, streaming

The same flow against a streaming manipulator: clock synchronization on the heartbeat, frames with capture and send time, a submission naming its basis, progress, completion, telemetry in both directions, and closure. Source: core-streaming.jsonl. 1. Discovery — agent → world
2. World manifest: streaming only, safe state declared, basis age bounded — world → agent
3. Open a streaming session on arm_01 with two channels — agent → world
4. session.ready: grants, envelopes, stream endpoints, frame tree, clock anchor — world → agent
Transport. The agent selects the inline binding; frames below travel as obs.frame notifications on the control connection.
5. Session ready — world → agent
6. Clock synchronization on the heartbeat (AWP-CLK-007) — agent → world
7. Pong; the agent derives rtt 50 µs and offset 912998975000 ns (AWP-CLK-008) — world → agent
8. Proprioception frame with capture and send time — world → agent
9. Camera frame; JPEG bytes elided — world → agent
10. First observation delivered: session active — world → agent
11. Submit naming its basis frame and a validity window (AWP-ACT-007) — agent → world
12. Admitted 29 ms after the basis was captured — world → agent
13. Execution begins immediately in streaming — world → agent
14. Frames keep flowing while the action executes — world → agent
15. Progress update (AWP-LIF-003) — world → agent
16. Goal reached — world → agent
17. Telemetry for the last second (AWP-TIM-006) — world → agent
18. Receiver report (AWP-OBS-007) — agent → world
19. Close — agent → world
20. Closed; the arm enters safe_stop, then the embodiment is released — world → agent
21. Close acknowledged — world → agent

Cancellation during execution

An executing extended action is cancelled: the world enters cancelling, completes its safe abort, and reports cancelled with the progress reached. Source: cancel.jsonl.
Transport. Continues the streaming trace after a-7 began executing (status_seq 4).
1. Progress update — world → agent
2. Cancel the executing action — agent → world
3. Executing actions enter cancelling while the safe abort runs (AWP-LIF-005) — world → agent
4. Safe abort complete within max_abort_ms; progress reached is reported — world → agent

Disconnection, watchdog, resumption

The control connection drops mid-execution. The watchdog enters safe state and terminates the action while the agent is away; the agent reconnects, resumes, receives every missed notification in order, and regains control with a new submission. Source: disconnect.jsonl.
Transport. Continues the streaming trace after a-7 began executing (status_seq 4). The agent’s last message reached the world at t0 = 913004142000.
Transport. The control connection drops. t0 + 2000 ms: the watchdog expires (AWP-SAF-003); the world begins safe_stop, fails a-7, and records the notifications below for replay (AWP-SAF-004).
Transport. t0 + 15000 ms: three heartbeat intervals without a pong; the session is Suspended (AWP-SAF-002). The stream endpoint is closed with the connection.
1. Reconnect: a new control connection begins with initialize — agent → world
2. Same manifest; the world process did not restart — world → agent
3. Resume with the session token and the last status_seq processed — agent → world
4. session.ready again; the embodiment is in safe state (AWP-SAF-008) — world → agent
5. Replay 1 of 4: the action failed at watchdog expiry — world → agent
6. Replay 2 of 4 — world → agent
7. Replay 3 of 4: the suspension the agent could not receive at the time — world → agent
8. Replay 4 of 4, then live: resumed — world → agent
9. First frame after resumption: a keyframe carrying resync (AWP-DAT-009) — world → agent
10. A new intent is required to move again (AWP-SAF-008) — agent → world
11. Admitted — world → agent
12. Safe state exits when the first post-resume action begins executing — world → agent
13. Control regained — world → agent