
# Vývoj

## Požiadavky

- **Bun** na inštaláciu a skripty v pracovnom priestore
- **Node.js 20+**
- **tmux** a **cloudflared** na testy od začiatku do konca
- **Daytona API kľúč + git prihlasovacie údaje** na integračný test v sandboxe (voliteľné)
- **Playwright** na testy e2e UI

## Inštalácia

```bash
bun install
```

## Spustenie aplikácie

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

Týmto sa zostaví CLI, spustí lokálny server na porte `8787` (možno zmeniť pomocou `TERMBRIDGE_DEV_PORT`) s reláciou `codex` tmux (možno zmeniť pomocou `TERMBRIDGE_DEV_SESSION`) a spustí vývojový Vite UI, ktorý presmeruje `/__tb` (vrátane WebSocketov) na tento server. Vypíše vývojový odkaz na uplatnenie URL, ktorý môžete otvoriť v prehliadači. Nastavením `TERMBRIDGE_SKIP_BUILD=1` preskočíte zostavenie CLI.

### Viacero relácií

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

Alebo použite skratku:

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

### Režim lokálnych cookies

`dev:beam` nastaví `TERMBRIDGE_INSECURE_COOKIE=1`, ak ho nenastavíte sami, takže relačné cookies fungujú cez obyčajné HTTP. Ak spúšťate CLI priamo bez HTTPS, nastavte ho explicitne:

```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` spúšťa jednotkové a integračné testy s pokrytím 100 %.
- `test:cli` spúšťa skutočné testy CLI + UI od začiatku do konca (tmux + cloudflared + Playwright).
- Test Daytona sandboxu v `test:cli` načítava nastavenia iba zo súboru `.env` v adresári `termbridge-test-app` vedľa tohto repozitára (`../termbridge-test-app/.env`). Spustí sa, keď súbor obsahuje nastavenia `TERMBRIDGE_E2E_DAYTONA=1` a `TERMBRIDGE_DAYTONA_API_KEY`. Nastavte v ňom `TERMBRIDGE_SANDBOX_REPO` na repozitár, ktorý možno klonovať; predvolený testovací repozitár je súkromný a vyžaduje aj `TERMBRIDGE_SANDBOX_GIT_USERNAME` a `TERMBRIDGE_SANDBOX_GIT_TOKEN`.

## Dokumentácia

Dokumentácia pozostáva z obyčajných súborov Markdown v `docs/`, pričom každá stránka obsahuje frontmatter a poradie navigácie určujú súbory `meta.json`. Je zverejnená na [termbridge.dev](https://termbridge.inline0.dev/sk/). Overte ju príkazom:

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

Pracovný postup obsahu dokumentácie vykonáva rovnakú kontrolu pri požiadavkách na zlúčenie, ktoré menia `docs/`.
