package toolstream import "ds2api/internal/toolcall" func findFirstToolMarkupTagByName(s string, start int, name string) (toolcall.ToolMarkupTag, bool) { return findFirstToolMarkupTagByNameFrom(s, start, name, false) } func findFirstToolMarkupTagByNameFrom(s string, start int, name string, closing bool) (toolcall.ToolMarkupTag, bool) { for pos := maxInt(start, 0); pos < len(s); { tag, ok := toolcall.FindToolMarkupTagOutsideIgnored(s, pos) if !ok { return toolcall.ToolMarkupTag{}, false } if tag.Name == name && tag.Closing == closing { return tag, true } pos = tag.End + 1 } return toolcall.ToolMarkupTag{}, false } func maxInt(a, b int) int { if a > b { return a } return b }