mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-08 00:47:36 +08:00
change: remove call function tool
This commit is contained in:
@@ -1 +1 @@
|
|||||||
v5.0.0-beta-2505260035
|
v5.0.0-beta-2505260043
|
||||||
|
|||||||
-10
@@ -447,16 +447,6 @@ func (s *StepMobile) ClosePopups(opts ...option.ActionOption) *StepMobile {
|
|||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StepMobile) Call(name string, fn func(), opts ...option.ActionOption) *StepMobile {
|
|
||||||
s.obj().Actions = append(s.obj().Actions, uixt.MobileAction{
|
|
||||||
Method: option.ACTION_CallFunction,
|
|
||||||
Params: name, // function description
|
|
||||||
Fn: fn,
|
|
||||||
Options: option.NewActionOptions(opts...),
|
|
||||||
})
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate switches to step validation.
|
// Validate switches to step validation.
|
||||||
func (s *StepMobile) Validate() *StepMobileUIValidation {
|
func (s *StepMobile) Validate() *StepMobileUIValidation {
|
||||||
return &StepMobileUIValidation{
|
return &StepMobileUIValidation{
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import (
|
|||||||
type MobileAction struct {
|
type MobileAction struct {
|
||||||
Method option.ActionMethod `json:"method,omitempty" yaml:"method,omitempty"`
|
Method option.ActionMethod `json:"method,omitempty" yaml:"method,omitempty"`
|
||||||
Params interface{} `json:"params,omitempty" yaml:"params,omitempty"`
|
Params interface{} `json:"params,omitempty" yaml:"params,omitempty"`
|
||||||
Fn func() `json:"-" yaml:"-"` // used for function action, not serialized
|
|
||||||
Options *option.ActionOptions `json:"options,omitempty" yaml:"options,omitempty"`
|
Options *option.ActionOptions `json:"options,omitempty" yaml:"options,omitempty"`
|
||||||
option.ActionOptions
|
option.ActionOptions
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,7 +142,6 @@ func (s *MCPServer4XTDriver) registerTools() {
|
|||||||
s.registerTool(&ToolSetIme{})
|
s.registerTool(&ToolSetIme{})
|
||||||
s.registerTool(&ToolGetSource{})
|
s.registerTool(&ToolGetSource{})
|
||||||
s.registerTool(&ToolClosePopups{})
|
s.registerTool(&ToolClosePopups{})
|
||||||
s.registerTool(&ToolCallFunction{})
|
|
||||||
s.registerTool(&ToolAIAction{})
|
s.registerTool(&ToolAIAction{})
|
||||||
|
|
||||||
// PC/Web actions
|
// PC/Web actions
|
||||||
@@ -2102,56 +2101,6 @@ func (t *ToolClosePopups) ConvertActionToCallToolRequest(action MobileAction) (m
|
|||||||
return buildMCPCallToolRequest(t.Name(), map[string]any{}), nil
|
return buildMCPCallToolRequest(t.Name(), map[string]any{}), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToolCallFunction implements the call_function tool call.
|
|
||||||
type ToolCallFunction struct{}
|
|
||||||
|
|
||||||
func (t *ToolCallFunction) Name() option.ActionMethod {
|
|
||||||
return option.ACTION_CallFunction
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ToolCallFunction) Description() string {
|
|
||||||
return "Call a custom function with description"
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ToolCallFunction) Options() []mcp.ToolOption {
|
|
||||||
return option.NewMCPOptions(option.CallFunctionRequest{})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ToolCallFunction) Implement() server.ToolHandlerFunc {
|
|
||||||
return func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
|
|
||||||
driverExt, err := setupXTDriver(ctx, request.Params.Arguments)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("setup driver failed: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var funcReq option.CallFunctionRequest
|
|
||||||
if err := mapToStruct(request.Params.Arguments, &funcReq); err != nil {
|
|
||||||
return nil, fmt.Errorf("parse parameters error: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call function action logic
|
|
||||||
// Note: The function (fn) parameter is not available in MCP calls
|
|
||||||
// This is a simplified implementation that only logs the description
|
|
||||||
log.Info().Str("description", funcReq.Description).Msg("calling function")
|
|
||||||
err = driverExt.Call(funcReq.Description, nil)
|
|
||||||
if err != nil {
|
|
||||||
return mcp.NewToolResultError(fmt.Sprintf("Call function failed: %s", err.Error())), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return mcp.NewToolResultText(fmt.Sprintf("Successfully called function: %s", funcReq.Description)), nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ToolCallFunction) ConvertActionToCallToolRequest(action MobileAction) (mcp.CallToolRequest, error) {
|
|
||||||
if description, ok := action.Params.(string); ok {
|
|
||||||
arguments := map[string]any{
|
|
||||||
"description": description,
|
|
||||||
}
|
|
||||||
return buildMCPCallToolRequest(t.Name(), arguments), nil
|
|
||||||
}
|
|
||||||
return mcp.CallToolRequest{}, fmt.Errorf("invalid call function params: %v", action.Params)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ToolAIAction implements the ai_action tool call.
|
// ToolAIAction implements the ai_action tool call.
|
||||||
type ToolAIAction struct{}
|
type ToolAIAction struct{}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ const (
|
|||||||
ACTION_SetIme ActionMethod = "set_ime"
|
ACTION_SetIme ActionMethod = "set_ime"
|
||||||
ACTION_GetSource ActionMethod = "get_source"
|
ACTION_GetSource ActionMethod = "get_source"
|
||||||
ACTION_GetForegroundApp ActionMethod = "get_foreground_app"
|
ACTION_GetForegroundApp ActionMethod = "get_foreground_app"
|
||||||
ACTION_CallFunction ActionMethod = "call_function"
|
|
||||||
|
|
||||||
// UI handling
|
// UI handling
|
||||||
ACTION_Home ActionMethod = "home"
|
ACTION_Home ActionMethod = "home"
|
||||||
|
|||||||
Reference in New Issue
Block a user