parsePlaywrightTool converts raw playwright tool configuration to PlaywrightToolConfig
(val any)
| 439 | |
| 440 | // parsePlaywrightTool converts raw playwright tool configuration to PlaywrightToolConfig |
| 441 | func 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 |
| 488 | func parseWebFetchTool(val any) *WebFetchToolConfig { |