Validate configuration and test LLM API connectivity. Checks: • Configuration file exists and is valid • API key is present • API settings are correctly formatted • (Optional) API connectivity test Examples: \b # Full validation with API te
(quick: bool, verbose: bool)
| 474 | help="Show detailed validation steps" |
| 475 | ) |
| 476 | def config_validate(quick: bool, verbose: bool): |
| 477 | """ |
| 478 | Validate configuration and test LLM API connectivity. |
| 479 | |
| 480 | Checks: |
| 481 | • Configuration file exists and is valid |
| 482 | • API key is present |
| 483 | • API settings are correctly formatted |
| 484 | • (Optional) API connectivity test |
| 485 | |
| 486 | Examples: |
| 487 | |
| 488 | \b |
| 489 | # Full validation with API test |
| 490 | $ codewiki config validate |
| 491 | |
| 492 | \b |
| 493 | # Quick validation (config only) |
| 494 | $ codewiki config validate --quick |
| 495 | |
| 496 | \b |
| 497 | # Verbose output |
| 498 | $ codewiki config validate --verbose |
| 499 | """ |
| 500 | try: |
| 501 | click.echo() |
| 502 | click.secho("Validating configuration...", fg="blue", bold=True) |
| 503 | click.echo() |
| 504 | |
| 505 | manager = ConfigManager() |
| 506 | |
| 507 | # Step 1: Check config file |
| 508 | if verbose: |
| 509 | click.echo("[1/5] Checking configuration file...") |
| 510 | click.echo(f" Path: {manager.config_file_path}") |
| 511 | |
| 512 | if not manager.load(): |
| 513 | click.secho("✗ Configuration file not found", fg="red") |
| 514 | click.echo() |
| 515 | click.echo("Error: Configuration is incomplete. Run 'codewiki config set --help' for setup instructions.") |
| 516 | sys.exit(EXIT_CONFIG_ERROR) |
| 517 | |
| 518 | if verbose: |
| 519 | click.secho(" ✓ File exists", fg="green") |
| 520 | click.secho(" ✓ Valid JSON format", fg="green") |
| 521 | else: |
| 522 | click.secho("✓ Configuration file exists", fg="green") |
| 523 | |
| 524 | # Load config early so we know the provider for the rest of the checks. |
| 525 | config = manager.get_config() |
| 526 | from codewiki.src.be.backend import is_caw_provider |
| 527 | caw_mode = bool(config) and is_caw_provider(config.provider) |
| 528 | |
| 529 | # Step 2: Check API key (skipped for subscription providers) |
| 530 | if verbose: |
| 531 | click.echo() |
| 532 | click.echo("[2/5] Checking API key...") |
| 533 |
nothing calls this directly
no test coverage detected