local events = {} local reports = {} assert(loadfile("panto-herdr-scm-1.rockspec")) package.preload.panto = function() return { ext = { on = function(name, handler) events[name] = handler end, }, } end package.preload.luv = function() return { spawn = function(command, options, _) reports[#reports + 1] = { command = command, args = options.args } return { close = function() end } end, } end local getenv = os.getenv os.getenv = function(name) if name == "HERDR_PANE_ID" then return "w1:p1" end return getenv(name) end local entry = require("panto-herdr") entry.activate() events.session_start() events.user_message() events.user_message() events.tool_details({ tool_name = "read" }) events.assistant_text() events.assistant_text_complete() assert(#reports == 5) assert(reports[1].command == "herdr") assert(table.concat(reports[1].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 1") assert(table.concat(reports[3].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state working --seq 3 --custom-status tool:read") assert(table.concat(reports[5].args, " ") == "pane report-agent w1:p1 --source panto:extension --agent panto --state idle --seq 5") print("panto-herdr self-check: ok")