diff --git a/renderers/client.py b/renderers/client.py index 9bf008050..930ad0c89 100644 --- a/renderers/client.py +++ b/renderers/client.py @@ -261,9 +261,11 @@ async def generate( Returns a dict with: request_id, prompt_ids, renderer_prompt_ids, mm_placeholders, completion_ids, completion_logprobs, content, reasoning_content, tool_calls, finish_reason, routed_experts, - multi_modal_data, prompt_attribution. ``renderer_prompt_ids`` is the - unexpanded logical prompt when ``process_multimodal=False`` and ``None`` - otherwise. + weight_versions, multi_modal_data, prompt_attribution. + ``renderer_prompt_ids`` is the unexpanded logical prompt when + ``process_multimodal=False`` and ``None`` otherwise. ``weight_versions`` + is vLLM's (>= 0.32) list of ``{version, start, end}`` spans over + completion-token indexes, or ``None`` when the engine labels none. ``prompt_attribution`` is the renderer's :class:`RenderedTokens` for the prompt — either the one this call computed via @@ -431,6 +433,7 @@ def _prepare(): "reasoning_complete": parsed.reasoning_complete, "routed_experts": routed_experts, "sampling_mask": sampling_mask, + "weight_versions": choice.get("weight_versions"), # The mm sidecar consumed on the request side, surfaced back so # callers can persist it on the trajectory step for downstream # multi-turn bridging and training-sample construction.