# Genshin Artifact Assistant

Local Windows-first Electron app for scanning Genshin Impact artifacts, triaging them, and suggesting simple character builds without depending on Inventory Kamera or Genshin Optimizer as the main workflow.

## Current MVP

- Electron + React + TypeScript app shell.
- Dark purple fintech/glassmorphism UI direction.
- Genshin capture source discovery.
- Smart Capture that focuses Genshin, hides the app, captures the primary screen, and restores the app.
- Artifact detail-panel crop detection with focused OCR regions.
- OCR parser for artifact name, slot, main stat, substats, set, equipped character, confidence, and review notes.
- Demo triage and build suggestion views.
- Read-only overlay preview shell.

## Documentation

This project uses the engineering template from `https://git.noveria.net/bao/template` adapted to this app:

- [AGENTS.md](AGENTS.md)
- [docs/PROJECT.md](docs/PROJECT.md)
- [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)
- [docs/CONVENTIONS.md](docs/CONVENTIONS.md)
- [docs/DECISIONS.md](docs/DECISIONS.md)
- [docs/CHECKLISTS.md](docs/CHECKLISTS.md)
- [docs/workflow.md](docs/workflow.md)

## Run

```powershell
npm install
npm run dev
```

Use the Electron app window for scanner work. The browser preview does not expose the local capture bridge.

### Automatischer Scan: als Administrator starten

Genshin läuft erhöht (Administrator). Windows (UIPI) verwirft dann alle simulierten Maus-Eingaben aus einer nicht-erhöhten App - SendInput meldet dabei trotzdem Erfolg. Für den automatischen Scan muss die App deshalb ebenfalls erhöht laufen:

- `npm run dev:admin` (oder Doppelklick auf `dev-admin.cmd`) - öffnet aus einem normalen Terminal heraus einen UAC-Prompt und startet danach `npm run dev` in einem neuen Administrator-Fenster.
- Alternativ: Terminal per Rechtsklick "Als Administrator ausführen" öffnen und darin normal `npm run dev` starten.

Der UAC-Prompt lässt sich nicht dauerhaft abschalten; das ist Windows-Design. Die gepackte App fordert Admin-Rechte über `requestedExecutionLevel: requireAdministrator` selbst an. Die App zeigt im Scanner-Header und in der Scanner-Diagnose nur an, ob sie gerade erhöht läuft - sie startet sich nicht selbst neu.

## Validate

```powershell
npm run lint
npm test
npm run build
```

## Safety Boundaries

- No memory reads.
- No hooks or process injection.
- No game file modification.
- No automatic delete, enhance, feeding, or resource-spending actions.
- In-game lock/marking is a future opt-in module and remains disabled in this MVP.
