Support configuring effort alongside model

This commit is contained in:
Ian Gulliver
2026-10-23 08:40:00 -07:00
parent 6bbae3fffe
commit d6d9dd86d9
40 changed files with 805 additions and 541 deletions
+8 -5
View File
@@ -46,13 +46,15 @@ func (m *Manager) subtaskTools(l *live) []mcp.Tool {
`{"type": "object", "properties": {
"title": {"type": "string", "description": "Short task title, shown in the task list."},
"prompt": {"type": "string", "description": "The new agent's first message: a complete, self-contained brief."},
"model": {"type": "string", "description": "Model for the new agent: gpt-* models run on Codex, gemini-* models on Antigravity, every other model on Claude Code. Defaults to this session's model."}
"model": {"type": "string", "description": "Model for the new agent: gpt-* models run on Codex, gemini-* models on Antigravity, every other model on Claude Code. Defaults to this session's model and effort."},
`+effortProperty+`
}, "required": ["title", "prompt"]}`,
func(ctx context.Context, creator api.User, raw json.RawMessage) (string, error) {
args := struct {
Title string `json:"title"`
Prompt string `json:"prompt"`
Model string `json:"model"`
Effort string `json:"effort"`
}{}
err := json.Unmarshal(raw, &args)
if err != nil {
@@ -73,7 +75,8 @@ func (m *Manager) subtaskTools(l *live) []mcp.Tool {
if err != nil {
return "", err
}
_, err = m.create(ctx, task, creator, "", args.Prompt, m.modelOr(args.Model, l), agentActor, "", "", nil)
model, effort := m.modelOr(args.Model, args.Effort, l)
_, err = m.create(ctx, task, creator, "", args.Prompt, model, effort, agentActor, "", "", nil)
if err != nil {
return "", fmt.Errorf("subtask %s created, but its agent did not start: %w", task.Id, err)
}
@@ -99,7 +102,7 @@ func (m *Manager) subtaskTools(l *live) []mcp.Tool {
return "", err
}
if found {
agent = fmt.Sprintf("agent %s on %s", sess.State, sess.Model)
agent = fmt.Sprintf("agent %s on %s", sess.State, modelLabel(sess))
}
fmt.Fprintf(b, "- %s %q: %s; branch %s; worktree %s", t.Id, t.Title, agent, t.Branch, t.WorktreePath)
if t.MergingIntoParent {
@@ -294,10 +297,10 @@ func (m *Manager) messageTask(ctx context.Context, task api.Task, user api.User,
return err
}
if !found {
_, err = m.create(ctx, task, user, sess.Member, text, "", actor, "", "", nil)
_, err = m.create(ctx, task, user, sess.Member, text, "", "", actor, "", "", nil)
return err
}
_, _, err = m.Message(ctx, sess.Id, actor, text, "", "", "")
_, _, err = m.Message(ctx, sess.Id, actor, text, "", "", "", "")
return err
}