Serve the Go build seat's verbs from the SDK's one form (issue 1887 A3go)

This commit is contained in:
2026-10-23 15:38:19 +02:00
parent d0ba022d20
commit 6e823d1f9b
@@ -106,28 +106,5 @@ func (m *Module) Puller(steps []StepTool, source buildstep.AskSource) *buildstep
// SeatTools are the seat's verbs on this node (ADR 0525 §10): what it runs, and its pause and resume.
func (m *Module) SeatTools(p *buildstep.Puller) []stdio.Tool {
verb := func(name, description string, run func() (any, error)) stdio.Tool {
return stdio.Tool{Name: Seat + "." + name, Description: description,
Input: map[string]any{"type": "object", "properties": map[string]any{}},
Run: func(map[string]any) (any, error) { return run() }}
}
current := func() (any, error) {
return map[string]any{"node": m.Node, "capacity": p.Capacity(), "running": p.InHand(), "paused": p.Paused()}, nil
}
return []stdio.Tool{
verb("current", "The Go asks this node runs now, its build capacity, and whether it is paused.", current),
verb("pause", "Take no new Go ask on this node until resumed; an ask running here ends in its place. Kept across a restart.",
func() (any, error) {
if err := p.Pause("the seat's pause verb"); err != nil {
return nil, err
}
return current()
}),
verb("resume", "Take Go asks again on this node.", func() (any, error) {
if err := p.Resume("the seat's resume verb"); err != nil {
return nil, err
}
return current()
}),
}
return buildstep.SeatTools(Seat, "Go", p)
}