cli/docs/framework/overview.md
Snider a57fb4273d docs: restructure for VitePress with flat layout and examples
- Remove mkdocs files (requirements.txt, CNAME)
- Add CLI documentation: build.md, release.md, php.md, run.md
- Add configuration.md with full reference
- Add examples/ directory with sample configurations:
  - go-cli-release.yaml
  - wails-desktop-release.yaml
  - php-laravel-release.yaml
  - linuxkit-server.yml
  - linuxkit-docker-format.yml
  - full-release.yaml
  - minimal-release.yaml
  - official-repos.yaml
- Flatten existing framework docs into framework/
- Update index.md as CLI entry point

Ready for VitePress integration with core-php/docs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:38:49 +00:00

175 lines
4.3 KiB
Markdown

# GUI Application
The Core GUI (`cmd/core-gui`) is a Wails v3 desktop application that demonstrates the Core framework capabilities with integrated MCP support.
## Features
- Angular frontend with Wails bindings
- MCP HTTP server for AI tool integration
- WebView automation capabilities
- Real-time WebSocket communication
- System tray support
- Multi-window management
## Architecture
```
┌─────────────────────────────────────────┐
│ Angular Frontend │
│ (TypeScript + Wails Bindings) │
└─────────────────┬───────────────────────┘
│ IPC
┌─────────────────┴───────────────────────┐
│ Wails Runtime │
│ (Window, Events, Bindings) │
└─────────────────┬───────────────────────┘
┌─────────────────┴───────────────────────┐
│ MCP Bridge │
│ ┌─────────┬──────────┬─────────────┐ │
│ │ Display │ WebView │ WebSocket │ │
│ │ Service │ Service │ Hub │ │
│ └─────────┴──────────┴─────────────┘ │
└─────────────────────────────────────────┘
```
## Running the GUI
### Development Mode
```bash
# From project root
task gui:dev
# Or directly
cd cmd/core-gui
wails3 dev
```
### Production Build
```bash
task gui:build
```
## Directory Structure
```
cmd/core-gui/
├── main.go # Application entry point
├── mcp_bridge.go # MCP HTTP server and tool handler
├── claude_bridge.go # Claude MCP client (optional)
├── frontend/ # Angular application
│ ├── src/
│ │ ├── app/ # Angular components
│ │ └── lib/ # Shared utilities
│ └── bindings/ # Generated Wails bindings
└── public/ # Static assets
```
## Services Integrated
The GUI integrates several Core services:
| Service | Purpose |
|---------|---------|
| Display | Window management, dialogs, tray |
| WebView | JavaScript execution, DOM interaction |
| MCP | AI tool protocol server |
| WebSocket | Real-time communication |
## Configuration
The application uses the Config service for settings:
```go
// Default settings
DefaultRoute: "/"
Language: "en"
Features: []
```
## Frontend Bindings
Wails generates TypeScript bindings for Go services:
```typescript
import { CreateWindow, ShowNotification } from '@bindings/display/service';
import { Translate, SetLanguage } from '@bindings/i18n/service';
// Create a new window
await CreateWindow({
name: "settings",
title: "Settings",
width: 800,
height: 600
});
// Show notification
await ShowNotification({
title: "Success",
message: "Operation completed!"
});
```
## WebSocket Communication
Connect to the WebSocket endpoint for real-time updates:
```typescript
const ws = new WebSocket('ws://localhost:9877/ws');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('Received:', data);
};
ws.send(JSON.stringify({
type: 'ping',
data: {}
}));
```
## System Tray
The application includes system tray support:
```go
// Set tray menu
display.SetTrayMenu([]display.TrayMenuItem{
{Label: "Open", ActionID: "open"},
{Label: "Settings", ActionID: "settings"},
{IsSeparator: true},
{Label: "Quit", ActionID: "quit"},
})
```
## Building for Distribution
### macOS
```bash
task gui:build
# Creates: build/bin/core-gui.app
```
### Windows
```bash
task gui:build
# Creates: build/bin/core-gui.exe
```
### Linux
```bash
task gui:build
# Creates: build/bin/core-gui
```
## Environment Variables
| Variable | Description |
|----------|-------------|
| `MCP_PORT` | MCP server port (default: 9877) |
| `DEBUG` | Enable debug logging |