From 4183fdc7d3667fb4c2af72ff0098c15168c9e950 Mon Sep 17 00:00:00 2001 From: t Date: Thu, 20 Aug 2026 15:30:59 -0600 Subject: Expose a json codec to the subagents.lua sandbox Model-authored workflow Lua could reach string, table, math, and utf8 but had no way to parse an agent's report, so any fan-out over discovered work had to invent an ad-hoc line format and hand-roll string.gmatch. Hand the guest panto.ext.json instead. decode returns nil plus a message rather than raising: the sandbox deliberately has no pcall, so a raising decoder would let one malformed agent line kill an entire workflow. Teach the pattern in the injected guidance too: deterministic Lua owns the loops, counts, ordering, and gates, agents supply discovery and judgment, and a worker that feeds Lua ends its report with one parseable line. The existing static-graph example stays; a discover-then-fan-out example joins it. --- subagents/workflow.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'subagents/workflow.lua') diff --git a/subagents/workflow.lua b/subagents/workflow.lua index 3a59a8b..375285f 100644 --- a/subagents/workflow.lua +++ b/subagents/workflow.lua @@ -155,6 +155,7 @@ local function json_encode(value) end M.json_encode = json_encode +M.json_decode = json_decode -- --------------------------------------------------------------------------- -- Schema validation -- cgit v1.3