internal/mcp: use RawMessage for tool args
Change the type of CallToolParams.Arguments to json.RawMessage. Change-Id: Ief16ef261b9f41566a1a16efc60a9382a8d414eb Reviewed-on: https://go-review.googlesource.com/c/tools/+/672615 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
parent
6394485a3d
commit
bbd253ee4c
1 changed files with 17 additions and 20 deletions
|
|
@ -181,18 +181,14 @@ func (c *Client) CallTool(ctx context.Context, name string, args map[string]any,
|
|||
err = fmt.Errorf("calling tool %q: %w", name, err)
|
||||
}
|
||||
}()
|
||||
argsJSON := make(map[string]json.RawMessage)
|
||||
for name, arg := range args {
|
||||
argJSON, err := json.Marshal(arg)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("marshaling argument %s: %v", name, err)
|
||||
}
|
||||
argsJSON[name] = argJSON
|
||||
}
|
||||
|
||||
data, err := json.Marshal(args)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("marshaling arguments: %w", err)
|
||||
}
|
||||
params := &CallToolParams{
|
||||
Name: name,
|
||||
Arguments: argsJSON,
|
||||
Arguments: json.RawMessage(data),
|
||||
}
|
||||
return standardCall[CallToolResult](ctx, c.conn, "tools/call", params)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue