summaryrefslogtreecommitdiff
path: root/subagents/spawn.lua
diff options
context:
space:
mode:
Diffstat (limited to 'subagents/spawn.lua')
-rw-r--r--subagents/spawn.lua10
1 files changed, 4 insertions, 6 deletions
diff --git a/subagents/spawn.lua b/subagents/spawn.lua
index a83e442..b355d9a 100644
--- a/subagents/spawn.lua
+++ b/subagents/spawn.lua
@@ -230,8 +230,8 @@ local function read_stored(conv)
local manifest
for index = 1, #messages do
if messages[index].role == "system" then
- local metadata = conv:message_metadata(index)
- if type(metadata) == "table" then
+ local got, metadata = try(conv.message_metadata, conv, index)
+ if got and type(metadata) == "table" then
manifest = metadata
break
end
@@ -241,8 +241,8 @@ local function read_stored(conv)
local defaults = {}
for index = #messages, 1, -1 do
if messages[index].role == "user" then
- local metadata = conv:message_metadata(index)
- local mine = type(metadata) == "table" and metadata.subagents or nil
+ local got, metadata = try(conv.message_metadata, conv, index)
+ local mine = got and type(metadata) == "table" and metadata.subagents or nil
if type(mine) == "table" then
defaults.model = nonempty(mine.model)
defaults.reasoning = nonempty(mine.reasoning)
@@ -488,9 +488,7 @@ function M.spawn(spec)
end
local handle, start_err = jobs.start {
- label = spec.label,
id = id,
- one_shot = one_shot,
build = function(wake_fd)
local job, err = agent:run_async {
prompt = spec.prompt,