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
bun install
Spuštění aplikace
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í
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Nebo použijte zkratku:
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ě:
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080
Testy
bun run test
test:mockedspouští jednotkové a integrační testy s pokrytím 100 %.test:clispouští skutečné end-to-end testy CLI + UI (tmux + cloudflared + Playwright).- Test sandboxu Daytona v
test:clinačítá nastavení pouze ze souboru.envv adresářitermbridge-test-appvedle tohoto repozitáře (../termbridge-test-app/.env). Spustí se, pokud tento soubor nastavujeTERMBRIDGE_E2E_DAYTONA=1aTERMBRIDGE_DAYTONA_API_KEY. Zde nastavteTERMBRIDGE_SANDBOX_REPOna repozitář, který můžete klonovat; výchozí testovací repozitář je soukromý a vyžaduje takéTERMBRIDGE_SANDBOX_GIT_USERNAMEaTERMBRIDGE_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. Ověřte ji příkazem:
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/.