# Nest UI Community Framework

A community-focused Python terminal UI framework for developer tools, launchers, dashboards, and ops consoles.

## What changed in this beauty update

This update focuses on making Nest UI feel more premium inside the terminal while keeping all of the existing community/dev features.

### Visual upgrades
- More polished card rendering with stronger focus borders.
- Better command/footer bar styling.
- Nicer section headers and notification panels.
- Expanded emoji pack for widgets, ops tools, plugins, search, workspace, and dashboard concepts.
- Added extra built-in themes:
  - `neon_night`
  - `rose_gold`
  - `oceanic`
  - `ember`
  - `orchid`
- Existing premium themes retained:
  - `aurora`
  - `royal`
  - `frost`
  - `midnight`
  - `sunset`
  - `matrix`

### Compatibility upgrades
- `Window.log()` now accepts both:
  - `window.log("hello")`
  - `window.log("INFO", "hello")`
- Added `Section.add_stat(...)` alias for easier stat card usage.
- Added `Section.add_key_value(...)` helper alias.
- Added `themes` command in the UI to list all bundled themes quickly.

## Included feature packs

### Core UX
- Tabs, nested tabs, context menus, shortcuts, settings overlay, focus highlight, accessibility, density modes, mouse toggle, responsive resize, onboarding overlay.

### Data/UI
- Typed inputs (`int`, `float`, `email`, `url`, `path`)
- Masked/password input
- Conditional fields
- Schema validation helpers
- File picker
- JSON viewer
- Key/value cards
- Stat cards
- Multi-select

### Tables
- Searchable tables
- Sortable/filterable tables
- Pagination
- Editable cells
- Status tables

### Dev/Ops
- Logger
- Log viewer
- Terminal output panel
- Task runner
- Background jobs
- Service controller
- Process monitor
- Port checker
- Health checks
- Dependency graph
- Scheduler
- Recent projects
- Workspace profiles

### Voice system
- Free-form voice/typed command mode
- Phrase matching
- Wake word
- Cooldown
- Dangerous action confirmation
- Command chaining (`then`)
- Multilingual phrase packs

### Plugins
- Metadata
- Sandbox flag
- Enable/disable state
- Hooks through the event bus
- Widget registry for custom widgets
- Plugin browser table support

### Persistence/config
- Config manager
- Theme editor
- Save/load UI state
- Workspace profiles

## Quick start

```python
from nest_ui import App

app = App(theme='aurora', icon_pack='emoji')
window = app.create_window('Nest UI', 'community framework')
main = window.create_tab('Main').create_section('Demo')
main.add_stat('CPU', '23%', tone='info', delta='+3%')
main.add_button('Hello', lambda: window.log('hello from Nest UI'))
window.run()
```

## Demo files

```bash
python examples/demo_all.py
python examples/demo_beauty_plus.py
```

## Bundled themes

`dark`, `light`, `midnight`, `matrix`, `sunset`, `aurora`, `royal`, `frost`, `neon_night`, `rose_gold`, `oceanic`, `ember`, `orchid`

## Notes
- Microphone input is optional and uses `SpeechRecognition` if installed.
- Clipboard integration uses `pyperclip` if installed.
- Process monitoring uses `psutil` if installed.
- Terminal appearance depends on the font and emoji support of the terminal being used.


## What changed in the assistant + interaction update

### Assistant mode
- Added `AssistantManager` for Jarvis-like helper flows inside Nest UI.
- Added `AssistantPanel` widget for listening/status/intent previews.
- Added `TranscriptPanel` widget for live transcript history.
- Added default assistant intents for:
  - opening games/apps
  - switching tabs
  - changing themes
  - opening logs/help
- Added transcript memory, wake-word handling, and voice-reply toggles.
- Added assistant-friendly transcript logging such as:
  - `คุณพูดว่า: เปิดเกม Roblox`
  - `กำลังเปิดเกม roblox`

### Voice capture fixes
- Improved microphone capture with provider detection.
- `VoiceEngine` now tries `SpeechRecognition` first and Windows native `System.Speech` as a fallback on Windows.
- Better typed fallback warnings when mic capture fails.
- Added provider/status tracking for debugging voice capture issues.

### Click / mouse fixes
- Added best-effort clickable widget activation in terminals that support VT mouse reporting.
- Mouse support now enables extended SGR reporting and maps click rows back to widget cards.
- Improved Windows VT console setup when mouse mode is enabled.

### New quick commands
- `assistant` opens the assistant bridge directly.
- `A` shortcut opens the assistant prompt.

### New icons
- Added assistant/transcript/mic/speaker icons for richer assistant dashboards.


## Assistant quick start

```python
from nest_ui import App

app = App(theme='neon_night', icon_pack='emoji', mouse_support=True)
window = app.create_window('Nest Assistant', 'assistant-ready terminal ui')
assistant = window.enable_assistant(enabled=True, wake_word='nest', voice_reply_enabled=False, voice_profile='nova')

sec = window.create_tab('Assistant').create_section('Bridge')
sec.add_assistant_panel('Nest Assistant', manager=assistant)
sec.add_transcript_panel('Transcript', manager=assistant)

window.run()
```

## Notes for mouse + voice
- Mouse click support is best on Windows Terminal, iTerm2, modern xterm-compatible terminals, and other VT-enabled terminals.
- Voice capture will use `SpeechRecognition` when installed, then fall back to Windows `System.Speech` on Windows.
- If microphone capture still fails, use the built-in typed fallback to verify assistant routing first.
