err:=q.QueryRowContext(ctx,`SELECT description FROM workflow_definitions WHERE id = ?`,id).Scan(&def.Description)
iferrors.Is(err,sql.ErrNoRows){
returndef,fmt.Errorf("%w: no workflow definition %s",ErrNotFound,id)
}
iferr!=nil{
returndef,err
}
agents:=map[int][]api.TeamMember{}
rows,err:=q.QueryContext(ctx,`SELECT step_id, name, model, prompt FROM workflow_agents WHERE definition_id = ? ORDER BY step_id, position`,id)
iferr!=nil{
returndef,err
}
forrows.Next(){
step:=0
a:=api.TeamMember{}
err=rows.Scan(&step,&a.Name,&a.Model,&a.Prompt)
iferr!=nil{
rows.Close()
returndef,err
}
agents[step]=append(agents[step],a)
}
err=errors.Join(rows.Err(),rows.Close())
iferr!=nil{
returndef,err
}
children:=map[int][]stepRow{}
rows,err=q.QueryContext(ctx,`SELECT id, coalesce(parent, -1), kind, stage, model, prompt FROM workflow_steps WHERE definition_id = ? ORDER BY coalesce(parent, -1), position`,id)