Print the startup banner with graph art and available commands.
()
| 89 | |
| 90 | |
| 91 | def _print_banner() -> None: |
| 92 | """Print the startup banner with graph art and available commands.""" |
| 93 | color = _supports_color() |
| 94 | version = _get_version() |
| 95 | |
| 96 | # ANSI escape codes |
| 97 | c = "\033[36m" if color else "" # cyan — graph art |
| 98 | y = "\033[33m" if color else "" # yellow — center node |
| 99 | b = "\033[1m" if color else "" # bold |
| 100 | d = "\033[2m" if color else "" # dim |
| 101 | g = "\033[32m" if color else "" # green — commands |
| 102 | r = "\033[0m" if color else "" # reset |
| 103 | |
| 104 | print(f""" |
| 105 | {c} ●──●──●{r} |
| 106 | {c} │╲ │ ╱│{r} {b}code-review-graph{r} {d}v{version}{r} |
| 107 | {c} ●──{y}◆{c}──●{r} |
| 108 | {c} │╱ │ ╲│{r} {d}Structural knowledge graph for{r} |
| 109 | {c} ●──●──●{r} {d}smarter code reviews{r} |
| 110 | |
| 111 | {b}Commands:{r} |
| 112 | {g}install{r} Set up MCP server for AI coding platforms |
| 113 | {g}init{r} Alias for install |
| 114 | {g}build{r} Full graph build {d}(parse all files){r} |
| 115 | {g}update{r} Incremental update {d}(changed files only){r} |
| 116 | {g}watch{r} Auto-update on file changes |
| 117 | {g}status{r} Show graph statistics |
| 118 | {g}visualize{r} Generate interactive HTML graph |
| 119 | {g}wiki{r} Generate markdown wiki from communities |
| 120 | {g}detect-changes{r} Analyze change impact {d}(risk-scored review){r} |
| 121 | {g}register{r} Register a repository in the multi-repo registry |
| 122 | {g}unregister{r} Remove a repository from the registry |
| 123 | {g}repos{r} List registered repositories |
| 124 | {g}postprocess{r} Run post-processing {d}(flows, communities, FTS){r} |
| 125 | {g}daemon{r} Multi-repo watch daemon management |
| 126 | {g}eval{r} Run evaluation benchmarks |
| 127 | {g}serve{r} Start MCP server {d}(stdio, or {g}--http{r} on localhost:5555){r} |
| 128 | |
| 129 | {d}Run{r} {b}code-review-graph <command> --help{r} {d}for details{r} |
| 130 | """) |
| 131 | |
| 132 | |
| 133 | def _instruction_files_to_modify( |
no test coverage detected