
# Ανάπτυξη

## Απαιτήσεις

- **Bun** για εγκαταστάσεις και σενάρια εργασιακού χώρου
- **Node.js 20+**
- **tmux** και **cloudflared** για δοκιμές από άκρο σε άκρο
- **Daytona API κλειδί και διαπιστευτήρια git** για την ενσωματωμένη δοκιμή sandbox (προαιρετικά)
- **Playwright** για δοκιμές e2e του UI

## Εγκατάσταση

```bash
bun install
```

## Εκτέλεση της εφαρμογής

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

Αυτό δημιουργεί το CLI, εκκινεί τον τοπικό διακομιστή στη θύρα `8787` (αλλάξτε την με το `TERMBRIDGE_DEV_PORT`) με τη συνεδρία tmux `codex` (αλλάξτε την με το `TERMBRIDGE_DEV_SESSION`) και εκκινεί τον διακομιστή ανάπτυξης Vite UI, ο οποίος προωθεί το `/__tb` (συμπεριλαμβανομένων των WebSockets) σε αυτόν τον διακομιστή. Εμφανίζει ένα διακριτικό εξαργύρωσης ανάπτυξης URL για άνοιγμα στο πρόγραμμα περιήγησης. Ορίστε το `TERMBRIDGE_SKIP_BUILD=1` για να παραλείψετε τη δημιουργία CLI.

### Πολλαπλές συνεδρίες

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

Ή χρησιμοποιήστε τη συντόμευση:

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

### Λειτουργία τοπικών cookie

Το `dev:beam` ορίζει το `TERMBRIDGE_INSECURE_COOKIE=1`, εκτός αν το ορίσετε εσείς, ώστε τα cookie συνεδρίας να λειτουργούν μέσω απλού HTTP. Όταν εκτελείτε απευθείας το CLI χωρίς HTTPS, ορίστε το ρητά:

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

## Δοκιμές

```bash
bun run test
```

- Το `test:mocked` εκτελεί δοκιμές μονάδας/ενσωμάτωσης με κάλυψη 100%.
- Το `test:cli` εκτελεί πραγματικές δοκιμές e2e CLI + UI (tmux + cloudflared + Playwright).
- Η δοκιμή sandbox Daytona στο `test:cli` διαβάζει τις ρυθμίσεις της μόνο από ένα αρχείο `.env` σε έναν κατάλογο `termbridge-test-app` δίπλα σε αυτό το αποθετήριο (`../termbridge-test-app/.env`). Εκτελείται όταν το αρχείο ορίζει τα `TERMBRIDGE_E2E_DAYTONA=1` και `TERMBRIDGE_DAYTONA_API_KEY`. Ορίστε εκεί το `TERMBRIDGE_SANDBOX_REPO` σε ένα αποθετήριο που μπορείτε να κλωνοποιήσετε· το προεπιλεγμένο αποθετήριο δοκιμών είναι ιδιωτικό και χρειάζεται επίσης τα `TERMBRIDGE_SANDBOX_GIT_USERNAME` και `TERMBRIDGE_SANDBOX_GIT_TOKEN`.

## Τεκμηρίωση

Η τεκμηρίωση αποτελείται από απλά αρχεία Markdown στο `docs/`, με frontmatter σε κάθε σελίδα και αρχεία `meta.json` για τη σειρά πλοήγησης. Δημοσιεύεται στη διεύθυνση [termbridge.dev](https://termbridge.inline0.dev/el/). Επικυρώστε την με:

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

Η ροή εργασίας περιεχομένου Docs εκτελεί τον ίδιο έλεγχο σε αιτήματα έλξης που αφορούν το `docs/`.
