@@ -281,6 +281,15 @@ describe("MultiProvider", function()
281281
282282 assert .is_nil (result )
283283 end )
284+
285+ it (" should extract content from Responses API output_text delta" , function ()
286+ local input =
287+ ' data: {"type":"response.output_text.delta","item_id":"msg_123","output_index":0,"content_index":0,"delta":" Hello"}'
288+
289+ local result = provider :process_stdout (input )
290+
291+ assert .equals (" Hello" , result )
292+ end )
284293 end )
285294
286295 describe (" preprocess_payload" , function ()
@@ -336,6 +345,56 @@ describe("MultiProvider", function()
336345 local result = provider :preprocess_payload (input )
337346 assert .are .same (result , expected )
338347 end )
348+
349+ it (" should use input for /responses endpoints" , function ()
350+ local responses_provider = MultiProvider :new ({
351+ name = " xai" ,
352+ endpoint = " https://api.x.ai/v1/responses" ,
353+ api_key = " test_api_key" ,
354+ model = { " grok-4.5" },
355+ })
356+
357+ local result = responses_provider :preprocess_payload ({
358+ messages = {
359+ { role = " system" , content = " You are Grok. " },
360+ { role = " user" , content = " Hi " },
361+ },
362+ model = " grok-4.5" ,
363+ stream = true ,
364+ temperature = 1.1 ,
365+ top_p = 1 ,
366+ max_output_tokens = 64 ,
367+ })
368+
369+ assert .is_nil (result .messages )
370+ assert .equals (64 , result .max_output_tokens )
371+ assert .equals (" You are Grok." , result .input [1 ].content )
372+ assert .equals (" Hi" , result .input [2 ].content )
373+ assert .equals (" grok-4.5" , result .model )
374+ end )
375+ end )
376+
377+ describe (" process_onexit responses" , function ()
378+ it (" should extract text from Responses API output" , function ()
379+ local input = vim .json .encode ({
380+ id = " resp_123" ,
381+ object = " response" ,
382+ status = " completed" ,
383+ output = {
384+ {
385+ type = " message" ,
386+ role = " assistant" ,
387+ content = {
388+ { type = " output_text" , text = " Hello from responses" },
389+ },
390+ },
391+ },
392+ })
393+
394+ local result = provider :process_onexit (input )
395+
396+ assert .equals (" Hello from responses" , result )
397+ end )
339398 end )
340399
341400 describe (" verify" , function ()
0 commit comments