summaryrefslogtreecommitdiff
path: root/subagents/workflow.lua
diff options
context:
space:
mode:
authort <t@tjp.lol>2026-08-20 15:30:59 -0600
committert <t@tjp.lol>2026-08-20 15:32:46 -0600
commit4183fdc7d3667fb4c2af72ff0098c15168c9e950 (patch)
tree8bf9aecc4e21966ae6854ce8aeeed92078363724 /subagents/workflow.lua
parentb7a1f0d934cab519613e8ee2a08f052e0d56687e (diff)
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.
Diffstat (limited to 'subagents/workflow.lua')
-rw-r--r--subagents/workflow.lua1
1 files changed, 1 insertions, 0 deletions
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