| 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 |
| } |
|
|