diff options
Diffstat (limited to 'internal/executor/agentmcp.go')
| -rw-r--r-- | internal/executor/agentmcp.go | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/internal/executor/agentmcp.go b/internal/executor/agentmcp.go index 35781e2..a9a195d 100644 --- a/internal/executor/agentmcp.go +++ b/internal/executor/agentmcp.go @@ -64,12 +64,13 @@ type reportSummaryInput struct { } type spawnSubtaskInput struct { - Name string `json:"name" jsonschema:"short descriptive name for the subtask"` - Instructions string `json:"instructions" jsonschema:"complete instructions for the subtask agent"` - Model string `json:"model,omitempty" jsonschema:"optional model override, e.g. sonnet or opus"` - MaxBudgetUSD float64 `json:"max_budget_usd,omitempty" jsonschema:"optional budget cap in USD"` - Role string `json:"role,omitempty" jsonschema:"optional role name to dispatch the subtask through instead of a fixed model (e.g. an evaluator role); when set, model is ignored and the role's escalation ladder picks the provider/model"` - DependsOn []string `json:"depends_on,omitempty" jsonschema:"optional list of sibling subtask IDs (returned by prior spawn_subtask calls in this same decomposition) this subtask must wait for before it can run"` + Name string `json:"name" jsonschema:"short descriptive name for the subtask"` + Instructions string `json:"instructions" jsonschema:"complete instructions for the subtask agent"` + Model string `json:"model,omitempty" jsonschema:"optional model override, e.g. sonnet or opus"` + MaxBudgetUSD float64 `json:"max_budget_usd,omitempty" jsonschema:"optional budget cap in USD"` + Role string `json:"role,omitempty" jsonschema:"optional role name to dispatch the subtask through instead of a fixed model (e.g. an evaluator role); when set, model is ignored and the role's escalation ladder picks the provider/model"` + DependsOn []string `json:"depends_on,omitempty" jsonschema:"optional list of sibling subtask IDs (returned by prior spawn_subtask calls in this same decomposition) this subtask must wait for before it can run"` + AcceptanceCriteria []string `json:"acceptance_criteria,omitempty" jsonschema:"optional list of concrete criteria this subtask's work must satisfy"` } type recordProgressInput struct { @@ -153,12 +154,13 @@ func newAgentServer(ch AgentChannel) *mcp.Server { Description: "Create a child task to be executed separately. Use this to break large work into focused pieces, then finish your turn.", }, func(ctx context.Context, _ *mcp.CallToolRequest, in spawnSubtaskInput) (*mcp.CallToolResult, any, error) { id, err := ch.SpawnSubtask(ctx, SubtaskSpec{ - Name: in.Name, - Instructions: in.Instructions, - Model: in.Model, - MaxBudgetUSD: in.MaxBudgetUSD, - Role: in.Role, - DependsOn: in.DependsOn, + Name: in.Name, + Instructions: in.Instructions, + Model: in.Model, + MaxBudgetUSD: in.MaxBudgetUSD, + Role: in.Role, + DependsOn: in.DependsOn, + AcceptanceCriteria: in.AcceptanceCriteria, }) if err != nil { return nil, nil, err |
