{"owner":"BornToBeRoot","repo":"NETworkManager","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md","AGENTS.md"],"skills":{"CLAUDE.md":"See [AGENTS.md](AGENTS.md) for project guidelines and conventions.\n","AGENTS.md":"# NETworkManager - Repository Guide for AI Agents\n\n## Repository Overview\n\n**NETworkManager** is a comprehensive, enterprise-ready network management and troubleshooting application built with C# and WPF. It provides a unified interface for network administrators and IT professionals to manage, monitor, and troubleshoot network infrastructure using tools like Remote Desktop, PuTTY (SSH, Telnet, Serial, etc.), PowerShell (k9s, WSL, etc.), TigerVNC, network scanners (IP scanner, Port scanner, WiFi Analyzer), and diagnostic utilities (Ping monitor, traceroute, etc.).\n\n- **Repository**: https://github.com/BornToBeRoot/NETworkManager\n- **License**: GNU General Public License v3\n- **Primary Language**: C# (.NET 10)\n- **UI Framework**: WPF (Windows Presentation Foundation) with `MahApps.Metro`\n- **Documentation**: Docusaurus-based website and documentation at https://borntoberoot.net/NETworkManager\n- **Platform**: Windows (x64)\n\n## Project Structure\n\n### Source Code Organization\n\nThe repository is organized into multiple C# projects following a modular architecture:\n\n```\nREPOSITORY_ROOT/\n├── Source/                           # Main source code directory\n│   ├── NETworkManager/               # Main WPF application (Views, ViewModels, Controls)\n│   ├── NETworkManager.Models/        # Business logic and data models\n│   ├── NETworkManager.Utilities/     # Helper classes and utilities\n│   ├── NETworkManager.Utilities.WPF/ # WPF-specific utilities\n│   ├── NETworkManager.Converters/    # WPF value converters\n│   ├── NETworkManager.Validators/    # Input validation logic\n│   ├── NETworkManager.Controls/      # Custom WPF controls\n│   ├── NETworkManager.Localization/  # Internationalization resources\n│   ├── NETworkManager.Settings/      # Application settings management\n│   ├── NETworkManager.Profiles/      # Profile management\n│   ├── NETworkManager.Update/        # Update functionality\n│   ├── NETworkManager.Documentation/ # Documentation resources\n│   ├── NETworkManager.Setup/         # WiX installer project\n│   └── 3rdparty/                     # Third-party dependencies (e.g., Dragablz)\n│       └── (managed-manually)        # NOTE: Maintained manually — AI agents MUST NOT modify this directory\n├── Website/                          # Docusaurus documentation website\n├── Scripts/                          # Build and automation scripts\n│   ├── Create-FileHash.ps1           # Generate file hashes\n│   ├── Create-FlagFromSVG.ps1        # Create flag images\n│   ├── Create-OUIListFromWeb.ps1     # Update OUI (MAC vendor) list\n│   ├── Create-PortListFromWeb.ps1    # Update port list database\n│   ├── Create-WhoisServerListFromWebAndWhois.ps1  # Update WHOIS servers\n│   └── PreBuildEventCommandLine.ps1  # Pre-build automation\n├── Chocolatey/                       # Chocolatey package definition\n├── WinGet/                           # WinGet package manifest\n└── Images/                           # Application icons and images\n```\n\n### Key Statistics\n\n- **650+ C# source files** across multiple projects\n- **150+ XAML files** for UI definitions\n- **12 distinct project modules** in the solution\n- **64+ documentation pages** in Docusaurus format\n- **17 supported languages** for localization\n\n## Technology Stack\n\n### Application (.NET/WPF)\n\n**Core Framework**:\n- **.NET 10.0** (SDK version: 10.0.100)\n- **WPF** (Windows Presentation Foundation) for UI\n- **Windows Forms** integration for specific controls\n- **Target**: Windows 10.0.22621.0 (Windows 11)\n\n**UI Framework & Design**:\n- **MahApps.Metro** - Modern UI toolkit providing Metro-style controls and themes\n- **MahApps.Metro.IconPacks** - Icon libraries (FontAwesome, Material, Modern, Octicons)\n- **MahApps.Metro.SimpleChildWindow** - Dialog windows\n- **Dragablz** - Tearable/draggable tab control\n- **GongSolutions.Wpf.DragDrop** - Drag and drop framework\n- **LoadingIndicators.WPF** - Loading animations\n- **ControlzEx** - Shared WPF controls\n\n**Architecture Pattern**:\n- **MVVM (Model-View-ViewModel)** pattern\n  - Views: XAML files in `Source/NETworkManager/Views/`\n  - ViewModels: C# classes in `Source/NETworkManager/ViewModels/`\n  - Models: Business logic in `Source/NETworkManager.Models/`\n\n**Key Libraries**:\n- **Lextm.SharpSnmpLib** - SNMP protocol implementation\n- **DnsClient** - DNS lookups\n- **IPNetwork2** - Network and subnet calculations\n- **PSDiscoveryProtocol** - LLDP/CDP network discovery (PowerShell module embedded)\n- **AirspaceFixer** - WPF/WinForms interop fixes\n- **log4net** - Logging framework\n- **LiveCharts.Wpf** - Charts and graphs\n- **Microsoft.Web.WebView2** - WebView2 control for web content\n- **Microsoft.PowerShell.SDK** - PowerShell integration\n- **Microsoft.Xaml.Behaviors.Wpf** - Behaviors for XAML\n- **Newtonsoft.Json** - JSON serialization and deserialization\n\n**Build Tools**:\n- **NetBeauty2** - Dependency organization\n- **WiX Toolset** - MSI installer creation\n\n### Website (Docusaurus)\n\n**Documentation Stack**:\n- **Docusaurus** - Static site generator\n- **React** - UI framework\n- **@mdx-js/react** - MDX support\n- **react-image-gallery** - Image galleries\n- **Prism** - Code syntax highlighting\n\n**Website Structure**:\n```\nWebsite/\n├── docs/                   # Documentation pages\n│   ├── application/        # Feature documentation\n│   ├── changelog/          # Version history\n│   ├── faq/                # Frequently asked questions\n│   └── settings/           # Settings documentation\n├── blog/                   # Blog posts\n├── src/                    # React components and pages\n├── static/                 # Static assets (images, files)\n├── docusaurus.config.js    # Site configuration\n├── sidebars.js             # Documentation sidebar structure\n├── package.json            # npm/yarn dependencies\n└── yarn.lock               # Yarn lockfile\n```\n\n## Development Setup\n\n### Prerequisites\n\n1. **For Application Development**:\n   - [.NET 10.x SDK](https://dotnet.microsoft.com/download/dotnet/10.0)\n   - [Visual Studio 2022](https://visualstudio.microsoft.com/) or later with:\n     - `.NET desktop development` workload\n     - `Universal Windows Platform development` workload\n   - Alternative: [JetBrains Rider](https://www.jetbrains.com/rider/) (still requires UWP workload via VS Installer)\n\n2. **For Website Development**:\n   - [Node.js](https://nodejs.org/) (LTS version recommended)\n   - npm or yarn package manager (yarn is used in CI/CD)\n\n### Building the Application\n\n**Clone with Submodules**:\n```powershell\ngit clone https://github.com/BornToBeRoot/NETworkManager.git\ncd NETworkManager\ngit submodule update --init --recursive\n```\n\n**Build via Visual Studio/Rider**:\n- Open `Source/NETworkManager.sln`\n- Build the solution (F6 or Build → Build Solution)\n\n**Build via Command Line**:\n```powershell\ndotnet restore .\\Source\\NETworkManager.sln\ndotnet build .\\Source\\NETworkManager.sln --configuration Release --no-restore\n```\n\n### Building the Website\n\n```bash\ncd Website\nnpm install         # Install dependencies (or use yarn install)\nnpm start           # Start development server (or use yarn start)\nnpm run build       # Build for production (or use yarn build)\n```\n\nThe website is deployed to GitHub Pages at: https://borntoberoot.net/NETworkManager\n\n## CI/CD Pipeline\n\n**Primary Build System**: AppVeyor (configuration in `appveyor.yml`)\n- Builds on Visual Studio 2022 image\n- Installs .NET 10.0.100 SDK\n- Restores NuGet packages\n- Builds Release configuration for x64 platform\n- Version format: `yyyy.M.d.0` (date-based)\n- Artifacts are signed via [SignPath.io](https://signpath.io/)\n- Released to GitHub Releases\n\n**GitHub Actions Workflows**:\n- **CodeQL Analysis** (`.github/workflows/codeql.yml`):\n  - Automated security scanning\n  - Analyzes C# and JavaScript/TypeScript code\n  - Runs weekly and on-demand via workflow_dispatch\n  \n- **Website Deployment** (`.github/workflows/deploy_website.yml`):\n  - Builds and deploys Docusaurus website to GitHub Pages\n  - Triggers on changes to `Website/` directory\n  - Uses Node.js 20 with yarn for build\n\n**Automation & Bots**:\n- **Dependabot** (`.github/dependabot.yml`):\n  - Weekly updates for NuGet packages, .NET SDK, and npm packages\n  - Automatic PR creation for dependency updates\n  \n- **Mergify** (`.github/mergify.yml`):\n  - Auto-merges PRs with `LGTM` label after AppVeyor CI passes\n  - Auto-merges Dependabot, Transifex, and ImgBot PRs after CI success\n  \n- **Transifex Integration** (`.github/transifex.yml`):\n  - Automated translation synchronization\n  - Syncs RESX files between GitHub and Transifex\n  \n- **Stale Bot** (`.github/stale.yml`):\n  - Marks issues inactive for 30 days as stale\n  - Closes stale issues after 7 days\n  - Excludes bugs, feature requests, and documentation issues\n\n## Contributing Areas\n\n### Code Contributions\n\n**Primary Areas**:\n1. **Network Tools** (`Source/NETworkManager.Models/`):\n   - IP Scanner, Port Scanner, Ping Monitor\n   - DNS Lookup, Traceroute, WHOIS\n   - WiFi Analyzer, LLDP/CDP Capture\n\n2. **Remote Access** (`Source/NETworkManager/Controls/`):\n   - Remote Desktop (RDP) integration\n   - PuTTY (SSH, Telnet, Serial) integration\n   - PowerShell and TigerVNC (VNC) controls\n\n3. **UI/UX** (`Source/NETworkManager/Views/` and `.xaml` files):\n   - WPF views following MVVM pattern\n   - MahApps.Metro styling\n   - Custom controls and converters\n\n4. **Settings & Profiles** (`Source/NETworkManager.Settings/`, `Source/NETworkManager.Profiles/`):\n   - Profile management and encryption\n   - Application settings\n\n### Documentation Contributions\n\n**Documentation Types**:\n1. **User Documentation** (`Website/docs/`):\n   - Feature guides in `docs/application/`\n   - FAQ entries in `docs/faq/`\n   - Settings documentation in `docs/settings/`\n\n2. **Changelog** (`Website/docs/changelog/`):\n   - Version release notes\n\n3. **Code Documentation**:\n   - XML documentation comments in C# code\n   - README files in project directories\n\n### Translation\n\n- **Platform**: [Transifex](https://app.transifex.com/BornToBeRoot/NETworkManager/dashboard/)\n- **Resources**: `Source/NETworkManager.Localization/`\n- **17 languages supported**: cs-CZ, de-DE, es-ES, fr-FR, hu-HU, it-IT, ja-JP, ko-KR, nl-NL, pl-PL, pt-BR, ru-RU, sl-SI, sv-SE, uk-UA, zh-CN, zh-TW\n- **Format**: RESX files\n- **Integration**: Automated sync via `.github/transifex.yml`\n\n## Code Style and Conventions\n\n### C# Code Style\n\n- **EditorConfig**: `.editorconfig` in `Source/` directory defines coding standards\n- **Naming Conventions**:\n  - PascalCase for classes, methods, properties\n  - camelCase for private fields\n  - Prefix interfaces with `I`\n  - Suffix ViewModels with `ViewModel`\n  \n- **MVVM Pattern**:\n  - ViewModels inherit from `PropertyChangedBase` or implement `INotifyPropertyChanged`\n  - Commands use `RelayCommand` from utilities\n  - Views bind to ViewModels via DataContext\n\n### XAML Style\n\n- **MahApps.Metro Controls**: Use Metro-styled controls\n- **Icon Packs**: Use `IconPacks` namespace for icons\n- **Resource Dictionaries**: Shared styles in `Resources/` directory\n- **Naming**: Use `x:Name` for elements that need code-behind access\n\n### Documentation Style\n\n- **Markdown**: All documentation in `.md` or `.mdx` format\n- **Code Blocks**: Use syntax highlighting with language specifiers\n- **Screenshots**: Place in `Website/static/img/`\n- **Links**: Use relative links for internal documentation\n\n## Testing Strategy\n\n- **Manual Testing**: Primary testing approach\n- **Build Verification**: AppVeyor CI ensures builds succeed\n- **Real-World Testing**: Pre-release versions on GitHub Releases\n- **Community Feedback**: GitHub Issues for bug reports\n\n## Package Distribution\n\n**Installation Methods**:\n1. **Direct Download**: GitHub Releases (Setup, Portable, Archive)\n2. **Chocolatey**: `choco install networkmanager`\n3. **WinGet**: `winget install BornToBeRoot.NETworkManager`\n4. **Evergreen**: PowerShell module for automation\n\n**Package Formats**:\n- **Setup (MSI)**: WiX installer in `Source/NETworkManager.Setup/`\n- **Portable**: ZIP file\n- **Archive**: ZIP file\n\n## Security Considerations\n\n1. **Code Signing**: \n   - Free signing via SignPath.io and SignPath Foundation\n   - All official binaries and installers are signed\n\n2. **Profile Encryption**: \n   - Supports encrypted profile files\n   - Protects sensitive credentials and connection data\n\n3. **Privacy**:\n   - No telemetry or data collection by default\n   - Optional third-party services (GitHub API, ipify.org, ip-api.com)\n\n4. **Security Reports**: \n   - See `SECURITY.md` for vulnerability reporting process\n\n## Important Files\n\n- **`Source/NETworkManager.sln`**: Main Visual Studio solution\n- **`Source/GlobalAssemblyInfo.cs`**: Shared assembly version info\n- **`Source/global.json`**: .NET SDK version specification (10.0.100)\n- **`Source/.editorconfig`**: C# code style configuration\n- **`appveyor.yml`**: AppVeyor CI/CD configuration\n- **`.github/workflows/codeql.yml`**: CodeQL security analysis workflow\n- **`.github/workflows/deploy_website.yml`**: Website deployment workflow\n- **`.github/dependabot.yml`**: Dependabot configuration\n- **`.github/mergify.yml`**: Mergify auto-merge configuration\n- **`.github/transifex.yml`**: Transifex translation sync configuration\n- **`.github/stale.yml`**: Stale issue bot configuration\n- **`.gitmodules`**: Git submodule configuration (Dragablz)\n- **`Website/docusaurus.config.js`**: Documentation site configuration\n- **`CONTRIBUTING.md`**: Contribution guidelines\n- **`LICENSE`**: GPL v3 license\n- **`README.md`**: Repository overview and quick start\n\n## Useful Commands\n\n### Application Development\n\n```powershell\n# Restore dependencies\ndotnet restore .\\Source\\NETworkManager.sln\n\n# Build (Release)\ndotnet build .\\Source\\NETworkManager.sln --configuration Release\n\n# Clean solution\ndotnet clean .\\Source\\NETworkManager.sln\n\n# Run application\n.\\Source\\NETworkManager\\bin\\Release\\net10.0-windows10.0.22621.0\\win-x64\\NETworkManager.exe\n```\n\n### Website Development\n\n```bash\n# Install dependencies\ncd Website && npm install  # or yarn install\n\n# Start dev server (http://localhost:3000)\nnpm start  # or yarn start\n\n# Build static site\nnpm run build  # or yarn build\n\n# Serve production build\nnpm run serve  # or yarn serve\n\n# Clear cache\nnpm run clear  # or yarn clear\n```\n\n### Git Operations\n\n```powershell\n# Update submodules\ngit submodule update --init --recursive\n\n# Check status\ngit status\n\n# View changes\ngit diff\n```\n\n## Common Development Scenarios\n\n### Adding a New Network Tool\n\n1. Create model in `Source/NETworkManager.Models/Network/`\n2. Create ViewModel in `Source/NETworkManager/ViewModels/`\n3. Create View (XAML) in `Source/NETworkManager/Views/`\n4. Register in `MainWindow.xaml.cs` or appropriate host\n5. Add localization strings\n6. Update documentation in `Website/docs/application/`\n\n### Adding a New Setting\n\n1. Add property to settings model in `Source/NETworkManager.Settings/`\n2. Update settings ViewModel\n3. Add UI control in settings View\n4. Add validation if needed\n5. Update settings documentation\n\n### Updating Documentation\n\n1. Edit markdown files in `Website/docs/`\n2. Add images to `Website/static/img/`\n3. Update `Website/sidebars.js` if adding new sections\n4. Test locally with `npm start`\n5. Submit pull request\n\n## Resources\n\n- **Documentation**: https://borntoberoot.net/NETworkManager\n- **GitHub Issues**: https://github.com/BornToBeRoot/NETworkManager/issues\n- **GitHub Discussions**: https://github.com/BornToBeRoot/NETworkManager/discussions\n- **Transifex**: https://app.transifex.com/BornToBeRoot/NETworkManager/dashboard/\n- **AppVeyor CI**: https://ci.appveyor.com/project/BornToBeRoot/NETworkManager\n\n## Key Contacts & Community\n\n- **Maintainer**: BornToBeRoot\n- **Contributors**: See `CONTRIBUTORS.md`\n- **Code of Conduct**: `CODE_OF_CONDUCT.md` (Contributor Covenant)\n- **Support**: GitHub Issues and Discussions\n\n## Architecture Highlights\n\n### MVVM Implementation\n\n- **Data Binding**: Extensive use of WPF data binding\n- **Commands**: `RelayCommand` pattern for user actions\n- **Property Change Notification**: `INotifyPropertyChanged` via `PropertyChangedBase`\n- **Dependency Injection**: Manual dependency management (no DI container)\n\n### UI Theming\n\n- **MahApps.Metro Themes**: Light/Dark theme support\n- **Accent Colors**: Customizable accent colors\n- **Resource Dictionaries**: Shared styles and templates\n- **Live Theme Switching**: Runtime theme changes\n\n### Profile System\n\n- **Profile Files**: XML-based profile storage\n- **Encryption**: AES encryption for sensitive data\n- **Groups**: Hierarchical organization\n- **Import/Export**: Profile sharing capabilities\n\n### Embedded Tools Integration\n\n- **Remote Desktop**: Native RDP using `AxMSTSCLib`, `AxMsRdpClient10NotSafeForScripting` and `WindowsFormsHost`\n- **PuTTY**: PuTTY window embedding / process hosting with `WindowsFormsHost`\n- **PowerShell**: PowerShell window embedding / process hosting with `WindowsFormsHost`\n- **VNC**: TigerVNC window embedding / process hosting with `WindowsFormsHost`\n\n## Tips for AI Agents\n\n1. **Respect MVVM**: Keep business logic in ViewModels and Models, not in code-behind\n2. **Use MahApps Controls**: Prefer Metro controls over standard WPF controls\n3. **Localization**: Always use resource strings, never hardcode text\n4. **Follow Existing Patterns**: Study similar features before implementing new ones\n5. **Update Documentation**: Changes to features should include doc updates\n6. **Test on Real Networks**: Network tools require real network testing\n7. **Version Management**: Assembly version is auto-generated in CI/CD\n8. **Submodules**: Remember to init/update submodules (Dragablz in `Source/3rdparty/`)\n9. **DO NOT Modify 3rdparty**: The `Source/3rdparty/` directory contains the Dragablz submodule and is maintained manually — AI agents MUST NOT modify this directory\n10. **Automation Scripts**: Use scripts in `Scripts/` directory for updating lists (OUI, ports, WHOIS servers)\n11. **Check CI Status**: Both AppVeyor (main build) and GitHub Actions (CodeQL, website) must pass\n12. **Dependency Updates**: Dependabot automatically creates PRs for dependency updates\n\n## Glossary\n\n- **MVVM**: Model-View-ViewModel architectural pattern\n- **WPF**: Windows Presentation Foundation (Microsoft's UI framework)\n- **MahApps.Metro**: Modern UI toolkit for WPF applications\n- **Dragablz**: Third-party tab control with drag/drop support\n- **LLDP/CDP**: Link Layer Discovery Protocol / Cisco Discovery Protocol\n- **SNMP**: Simple Network Management Protocol\n- **RDP**: Remote Desktop Protocol\n- **Docusaurus**: React-based static site generator\n- **SignPath**: Code signing service for open source projects\n"},"files":{"CLAUDE.md":"See [AGENTS.md](AGENTS.md) for project guidelines and conventions.\n","AGENTS.md":"# NETworkManager - Repository Guide for AI Agents\n\n## Repository Overview\n\n**NETworkManager** is a comprehensive, enterprise-ready network management and troubleshooting application built with C# and WPF. It provides a unified interface for network administrators and IT professionals to manage, monitor, and troubleshoot network infrastructure using tools like Remote Desktop, PuTTY (SSH, Telnet, Serial, etc.), PowerShell (k9s, WSL, etc.), TigerVNC, network scanners (IP scanner, Port scanner, WiFi Analyzer), and diagnostic utilities (Ping monitor, traceroute, etc.).\n\n- **Repository**: https://github.com/BornToBeRoot/NETworkManager\n- **License**: GNU General Public License v3\n- **Primary Language**: C# (.NET 10)\n- **UI Framework**: WPF (Windows Presentation Foundation) with `MahApps.Metro`\n- **Documentation**: Docusaurus-based website and documentation at https://borntoberoot.net/NETworkManager\n- **Platform**: Windows (x64)\n\n## Project Structure\n\n### Source Code Organization\n\nThe repository is organized into multiple C# projects following a modular architecture:\n\n```\nREPOSITORY_ROOT/\n├── Source/                           # Main source code directory\n│   ├── NETworkManager/               # Main WPF application (Views, ViewModels, Controls)\n│   ├── NETworkManager.Models/        # Business logic and data models\n│   ├── NETworkManager.Utilities/     # Helper classes and utilities\n│   ├── NETworkManager.Utilities.WPF/ # WPF-specific utilities\n│   ├── NETworkManager.Converters/    # WPF value converters\n│   ├── NETworkManager.Validators/    # Input validation logic\n│   ├── NETworkManager.Controls/      # Custom WPF controls\n│   ├── NETworkManager.Localization/  # Internationalization resources\n│   ├── NETworkManager.Settings/      # Application settings management\n│   ├── NETworkManager.Profiles/      # Profile management\n│   ├── NETworkManager.Update/        # Update functionality\n│   ├── NETworkManager.Documentation/ # Documentation resources\n│   ├── NETworkManager.Setup/         # WiX installer project\n│   └── 3rdparty/                     # Third-party dependencies (e.g., Dragablz)\n│       └── (managed-manually)        # NOTE: Maintained manually — AI agents MUST NOT modify this directory\n├── Website/                          # Docusaurus documentation website\n├── Scripts/                          # Build and automation scripts\n│   ├── Create-FileHash.ps1           # Generate file hashes\n│   ├── Create-FlagFromSVG.ps1        # Create flag images\n│   ├── Create-OUIListFromWeb.ps1     # Update OUI (MAC vendor) list\n│   ├── Create-PortListFromWeb.ps1    # Update port list database\n│   ├── Create-WhoisServerListFromWebAndWhois.ps1  # Update WHOIS servers\n│   └── PreBuildEventCommandLine.ps1  # Pre-build automation\n├── Chocolatey/                       # Chocolatey package definition\n├── WinGet/                           # WinGet package manifest\n└── Images/                           # Application icons and images\n```\n\n### Key Statistics\n\n- **650+ C# source files** across multiple projects\n- **150+ XAML files** for UI definitions\n- **12 distinct project modules** in the solution\n- **64+ documentation pages** in Docusaurus format\n- **17 supported languages** for localization\n\n## Technology Stack\n\n### Application (.NET/WPF)\n\n**Core Framework**:\n- **.NET 10.0** (SDK version: 10.0.100)\n- **WPF** (Windows Presentation Foundation) for UI\n- **Windows Forms** integration for specific controls\n- **Target**: Windows 10.0.22621.0 (Windows 11)\n\n**UI Framework & Design**:\n- **MahApps.Metro** - Modern UI toolkit providing Metro-style controls and themes\n- **MahApps.Metro.IconPacks** - Icon libraries (FontAwesome, Material, Modern, Octicons)\n- **MahApps.Metro.SimpleChildWindow** - Dialog windows\n- **Dragablz** - Tearable/draggable tab control\n- **GongSolutions.Wpf.DragDrop** - Drag and drop framework\n- **LoadingIndicators.WPF** - Loading animations\n- **ControlzEx** - Shared WPF controls\n\n**Architecture Pattern**:\n- **MVVM (Model-View-ViewModel)** pattern\n  - Views: XAML files in `Source/NETworkManager/Views/`\n  - ViewModels: C# classes in `Source/NETworkManager/ViewModels/`\n  - Models: Business logic in `Source/NETworkManager.Models/`\n\n**Key Libraries**:\n- **Lextm.SharpSnmpLib** - SNMP protocol implementation\n- **DnsClient** - DNS lookups\n- **IPNetwork2** - Network and subnet calculations\n- **PSDiscoveryProtocol** - LLDP/CDP network discovery (PowerShell module embedded)\n- **AirspaceFixer** - WPF/WinForms interop fixes\n- **log4net** - Logging framework\n- **LiveCharts.Wpf** - Charts and graphs\n- **Microsoft.Web.WebView2** - WebView2 control for web content\n- **Microsoft.PowerShell.SDK** - PowerShell integration\n- **Microsoft.Xaml.Behaviors.Wpf** - Behaviors for XAML\n- **Newtonsoft.Json** - JSON serialization and deserialization\n\n**Build Tools**:\n- **NetBeauty2** - Dependency organization\n- **WiX Toolset** - MSI installer creation\n\n### Website (Docusaurus)\n\n**Documentation Stack**:\n- **Docusaurus** - Static site generator\n- **React** - UI framework\n- **@mdx-js/react** - MDX support\n- **react-image-gallery** - Image galleries\n- **Prism** - Code syntax highlighting\n\n**Website Structure**:\n```\nWebsite/\n├── docs/                   # Documentation pages\n│   ├── application/        # Feature documentation\n│   ├── changelog/          # Version history\n│   ├── faq/                # Frequently asked questions\n│   └── settings/           # Settings documentation\n├── blog/                   # Blog posts\n├── src/                    # React components and pages\n├── static/                 # Static assets (images, files)\n├── docusaurus.config.js    # Site configuration\n├── sidebars.js             # Documentation sidebar structure\n├── package.json            # npm/yarn dependencies\n└── yarn.lock               # Yarn lockfile\n```\n\n## Development Setup\n\n### Prerequisites\n\n1. **For Application Development**:\n   - [.NET 10.x SDK](https://dotnet.microsoft.com/download/dotnet/10.0)\n   - [Visual Studio 2022](https://visualstudio.microsoft.com/) or later with:\n     - `.NET desktop development` workload\n     - `Universal Windows Platform development` workload\n   - Alternative: [JetBrains Rider](https://www.jetbrains.com/rider/) (still requires UWP workload via VS Installer)\n\n2. **For Website Development**:\n   - [Node.js](https://nodejs.org/) (LTS version recommended)\n   - npm or yarn package manager (yarn is used in CI/CD)\n\n### Building the Application\n\n**Clone with Submodules**:\n```powershell\ngit clone https://github.com/BornToBeRoot/NETworkManager.git\ncd NETworkManager\ngit submodule update --init --recursive\n```\n\n**Build via Visual Studio/Rider**:\n- Open `Source/NETworkManager.sln`\n- Build the solution (F6 or Build → Build Solution)\n\n**Build via Command Line**:\n```powershell\ndotnet restore .\\Source\\NETworkManager.sln\ndotnet build .\\Source\\NETworkManager.sln --configuration Release --no-restore\n```\n\n### Building the Website\n\n```bash\ncd Website\nnpm install         # Install dependencies (or use yarn install)\nnpm start           # Start development server (or use yarn start)\nnpm run build       # Build for production (or use yarn build)\n```\n\nThe website is deployed to GitHub Pages at: https://borntoberoot.net/NETworkManager\n\n## CI/CD Pipeline\n\n**Primary Build System**: AppVeyor (configuration in `appveyor.yml`)\n- Builds on Visual Studio 2022 image\n- Installs .NET 10.0.100 SDK\n- Restores NuGet packages\n- Builds Release configuration for x64 platform\n- Version format: `yyyy.M.d.0` (date-based)\n- Artifacts are signed via [SignPath.io](https://signpath.io/)\n- Released to GitHub Releases\n\n**GitHub Actions Workflows**:\n- **CodeQL Analysis** (`.github/workflows/codeql.yml`):\n  - Automated security scanning\n  - Analyzes C# and JavaScript/TypeScript code\n  - Runs weekly and on-demand via workflow_dispatch\n  \n- **Website Deployment** (`.github/workflows/deploy_website.yml`):\n  - Builds and deploys Docusaurus website to GitHub Pages\n  - Triggers on changes to `Website/` directory\n  - Uses Node.js 20 with yarn for build\n\n**Automation & Bots**:\n- **Dependabot** (`.github/dependabot.yml`):\n  - Weekly updates for NuGet packages, .NET SDK, and npm packages\n  - Automatic PR creation for dependency updates\n  \n- **Mergify** (`.github/mergify.yml`):\n  - Auto-merges PRs with `LGTM` label after AppVeyor CI passes\n  - Auto-merges Dependabot, Transifex, and ImgBot PRs after CI success\n  \n- **Transifex Integration** (`.github/transifex.yml`):\n  - Automated translation synchronization\n  - Syncs RESX files between GitHub and Transifex\n  \n- **Stale Bot** (`.github/stale.yml`):\n  - Marks issues inactive for 30 days as stale\n  - Closes stale issues after 7 days\n  - Excludes bugs, feature requests, and documentation issues\n\n## Contributing Areas\n\n### Code Contributions\n\n**Primary Areas**:\n1. **Network Tools** (`Source/NETworkManager.Models/`):\n   - IP Scanner, Port Scanner, Ping Monitor\n   - DNS Lookup, Traceroute, WHOIS\n   - WiFi Analyzer, LLDP/CDP Capture\n\n2. **Remote Access** (`Source/NETworkManager/Controls/`):\n   - Remote Desktop (RDP) integration\n   - PuTTY (SSH, Telnet, Serial) integration\n   - PowerShell and TigerVNC (VNC) controls\n\n3. **UI/UX** (`Source/NETworkManager/Views/` and `.xaml` files):\n   - WPF views following MVVM pattern\n   - MahApps.Metro styling\n   - Custom controls and converters\n\n4. **Settings & Profiles** (`Source/NETworkManager.Settings/`, `Source/NETworkManager.Profiles/`):\n   - Profile management and encryption\n   - Application settings\n\n### Documentation Contributions\n\n**Documentation Types**:\n1. **User Documentation** (`Website/docs/`):\n   - Feature guides in `docs/application/`\n   - FAQ entries in `docs/faq/`\n   - Settings documentation in `docs/settings/`\n\n2. **Changelog** (`Website/docs/changelog/`):\n   - Version release notes\n\n3. **Code Documentation**:\n   - XML documentation comments in C# code\n   - README files in project directories\n\n### Translation\n\n- **Platform**: [Transifex](https://app.transifex.com/BornToBeRoot/NETworkManager/dashboard/)\n- **Resources**: `Source/NETworkManager.Localization/`\n- **17 languages supported**: cs-CZ, de-DE, es-ES, fr-FR, hu-HU, it-IT, ja-JP, ko-KR, nl-NL, pl-PL, pt-BR, ru-RU, sl-SI, sv-SE, uk-UA, zh-CN, zh-TW\n- **Format**: RESX files\n- **Integration**: Automated sync via `.github/transifex.yml`\n\n## Code Style and Conventions\n\n### C# Code Style\n\n- **EditorConfig**: `.editorconfig` in `Source/` directory defines coding standards\n- **Naming Conventions**:\n  - PascalCase for classes, methods, properties\n  - camelCase for private fields\n  - Prefix interfaces with `I`\n  - Suffix ViewModels with `ViewModel`\n  \n- **MVVM Pattern**:\n  - ViewModels inherit from `PropertyChangedBase` or implement `INotifyPropertyChanged`\n  - Commands use `RelayCommand` from utilities\n  - Views bind to ViewModels via DataContext\n\n### XAML Style\n\n- **MahApps.Metro Controls**: Use Metro-styled controls\n- **Icon Packs**: Use `IconPacks` namespace for icons\n- **Resource Dictionaries**: Shared styles in `Resources/` directory\n- **Naming**: Use `x:Name` for elements that need code-behind access\n\n### Documentation Style\n\n- **Markdown**: All documentation in `.md` or `.mdx` format\n- **Code Blocks**: Use syntax highlighting with language specifiers\n- **Screenshots**: Place in `Website/static/img/`\n- **Links**: Use relative links for internal documentation\n\n## Testing Strategy\n\n- **Manual Testing**: Primary testing approach\n- **Build Verification**: AppVeyor CI ensures builds succeed\n- **Real-World Testing**: Pre-release versions on GitHub Releases\n- **Community Feedback**: GitHub Issues for bug reports\n\n## Package Distribution\n\n**Installation Methods**:\n1. **Direct Download**: GitHub Releases (Setup, Portable, Archive)\n2. **Chocolatey**: `choco install networkmanager`\n3. **WinGet**: `winget install BornToBeRoot.NETworkManager`\n4. **Evergreen**: PowerShell module for automation\n\n**Package Formats**:\n- **Setup (MSI)**: WiX installer in `Source/NETworkManager.Setup/`\n- **Portable**: ZIP file\n- **Archive**: ZIP file\n\n## Security Considerations\n\n1. **Code Signing**: \n   - Free signing via SignPath.io and SignPath Foundation\n   - All official binaries and installers are signed\n\n2. **Profile Encryption**: \n   - Supports encrypted profile files\n   - Protects sensitive credentials and connection data\n\n3. **Privacy**:\n   - No telemetry or data collection by default\n   - Optional third-party services (GitHub API, ipify.org, ip-api.com)\n\n4. **Security Reports**: \n   - See `SECURITY.md` for vulnerability reporting process\n\n## Important Files\n\n- **`Source/NETworkManager.sln`**: Main Visual Studio solution\n- **`Source/GlobalAssemblyInfo.cs`**: Shared assembly version info\n- **`Source/global.json`**: .NET SDK version specification (10.0.100)\n- **`Source/.editorconfig`**: C# code style configuration\n- **`appveyor.yml`**: AppVeyor CI/CD configuration\n- **`.github/workflows/codeql.yml`**: CodeQL security analysis workflow\n- **`.github/workflows/deploy_website.yml`**: Website deployment workflow\n- **`.github/dependabot.yml`**: Dependabot configuration\n- **`.github/mergify.yml`**: Mergify auto-merge configuration\n- **`.github/transifex.yml`**: Transifex translation sync configuration\n- **`.github/stale.yml`**: Stale issue bot configuration\n- **`.gitmodules`**: Git submodule configuration (Dragablz)\n- **`Website/docusaurus.config.js`**: Documentation site configuration\n- **`CONTRIBUTING.md`**: Contribution guidelines\n- **`LICENSE`**: GPL v3 license\n- **`README.md`**: Repository overview and quick start\n\n## Useful Commands\n\n### Application Development\n\n```powershell\n# Restore dependencies\ndotnet restore .\\Source\\NETworkManager.sln\n\n# Build (Release)\ndotnet build .\\Source\\NETworkManager.sln --configuration Release\n\n# Clean solution\ndotnet clean .\\Source\\NETworkManager.sln\n\n# Run application\n.\\Source\\NETworkManager\\bin\\Release\\net10.0-windows10.0.22621.0\\win-x64\\NETworkManager.exe\n```\n\n### Website Development\n\n```bash\n# Install dependencies\ncd Website && npm install  # or yarn install\n\n# Start dev server (http://localhost:3000)\nnpm start  # or yarn start\n\n# Build static site\nnpm run build  # or yarn build\n\n# Serve production build\nnpm run serve  # or yarn serve\n\n# Clear cache\nnpm run clear  # or yarn clear\n```\n\n### Git Operations\n\n```powershell\n# Update submodules\ngit submodule update --init --recursive\n\n# Check status\ngit status\n\n# View changes\ngit diff\n```\n\n## Common Development Scenarios\n\n### Adding a New Network Tool\n\n1. Create model in `Source/NETworkManager.Models/Network/`\n2. Create ViewModel in `Source/NETworkManager/ViewModels/`\n3. Create View (XAML) in `Source/NETworkManager/Views/`\n4. Register in `MainWindow.xaml.cs` or appropriate host\n5. Add localization strings\n6. Update documentation in `Website/docs/application/`\n\n### Adding a New Setting\n\n1. Add property to settings model in `Source/NETworkManager.Settings/`\n2. Update settings ViewModel\n3. Add UI control in settings View\n4. Add validation if needed\n5. Update settings documentation\n\n### Updating Documentation\n\n1. Edit markdown files in `Website/docs/`\n2. Add images to `Website/static/img/`\n3. Update `Website/sidebars.js` if adding new sections\n4. Test locally with `npm start`\n5. Submit pull request\n\n## Resources\n\n- **Documentation**: https://borntoberoot.net/NETworkManager\n- **GitHub Issues**: https://github.com/BornToBeRoot/NETworkManager/issues\n- **GitHub Discussions**: https://github.com/BornToBeRoot/NETworkManager/discussions\n- **Transifex**: https://app.transifex.com/BornToBeRoot/NETworkManager/dashboard/\n- **AppVeyor CI**: https://ci.appveyor.com/project/BornToBeRoot/NETworkManager\n\n## Key Contacts & Community\n\n- **Maintainer**: BornToBeRoot\n- **Contributors**: See `CONTRIBUTORS.md`\n- **Code of Conduct**: `CODE_OF_CONDUCT.md` (Contributor Covenant)\n- **Support**: GitHub Issues and Discussions\n\n## Architecture Highlights\n\n### MVVM Implementation\n\n- **Data Binding**: Extensive use of WPF data binding\n- **Commands**: `RelayCommand` pattern for user actions\n- **Property Change Notification**: `INotifyPropertyChanged` via `PropertyChangedBase`\n- **Dependency Injection**: Manual dependency management (no DI container)\n\n### UI Theming\n\n- **MahApps.Metro Themes**: Light/Dark theme support\n- **Accent Colors**: Customizable accent colors\n- **Resource Dictionaries**: Shared styles and templates\n- **Live Theme Switching**: Runtime theme changes\n\n### Profile System\n\n- **Profile Files**: XML-based profile storage\n- **Encryption**: AES encryption for sensitive data\n- **Groups**: Hierarchical organization\n- **Import/Export**: Profile sharing capabilities\n\n### Embedded Tools Integration\n\n- **Remote Desktop**: Native RDP using `AxMSTSCLib`, `AxMsRdpClient10NotSafeForScripting` and `WindowsFormsHost`\n- **PuTTY**: PuTTY window embedding / process hosting with `WindowsFormsHost`\n- **PowerShell**: PowerShell window embedding / process hosting with `WindowsFormsHost`\n- **VNC**: TigerVNC window embedding / process hosting with `WindowsFormsHost`\n\n## Tips for AI Agents\n\n1. **Respect MVVM**: Keep business logic in ViewModels and Models, not in code-behind\n2. **Use MahApps Controls**: Prefer Metro controls over standard WPF controls\n3. **Localization**: Always use resource strings, never hardcode text\n4. **Follow Existing Patterns**: Study similar features before implementing new ones\n5. **Update Documentation**: Changes to features should include doc updates\n6. **Test on Real Networks**: Network tools require real network testing\n7. **Version Management**: Assembly version is auto-generated in CI/CD\n8. **Submodules**: Remember to init/update submodules (Dragablz in `Source/3rdparty/`)\n9. **DO NOT Modify 3rdparty**: The `Source/3rdparty/` directory contains the Dragablz submodule and is maintained manually — AI agents MUST NOT modify this directory\n10. **Automation Scripts**: Use scripts in `Scripts/` directory for updating lists (OUI, ports, WHOIS servers)\n11. **Check CI Status**: Both AppVeyor (main build) and GitHub Actions (CodeQL, website) must pass\n12. **Dependency Updates**: Dependabot automatically creates PRs for dependency updates\n\n## Glossary\n\n- **MVVM**: Model-View-ViewModel architectural pattern\n- **WPF**: Windows Presentation Foundation (Microsoft's UI framework)\n- **MahApps.Metro**: Modern UI toolkit for WPF applications\n- **Dragablz**: Third-party tab control with drag/drop support\n- **LLDP/CDP**: Link Layer Discovery Protocol / Cisco Discovery Protocol\n- **SNMP**: Simple Network Management Protocol\n- **RDP**: Remote Desktop Protocol\n- **Docusaurus**: React-based static site generator\n- **SignPath**: Code signing service for open source projects\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"See [AGENTS.md](AGENTS.md) for project guidelines and conventions.\n","category":"root","tokens":17},{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# NETworkManager - Repository Guide for AI Agents\n\n## Repository Overview\n\n**NETworkManager** is a comprehensive, enterprise-ready network management and troubleshooting application built with C# and WPF. It provides a unified interface for network administrators and IT professionals to manage, monitor, and troubleshoot network infrastructure using tools like Remote Desktop, PuTTY (SSH, Telnet, Serial, etc.), PowerShell (k9s, WSL, etc.), TigerVNC, network scanners (IP scanner, Port scanner, WiFi Analyzer), and diagnostic utilities (Ping monitor, traceroute, etc.).\n\n- **Repository**: https://github.com/BornToBeRoot/NETworkManager\n- **License**: GNU General Public License v3\n- **Primary Language**: C# (.NET 10)\n- **UI Framework**: WPF (Windows Presentation Foundation) with `MahApps.Metro`\n- **Documentation**: Docusaurus-based website and documentation at https://borntoberoot.net/NETworkManager\n- **Platform**: Windows (x64)\n\n## Project Structure\n\n### Source Code Organization\n\nThe repository is organized into multiple C# projects following a modular architecture:\n\n```\nREPOSITORY_ROOT/\n├── Source/                           # Main source code directory\n│   ├── NETworkManager/               # Main WPF application (Views, ViewModels, Controls)\n│   ├── NETworkManager.Models/        # Business logic and data models\n│   ├── NETworkManager.Utilities/     # Helper classes and utilities\n│   ├── NETworkManager.Utilities.WPF/ # WPF-specific utilities\n│   ├── NETworkManager.Converters/    # WPF value converters\n│   ├── NETworkManager.Validators/    # Input validation logic\n│   ├── NETworkManager.Controls/      # Custom WPF controls\n│   ├── NETworkManager.Localization/  # Internationalization resources\n│   ├── NETworkManager.Settings/      # Application settings management\n│   ├── NETworkManager.Profiles/      # Profile management\n│   ├── NETworkManager.Update/        # Update functionality\n│   ├── NETworkManager.Documentation/ # Documentation resources\n│   ├── NETworkManager.Setup/         # WiX installer project\n│   └── 3rdparty/                     # Third-party dependencies (e.g., Dragablz)\n│       └── (managed-manually)        # NOTE: Maintained manually — AI agents MUST NOT modify this directory\n├── Website/                          # Docusaurus documentation website\n├── Scripts/                          # Build and automation scripts\n│   ├── Create-FileHash.ps1           # Generate file hashes\n│   ├── Create-FlagFromSVG.ps1        # Create flag images\n│   ├── Create-OUIListFromWeb.ps1     # Update OUI (MAC vendor) list\n│   ├── Create-PortListFromWeb.ps1    # Update port list database\n│   ├── Create-WhoisServerListFromWebAndWhois.ps1  # Update WHOIS servers\n│   └── PreBuildEventCommandLine.ps1  # Pre-build automation\n├── Chocolatey/                       # Chocolatey package definition\n├── WinGet/                           # WinGet package manifest\n└── Images/                           # Application icons and images\n```\n\n### Key Statistics\n\n- **650+ C# source files** across multiple projects\n- **150+ XAML files** for UI definitions\n- **12 distinct project modules** in the solution\n- **64+ documentation pages** in Docusaurus format\n- **17 supported languages** for localization\n\n## Technology Stack\n\n### Application (.NET/WPF)\n\n**Core Framework**:\n- **.NET 10.0** (SDK version: 10.0.100)\n- **WPF** (Windows Presentation Foundation) for UI\n- **Windows Forms** integration for specific controls\n- **Target**: Windows 10.0.22621.0 (Windows 11)\n\n**UI Framework & Design**:\n- **MahApps.Metro** - Modern UI toolkit providing Metro-style controls and themes\n- **MahApps.Metro.IconPacks** - Icon libraries (FontAwesome, Material, Modern, Octicons)\n- **MahApps.Metro.SimpleChildWindow** - Dialog windows\n- **Dragablz** - Tearable/draggable tab control\n- **GongSolutions.Wpf.DragDrop** - Drag and drop framework\n- **LoadingIndicators.WPF** - Loading animations\n- **ControlzEx** - Shared WPF controls\n\n**Architecture Pattern**:\n- **MVVM (Model-View-ViewModel)** pattern\n  - Views: XAML files in `Source/NETworkManager/Views/`\n  - ViewModels: C# classes in `Source/NETworkManager/ViewModels/`\n  - Models: Business logic in `Source/NETworkManager.Models/`\n\n**Key Libraries**:\n- **Lextm.SharpSnmpLib** - SNMP protocol implementation\n- **DnsClient** - DNS lookups\n- **IPNetwork2** - Network and subnet calculations\n- **PSDiscoveryProtocol** - LLDP/CDP network discovery (PowerShell module embedded)\n- **AirspaceFixer** - WPF/WinForms interop fixes\n- **log4net** - Logging framework\n- **LiveCharts.Wpf** - Charts and graphs\n- **Microsoft.Web.WebView2** - WebView2 control for web content\n- **Microsoft.PowerShell.SDK** - PowerShell integration\n- **Microsoft.Xaml.Behaviors.Wpf** - Behaviors for XAML\n- **Newtonsoft.Json** - JSON serialization and deserialization\n\n**Build Tools**:\n- **NetBeauty2** - Dependency organization\n- **WiX Toolset** - MSI installer creation\n\n### Website (Docusaurus)\n\n**Documentation Stack**:\n- **Docusaurus** - Static site generator\n- **React** - UI framework\n- **@mdx-js/react** - MDX support\n- **react-image-gallery** - Image galleries\n- **Prism** - Code syntax highlighting\n\n**Website Structure**:\n```\nWebsite/\n├── docs/                   # Documentation pages\n│   ├── application/        # Feature documentation\n│   ├── changelog/          # Version history\n│   ├── faq/                # Frequently asked questions\n│   └── settings/           # Settings documentation\n├── blog/                   # Blog posts\n├── src/                    # React components and pages\n├── static/                 # Static assets (images, files)\n├── docusaurus.config.js    # Site configuration\n├── sidebars.js             # Documentation sidebar structure\n├── package.json            # npm/yarn dependencies\n└── yarn.lock               # Yarn lockfile\n```\n\n## Development Setup\n\n### Prerequisites\n\n1. **For Application Development**:\n   - [.NET 10.x SDK](https://dotnet.microsoft.com/download/dotnet/10.0)\n   - [Visual Studio 2022](https://visualstudio.microsoft.com/) or later with:\n     - `.NET desktop development` workload\n     - `Universal Windows Platform development` workload\n   - Alternative: [JetBrains Rider](https://www.jetbrains.com/rider/) (still requires UWP workload via VS Installer)\n\n2. **For Website Development**:\n   - [Node.js](https://nodejs.org/) (LTS version recommended)\n   - npm or yarn package manager (yarn is used in CI/CD)\n\n### Building the Application\n\n**Clone with Submodules**:\n```powershell\ngit clone https://github.com/BornToBeRoot/NETworkManager.git\ncd NETworkManager\ngit submodule update --init --recursive\n```\n\n**Build via Visual Studio/Rider**:\n- Open `Source/NETworkManager.sln`\n- Build the solution (F6 or Build → Build Solution)\n\n**Build via Command Line**:\n```powershell\ndotnet restore .\\Source\\NETworkManager.sln\ndotnet build .\\Source\\NETworkManager.sln --configuration Release --no-restore\n```\n\n### Building the Website\n\n```bash\ncd Website\nnpm install         # Install dependencies (or use yarn install)\nnpm start           # Start development server (or use yarn start)\nnpm run build       # Build for production (or use yarn build)\n```\n\nThe website is deployed to GitHub Pages at: https://borntoberoot.net/NETworkManager\n\n## CI/CD Pipeline\n\n**Primary Build System**: AppVeyor (configuration in `appveyor.yml`)\n- Builds on Visual Studio 2022 image\n- Installs .NET 10.0.100 SDK\n- Restores NuGet packages\n- Builds Release configuration for x64 platform\n- Version format: `yyyy.M.d.0` (date-based)\n- Artifacts are signed via [SignPath.io](https://signpath.io/)\n- Released to GitHub Releases\n\n**GitHub Actions Workflows**:\n- **CodeQL Analysis** (`.github/workflows/codeql.yml`):\n  - Automated security scanning\n  - Analyzes C# and JavaScript/TypeScript code\n  - Runs weekly and on-demand via workflow_dispatch\n  \n- **Website Deployment** (`.github/workflows/deploy_website.yml`):\n  - Builds and deploys Docusaurus website to GitHub Pages\n  - Triggers on changes to `Website/` directory\n  - Uses Node.js 20 with yarn for build\n\n**Automation & Bots**:\n- **Dependabot** (`.github/dependabot.yml`):\n  - Weekly updates for NuGet packages, .NET SDK, and npm packages\n  - Automatic PR creation for dependency updates\n  \n- **Mergify** (`.github/mergify.yml`):\n  - Auto-merges PRs with `LGTM` label after AppVeyor CI passes\n  - Auto-merges Dependabot, Transifex, and ImgBot PRs after CI success\n  \n- **Transifex Integration** (`.github/transifex.yml`):\n  - Automated translation synchronization\n  - Syncs RESX files between GitHub and Transifex\n  \n- **Stale Bot** (`.github/stale.yml`):\n  - Marks issues inactive for 30 days as stale\n  - Closes stale issues after 7 days\n  - Excludes bugs, feature requests, and documentation issues\n\n## Contributing Areas\n\n### Code Contributions\n\n**Primary Areas**:\n1. **Network Tools** (`Source/NETworkManager.Models/`):\n   - IP Scanner, Port Scanner, Ping Monitor\n   - DNS Lookup, Traceroute, WHOIS\n   - WiFi Analyzer, LLDP/CDP Capture\n\n2. **Remote Access** (`Source/NETworkManager/Controls/`):\n   - Remote Desktop (RDP) integration\n   - PuTTY (SSH, Telnet, Serial) integration\n   - PowerShell and TigerVNC (VNC) controls\n\n3. **UI/UX** (`Source/NETworkManager/Views/` and `.xaml` files):\n   - WPF views following MVVM pattern\n   - MahApps.Metro styling\n   - Custom controls and converters\n\n4. **Settings & Profiles** (`Source/NETworkManager.Settings/`, `Source/NETworkManager.Profiles/`):\n   - Profile management and encryption\n   - Application settings\n\n### Documentation Contributions\n\n**Documentation Types**:\n1. **User Documentation** (`Website/docs/`):\n   - Feature guides in `docs/application/`\n   - FAQ entries in `docs/faq/`\n   - Settings documentation in `docs/settings/`\n\n2. **Changelog** (`Website/docs/changelog/`):\n   - Version release notes\n\n3. **Code Documentation**:\n   - XML documentation comments in C# code\n   - README files in project directories\n\n### Translation\n\n- **Platform**: [Transifex](https://app.transifex.com/BornToBeRoot/NETworkManager/dashboard/)\n- **Resources**: `Source/NETworkManager.Localization/`\n- **17 languages supported**: cs-CZ, de-DE, es-ES, fr-FR, hu-HU, it-IT, ja-JP, ko-KR, nl-NL, pl-PL, pt-BR, ru-RU, sl-SI, sv-SE, uk-UA, zh-CN, zh-TW\n- **Format**: RESX files\n- **Integration**: Automated sync via `.github/transifex.yml`\n\n## Code Style and Conventions\n\n### C# Code Style\n\n- **EditorConfig**: `.editorconfig` in `Source/` directory defines coding standards\n- **Naming Conventions**:\n  - PascalCase for classes, methods, properties\n  - camelCase for private fields\n  - Prefix interfaces with `I`\n  - Suffix ViewModels with `ViewModel`\n  \n- **MVVM Pattern**:\n  - ViewModels inherit from `PropertyChangedBase` or implement `INotifyPropertyChanged`\n  - Commands use `RelayCommand` from utilities\n  - Views bind to ViewModels via DataContext\n\n### XAML Style\n\n- **MahApps.Metro Controls**: Use Metro-styled controls\n- **Icon Packs**: Use `IconPacks` namespace for icons\n- **Resource Dictionaries**: Shared styles in `Resources/` directory\n- **Naming**: Use `x:Name` for elements that need code-behind access\n\n### Documentation Style\n\n- **Markdown**: All documentation in `.md` or `.mdx` format\n- **Code Blocks**: Use syntax highlighting with language specifiers\n- **Screenshots**: Place in `Website/static/img/`\n- **Links**: Use relative links for internal documentation\n\n## Testing Strategy\n\n- **Manual Testing**: Primary testing approach\n- **Build Verification**: AppVeyor CI ensures builds succeed\n- **Real-World Testing**: Pre-release versions on GitHub Releases\n- **Community Feedback**: GitHub Issues for bug reports\n\n## Package Distribution\n\n**Installation Methods**:\n1. **Direct Download**: GitHub Releases (Setup, Portable, Archive)\n2. **Chocolatey**: `choco install networkmanager`\n3. **WinGet**: `winget install BornToBeRoot.NETworkManager`\n4. **Evergreen**: PowerShell module for automation\n\n**Package Formats**:\n- **Setup (MSI)**: WiX installer in `Source/NETworkManager.Setup/`\n- **Portable**: ZIP file\n- **Archive**: ZIP file\n\n## Security Considerations\n\n1. **Code Signing**: \n   - Free signing via SignPath.io and SignPath Foundation\n   - All official binaries and installers are signed\n\n2. **Profile Encryption**: \n   - Supports encrypted profile files\n   - Protects sensitive credentials and connection data\n\n3. **Privacy**:\n   - No telemetry or data collection by default\n   - Optional third-party services (GitHub API, ipify.org, ip-api.com)\n\n4. **Security Reports**: \n   - See `SECURITY.md` for vulnerability reporting process\n\n## Important Files\n\n- **`Source/NETworkManager.sln`**: Main Visual Studio solution\n- **`Source/GlobalAssemblyInfo.cs`**: Shared assembly version info\n- **`Source/global.json`**: .NET SDK version specification (10.0.100)\n- **`Source/.editorconfig`**: C# code style configuration\n- **`appveyor.yml`**: AppVeyor CI/CD configuration\n- **`.github/workflows/codeql.yml`**: CodeQL security analysis workflow\n- **`.github/workflows/deploy_website.yml`**: Website deployment workflow\n- **`.github/dependabot.yml`**: Dependabot configuration\n- **`.github/mergify.yml`**: Mergify auto-merge configuration\n- **`.github/transifex.yml`**: Transifex translation sync configuration\n- **`.github/stale.yml`**: Stale issue bot configuration\n- **`.gitmodules`**: Git submodule configuration (Dragablz)\n- **`Website/docusaurus.config.js`**: Documentation site configuration\n- **`CONTRIBUTING.md`**: Contribution guidelines\n- **`LICENSE`**: GPL v3 license\n- **`README.md`**: Repository overview and quick start\n\n## Useful Commands\n\n### Application Development\n\n```powershell\n# Restore dependencies\ndotnet restore .\\Source\\NETworkManager.sln\n\n# Build (Release)\ndotnet build .\\Source\\NETworkManager.sln --configuration Release\n\n# Clean solution\ndotnet clean .\\Source\\NETworkManager.sln\n\n# Run application\n.\\Source\\NETworkManager\\bin\\Release\\net10.0-windows10.0.22621.0\\win-x64\\NETworkManager.exe\n```\n\n### Website Development\n\n```bash\n# Install dependencies\ncd Website && npm install  # or yarn install\n\n# Start dev server (http://localhost:3000)\nnpm start  # or yarn start\n\n# Build static site\nnpm run build  # or yarn build\n\n# Serve production build\nnpm run serve  # or yarn serve\n\n# Clear cache\nnpm run clear  # or yarn clear\n```\n\n### Git Operations\n\n```powershell\n# Update submodules\ngit submodule update --init --recursive\n\n# Check status\ngit status\n\n# View changes\ngit diff\n```\n\n## Common Development Scenarios\n\n### Adding a New Network Tool\n\n1. Create model in `Source/NETworkManager.Models/Network/`\n2. Create ViewModel in `Source/NETworkManager/ViewModels/`\n3. Create View (XAML) in `Source/NETworkManager/Views/`\n4. Register in `MainWindow.xaml.cs` or appropriate host\n5. Add localization strings\n6. Update documentation in `Website/docs/application/`\n\n### Adding a New Setting\n\n1. Add property to settings model in `Source/NETworkManager.Settings/`\n2. Update settings ViewModel\n3. Add UI control in settings View\n4. Add validation if needed\n5. Update settings documentation\n\n### Updating Documentation\n\n1. Edit markdown files in `Website/docs/`\n2. Add images to `Website/static/img/`\n3. Update `Website/sidebars.js` if adding new sections\n4. Test locally with `npm start`\n5. Submit pull request\n\n## Resources\n\n- **Documentation**: https://borntoberoot.net/NETworkManager\n- **GitHub Issues**: https://github.com/BornToBeRoot/NETworkManager/issues\n- **GitHub Discussions**: https://github.com/BornToBeRoot/NETworkManager/discussions\n- **Transifex**: https://app.transifex.com/BornToBeRoot/NETworkManager/dashboard/\n- **AppVeyor CI**: https://ci.appveyor.com/project/BornToBeRoot/NETworkManager\n\n## Key Contacts & Community\n\n- **Maintainer**: BornToBeRoot\n- **Contributors**: See `CONTRIBUTORS.md`\n- **Code of Conduct**: `CODE_OF_CONDUCT.md` (Contributor Covenant)\n- **Support**: GitHub Issues and Discussions\n\n## Architecture Highlights\n\n### MVVM Implementation\n\n- **Data Binding**: Extensive use of WPF data binding\n- **Commands**: `RelayCommand` pattern for user actions\n- **Property Change Notification**: `INotifyPropertyChanged` via `PropertyChangedBase`\n- **Dependency Injection**: Manual dependency management (no DI container)\n\n### UI Theming\n\n- **MahApps.Metro Themes**: Light/Dark theme support\n- **Accent Colors**: Customizable accent colors\n- **Resource Dictionaries**: Shared styles and templates\n- **Live Theme Switching**: Runtime theme changes\n\n### Profile System\n\n- **Profile Files**: XML-based profile storage\n- **Encryption**: AES encryption for sensitive data\n- **Groups**: Hierarchical organization\n- **Import/Export**: Profile sharing capabilities\n\n### Embedded Tools Integration\n\n- **Remote Desktop**: Native RDP using `AxMSTSCLib`, `AxMsRdpClient10NotSafeForScripting` and `WindowsFormsHost`\n- **PuTTY**: PuTTY window embedding / process hosting with `WindowsFormsHost`\n- **PowerShell**: PowerShell window embedding / process hosting with `WindowsFormsHost`\n- **VNC**: TigerVNC window embedding / process hosting with `WindowsFormsHost`\n\n## Tips for AI Agents\n\n1. **Respect MVVM**: Keep business logic in ViewModels and Models, not in code-behind\n2. **Use MahApps Controls**: Prefer Metro controls over standard WPF controls\n3. **Localization**: Always use resource strings, never hardcode text\n4. **Follow Existing Patterns**: Study similar features before implementing new ones\n5. **Update Documentation**: Changes to features should include doc updates\n6. **Test on Real Networks**: Network tools require real network testing\n7. **Version Management**: Assembly version is auto-generated in CI/CD\n8. **Submodules**: Remember to init/update submodules (Dragablz in `Source/3rdparty/`)\n9. **DO NOT Modify 3rdparty**: The `Source/3rdparty/` directory contains the Dragablz submodule and is maintained manually — AI agents MUST NOT modify this directory\n10. **Automation Scripts**: Use scripts in `Scripts/` directory for updating lists (OUI, ports, WHOIS servers)\n11. **Check CI Status**: Both AppVeyor (main build) and GitHub Actions (CodeQL, website) must pass\n12. **Dependency Updates**: Dependabot automatically creates PRs for dependency updates\n\n## Glossary\n\n- **MVVM**: Model-View-ViewModel architectural pattern\n- **WPF**: Windows Presentation Foundation (Microsoft's UI framework)\n- **MahApps.Metro**: Modern UI toolkit for WPF applications\n- **Dragablz**: Third-party tab control with drag/drop support\n- **LLDP/CDP**: Link Layer Discovery Protocol / Cisco Discovery Protocol\n- **SNMP**: Simple Network Management Protocol\n- **RDP**: Remote Desktop Protocol\n- **Docusaurus**: React-based static site generator\n- **SignPath**: Code signing service for open source projects\n","category":"root","tokens":4648}]}