summaryrefslogtreecommitdiff
path: root/_selfcheck.lua
diff options
context:
space:
mode:
Diffstat (limited to '_selfcheck.lua')
-rw-r--r--_selfcheck.lua44
1 files changed, 44 insertions, 0 deletions
diff --git a/_selfcheck.lua b/_selfcheck.lua
new file mode 100644
index 0000000..b4d0396
--- /dev/null
+++ b/_selfcheck.lua
@@ -0,0 +1,44 @@
+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")