MCPcopy Create free account
hub / github.com/github/gh-aw / parsePlaywrightTool

Function parsePlaywrightTool

pkg/workflow/tools_parser.go:441–485  ·  view source on GitHub ↗

parsePlaywrightTool converts raw playwright tool configuration to PlaywrightToolConfig

(val any)

Source from the content-addressed store, hash-verified

439
440// parsePlaywrightTool converts raw playwright tool configuration to PlaywrightToolConfig
441func parsePlaywrightTool(val any) *PlaywrightToolConfig {
442 if val == nil {
443 toolsParserLog.Print("Playwright tool enabled with default configuration")
444 return &PlaywrightToolConfig{}
445 }
446 toolsParserLog.Print("Parsing playwright tool configuration")
447
448 if configMap, ok := val.(map[string]any); ok {
449 config := &PlaywrightToolConfig{}
450
451 // Handle version field - can be string or number
452 if version, ok := configMap["version"].(string); ok {
453 config.Version = version
454 } else if versionNum, ok := configMap["version"].(int); ok {
455 config.Version = strconv.Itoa(versionNum)
456 } else if versionNum, ok := configMap["version"].(int64); ok {
457 config.Version = strconv.FormatInt(versionNum, 10)
458 } else if versionNum, ok := configMap["version"].(float64); ok {
459 config.Version = fmt.Sprintf("%g", versionNum)
460 }
461
462 // Handle args field - can be []any or []string
463 if argsValue, ok := configMap["args"]; ok {
464 if arr, ok := argsValue.([]any); ok {
465 config.Args = make([]string, 0, len(arr))
466 for _, item := range arr {
467 if str, ok := item.(string); ok {
468 config.Args = append(config.Args, str)
469 }
470 }
471 } else if arr, ok := argsValue.([]string); ok {
472 config.Args = arr
473 }
474 }
475
476 // Handle mode field
477 if mode, ok := configMap["mode"].(string); ok {
478 config.Mode = mode
479 }
480
481 return config
482 }
483
484 return &PlaywrightToolConfig{}
485}
486
487// parseWebFetchTool converts raw web-fetch tool configuration
488func parseWebFetchTool(val any) *WebFetchToolConfig {

Callers 6

isPlaywrightCLIModeFunction · 0.85
TestArgsFieldFunction · 0.85
NewToolsFunction · 0.85
RenderPlaywrightMCPMethod · 0.85

Calls 1

PrintMethod · 0.80

Tested by 1

TestArgsFieldFunction · 0.68