
# Vývoj

## Požadavky

- **Bun** pro instalaci pracovního prostoru a skripty
- **Node.js 20+**
- **tmux** a **cloudflared** pro end-to-end testy
- Klíč **Daytona API** a přihlašovací údaje **git** pro integrační test sandboxu (volitelné)
- **Playwright** pro end-to-end testy UI

## Instalace

```bash
bun install
```

## Spuštění aplikace

```bash
bun run dev:beam
```

Tím se sestaví CLI, spustí místní server na portu `8787` (změna pomocí `TERMBRIDGE_DEV_PORT`) s relací `codex` tmux (změna pomocí `TERMBRIDGE_DEV_SESSION`) a spustí vývojová UI Vite, která předává `/__tb` (včetně WebSocket) tomuto serveru. Vypíše vývojový odkaz pro uplatnění URL, který otevřete v prohlížeči. Nastavením `TERMBRIDGE_SKIP_BUILD=1` přeskočíte sestavení CLI.

### Více relací

```bash
TERMBRIDGE_SESSIONS=2 bun run dev:beam
```

Nebo použijte zkratku:

```bash
bun run dev:beam:multi
```

### Režim místních cookies

`dev:beam` nastaví `TERMBRIDGE_INSECURE_COOKIE=1`, pokud tuto proměnnou nenastavíte sami, takže relační cookies fungují přes běžné HTTP. Při přímém spuštění CLI bez HTTPS ji nastavte výslovně:

```bash
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080
```

## Testy

```bash
bun run test
```

- `test:mocked` spouští jednotkové a integrační testy s pokrytím 100 %.
- `test:cli` spouští skutečné end-to-end testy CLI + UI (tmux + cloudflared + Playwright).
- Test sandboxu Daytona v `test:cli` načítá nastavení pouze ze souboru `.env` v adresáři `termbridge-test-app` vedle tohoto repozitáře (`../termbridge-test-app/.env`). Spustí se, pokud tento soubor nastavuje `TERMBRIDGE_E2E_DAYTONA=1` a `TERMBRIDGE_DAYTONA_API_KEY`. Zde nastavte `TERMBRIDGE_SANDBOX_REPO` na repozitář, který můžete klonovat; výchozí testovací repozitář je soukromý a vyžaduje také `TERMBRIDGE_SANDBOX_GIT_USERNAME` a `TERMBRIDGE_SANDBOX_GIT_TOKEN`.

## Dokumentace

Dokumentace tvoří běžné soubory Markdown v `docs/`; každá stránka obsahuje frontmatter a pořadí navigace určují soubory `meta.json`. Je publikována na adrese [termbridge.dev](https://termbridge.inline0.dev/cs/). Ověřte ji příkazem:

```bash
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
```

Pracovní postup obsahu dokumentace spouští stejnou kontrolu při pull requestech, které mění `docs/`.
