--- Recorded `pi --mode rpc` output. --- Every fixture comes from a real run with the user's own Pi configuration --- loaded, so extension traffic is part of the recording. local jsonl = require 'bugabinga.pivi.jsonl' local ROOT = 'tests/fixtures/pivi/' local text = function( name ) return table.concat( vim.fn.readfile( ROOT .. name ), '\n' ) .. '\n' end --- @return table[] frames every decoded record, in recorded order local frames = function( name ) local splitter = jsonl.splitter() local decoded = {} for _, record in ipairs( splitter.feed( text( name ) ) ) do local frame = jsonl.parse( record ) if frame then table.insert( decoded, frame ) end end return decoded end local of_type = function( name, kind ) local found = {} for _, frame in ipairs( frames( name ) ) do if frame.type == kind then table.insert( found, frame ) end end return found end --- @return table[] deltas the `assistantMessageEvent` payloads, in order local deltas = function( name ) local found = {} for _, frame in ipairs( of_type( name, 'message_update' ) ) do if frame.assistantMessageEvent then table.insert( found, frame.assistantMessageEvent ) end end return found end return { root = ROOT, text = text, frames = frames, of_type = of_type, deltas = deltas, }