From 286d2667230d7a10f7694aa81fdc781056ca165d Mon Sep 17 00:00:00 2001 From: "CJACK." Date: Sun, 8 Mar 2026 02:38:29 +0800 Subject: [PATCH] Revert "Resolve PR #82 merge conflicts and restore tool-call parsing (invoke/argument and XML arguments)" --- internal/util/toolcalls_parse_markup.go | 26 ------------------------- internal/util/toolcalls_test.go | 1 + 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/internal/util/toolcalls_parse_markup.go b/internal/util/toolcalls_parse_markup.go index 355a464..b7b2908 100644 --- a/internal/util/toolcalls_parse_markup.go +++ b/internal/util/toolcalls_parse_markup.go @@ -15,7 +15,6 @@ var antmlArgumentPattern = regexp.MustCompile(`(?is)<(?:[a-z0-9_]+:)?argument\s+ var antmlParametersPattern = regexp.MustCompile(`(?is)<(?:[a-z0-9_]+:)?parameters\s*>\s*(\{.*?\})\s*`) var invokeCallPattern = regexp.MustCompile(`(?is)(.*?)`) var invokeParamPattern = regexp.MustCompile(`(?is)\s*(.*?)\s*`) -var invokeArgumentPattern = regexp.MustCompile(`(?is)\s*(.*?)\s*`) func parseXMLToolCalls(text string) []ParsedToolCall { matches := xmlToolCallPattern.FindAllString(text, -1) @@ -112,14 +111,6 @@ func parseSingleXMLToolCall(block string) (ParsedToolCall, bool) { } } } - if fallback := parseMarkupSingleToolCall("", inner); fallback.Name != "" { - if strings.TrimSpace(name) == "" { - name = fallback.Name - } - if len(params) == 0 && strings.EqualFold(strings.TrimSpace(fallback.Name), strings.TrimSpace(name)) { - params = fallback.Input - } - } if strings.TrimSpace(name) == "" { return ParsedToolCall{}, false } @@ -219,23 +210,6 @@ func parseInvokeFunctionCallStyle(text string) (ParsedToolCall, bool) { input[k] = v } } - for _, am := range invokeArgumentPattern.FindAllStringSubmatch(m[2], -1) { - if len(am) < 3 { - continue - } - key := strings.TrimSpace(am[1]) - raw := strings.TrimSpace(am[2]) - if raw == "" { - continue - } - if key != "" { - input[key] = raw - continue - } - for k, v := range parseToolCallInput(raw) { - input[k] = v - } - } return ParsedToolCall{Name: name, Input: input}, true } diff --git a/internal/util/toolcalls_test.go b/internal/util/toolcalls_test.go index fb5c246..3ace015 100644 --- a/internal/util/toolcalls_test.go +++ b/internal/util/toolcalls_test.go @@ -271,6 +271,7 @@ func TestParseToolCallsSupportsMultipleAntmlFunctionCalls(t *testing.T) { t.Fatalf("expected canonical names [bash read], got %#v", calls) } } + func TestParseToolCallsDoesNotAcceptMismatchedMarkupTags(t *testing.T) { text := `read_file{"path":"README.md"}` calls := ParseToolCalls(text, []string{"read_file"})