# Documentation Index ## Quick Start - **[Quick Start Guide](../CONSOLE_VARIANT_QUICKSTART.md)** - Get up and running fast - **[Debugging Guide](../DEBUGGING.md)** - How to debug GUI and console variants ## Console Variants - **[Console Variants Guide](console-variants.md)** - Full guide to console variants - **[CMake Options](cmake-options.md)** - All configuration options - **[Console Variant Setup](CONSOLE_VARIANT_SETUP.md)** - Implementation details ## CLI/Headless Mode - **[CLI Architecture](cli.md)** ⭐ - Architectural options for true CLI mode - **[CLI Implementation Example](cli-implementation-example.md)** - Concrete implementation guide ## Feature Guides - **[Groups & Containers](groups-container-api.md)** - Container system API - **[Groups Architecture](groups-container-architecture.md)** - Container system architecture - **[Waypoints](waypoints.md)** - Waypoint system - **[Shortcuts](shortcuts.md)** - Keyboard shortcuts - **[Screenshots](screen.md)** - Taking screenshots - **[MCP Screenshots](taking-screenshots-mcp.md)** - Using MCP for screenshots - **[Plugins](plugins-js.md)** - Plugin system ## Technical Documentation - **[Classes Documentation](../docs-classes.md)** - Class reference - **[Complete Solution Summary](COMPLETE_SOLUTION_SUMMARY.md)** - Full solution overview - **[Implementation Summary](IMPLEMENTATION_SUMMARY.md)** - Implementation details - **[TODO](TODO.md)** - Future enhancements ## Test Reports - **[Window State Test](WINDOW_STATE_TEST_REPORT.md)** - Window state persistence tests - **[Zoom to Content Fix](ZOOM_TO_CONTENT_FIX.md)** - Zoom functionality fixes ## Current State (Nov 2025) ### Console Variants ✅ - **GUI Variant**: Standard Windows application with console attachment - **Console Variant**: Always-visible console for debugging - **Visual Studio**: Console variant is default startup project - **Build Scripts**: Support for both variants ### CLI Mode 🚧 - **Status**: Architecture documented, implementation ready - **Options**: 5 architectural approaches analyzed - **Recommendation**: Start with Option 1 (Headless Flag) for quick wins - **Next Step**: Implement headless mode following [cli-implementation-example.md](cli-implementation-example.md) ## Architecture Summary ``` Current Architecture: blueprints-example.exe (GUI with console attach) blueprints-example-console.exe (GUI + always-visible console) Proposed CLI Architecture: --headless flag → RunCLI() (No UI, true CLI mode) (default) → App.Run() (Full UI as before) ``` ## Quick Reference ### Build Commands ```bash # GUI variant ./scripts/build.sh Debug # Console variant ./scripts/build.sh Debug console # Both cmake --build build --config Debug ``` ### Run Commands ```bash # GUI ./build/bin/blueprints-example_d.exe --file graph.json # Console ./build/bin/blueprints-example-console_d.exe --file graph.json # CLI (once implemented) ./build/bin/blueprints-example-console_d.exe --headless --file graph.json --command validate ``` ### Visual Studio ```bash # Open solution (console variant is default startup) start build\imgui-node-editor.sln # Press F5 to debug console variant ``` ### CMake Options ```bash # Default: Both variants, console as startup cmake -S examples -B build # GUI only cmake -S examples -B build -DBUILD_CONSOLE_VARIANTS=OFF # Both, GUI as startup cmake -S examples -B build -DUSE_CONSOLE_AS_STARTUP=OFF ``` ## Getting Started with CLI Mode 1. Read **[CLI Architecture](cli.md)** to understand options 2. Follow **[CLI Implementation Example](cli-implementation-example.md)** for step-by-step guide 3. Start with Option 1 (Headless Flag) - minimal changes, maximum benefit 4. Test with: `--headless --file graph.json --command validate` 5. Refactor to Option 3 or 4 later if needed ## Key Decisions Made | Decision | Choice | Rationale | |----------|--------|-----------| | Console Variants | Build both by default | Better development experience | | VS Startup Project | Console variant | Immediate console output for debugging | | Entry Point | Shared `entry_point.cpp` | Reuse CLI parsing, single codebase | | CLI Mode | Headless flag (recommended) | Quick to implement, validates use cases | ## Contributing When adding new features: - GUI features → Add to `app.cpp` / `app-*.cpp` - CLI commands → Add to `blueprints-cli.cpp` (once created) - Core logic → Extract to separate files for reuse - Document in appropriate guide above