summaryrefslogtreecommitdiff
path: root/internal/executor/agentmcp.go
diff options
context:
space:
mode:
authorClaudomator Agent <agent@claudomator>2026-07-09 03:16:37 +0000
committerClaudomator Agent <agent@claudomator>2026-07-09 03:16:37 +0000
commit8068dca4641393c03aec12253e7c1195943727f1 (patch)
tree227ff5cc6d57b624fb2d8efee0e8ac21fd3bc662 /internal/executor/agentmcp.go
parent5ea8f50b0c43a23af6e65bce1fe057a355cb1929 (diff)
feat(agentchannel,executor,agentloop): expose acceptance_criteria on spawn_subtask
Diffstat (limited to 'internal/executor/agentmcp.go')
-rw-r--r--internal/executor/agentmcp.go26
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