Programowanie
Wymagania
- Bun do instalowania zależności i uruchamiania skryptów w workspace
- Node.js 20+
- tmux i cloudflared do testów end-to-end
- Daytona API key + dane uwierzytelniające git do testu integracyjnego piaskownicy (opcjonalnie)
- Playwright do testów e2e UI
Instalacja
bun install
Uruchamianie aplikacji
bun run dev:beam
Kompiluje CLI, uruchamia serwer lokalny na porcie 8787 (zmień za pomocą TERMBRIDGE_DEV_PORT) z sesją codex tmux (zmień za pomocą TERMBRIDGE_DEV_SESSION) i uruchamia deweloperskie UI Vite, które przekazuje ruch /__tb (w tym WebSockety) do tego serwera. Wyświetla deweloperski link do wykorzystania URL w przeglądarce. Ustaw TERMBRIDGE_SKIP_BUILD=1, aby pominąć kompilację CLI.
Wiele sesji
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Możesz też użyć skrótu:
bun run dev:beam:multi
Tryb lokalnych plików cookie
dev:beam ustawia TERMBRIDGE_INSECURE_COOKIE=1, jeśli nie ustawisz go samodzielnie, dzięki czemu pliki cookie sesji działają przez zwykłe HTTP. Uruchamiając bezpośrednio CLI bez HTTPS, ustaw tę zmienną jawnie:
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:mockeduruchamia testy jednostkowe i integracyjne z pokryciem 100%.test:cliuruchamia rzeczywiste testy e2e CLI + UI (tmux + cloudflared + Playwright).- Test sandboxa Daytona w
test:clipobiera ustawienia wyłącznie z pliku.envw katalogutermbridge-test-appobok tego repozytorium (../termbridge-test-app/.env). Test jest uruchamiany, gdy w pliku ustawionoTERMBRIDGE_E2E_DAYTONA=1iTERMBRIDGE_DAYTONA_API_KEY. Ustaw tamTERMBRIDGE_SANDBOX_REPOna repozytorium, które możesz sklonować; domyślne repozytorium testowe jest prywatne i wymaga takżeTERMBRIDGE_SANDBOX_GIT_USERNAMEiTERMBRIDGE_SANDBOX_GIT_TOKEN.
Dokumentacja
Dokumentacja składa się ze zwykłych plików Markdown w docs/, z metadanymi frontmatter na każdej stronie i plikami meta.json określającymi kolejność nawigacji. Jest opublikowana pod adresem dokumentacjatermbridge.dev. Sprawdź ją za pomocą:
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
Proces dokumentacji sprawdza to samo w żądaniach pull request obejmujących docs/.