Print detected agent names on a single line. */
| 3152 | |
| 3153 | /* Print detected agent names on a single line. */ |
| 3154 | static void print_detected_agents(const cbm_detected_agents_t *a) { |
| 3155 | struct { |
| 3156 | bool flag; |
| 3157 | const char *name; |
| 3158 | } agents[] = { |
| 3159 | {a->claude_code, "Claude-Code"}, |
| 3160 | {a->codex, "Codex"}, |
| 3161 | {a->gemini, "Gemini-CLI"}, |
| 3162 | {a->zed, "Zed"}, |
| 3163 | {a->opencode, "OpenCode"}, |
| 3164 | {a->antigravity, "Antigravity"}, |
| 3165 | {a->aider, "Aider"}, |
| 3166 | {a->kilocode, "KiloCode"}, |
| 3167 | {a->vscode, "VS-Code"}, |
| 3168 | {a->cursor, "Cursor"}, |
| 3169 | {a->openclaw, "OpenClaw"}, |
| 3170 | {a->kiro, "Kiro"}, |
| 3171 | {a->junie, "Junie"}, |
| 3172 | }; |
| 3173 | printf("Detected agents:"); |
| 3174 | bool any = false; |
| 3175 | for (int i = 0; i < (int)(sizeof(agents) / sizeof(agents[0])); i++) { |
| 3176 | if (agents[i].flag) { |
| 3177 | printf(" %s", agents[i].name); |
| 3178 | any = true; |
| 3179 | } |
| 3180 | } |
| 3181 | if (!any) { |
| 3182 | printf(" (none)"); |
| 3183 | } |
| 3184 | printf("\n\n"); |
| 3185 | } |
| 3186 | |
| 3187 | /* Install Claude Code-specific configs (skills, MCP, hooks). */ |
| 3188 | /* ── Install plan recorder (issue #388) ──────────────────────────── |
no outgoing calls
no test coverage detected