Desenvolvimento
Requisitos
- Bun para instalações e scripts do espaço de trabalho
- Node.js 20+
- tmux e cloudflared para testes de ponta a ponta
- Daytona API key + credenciais git para o teste de integração do sandbox (opcional)
- Playwright para testes e2e de UI
Instalação
bun install
Executar o app
bun run dev:beam
Isso compila o CLI, inicia o servidor local na porta 8787 (substitua com TERMBRIDGE_DEV_PORT) com a sessão tmux codex (substitua com TERMBRIDGE_DEV_SESSION) e inicia o Vite dev UI, que encaminha /__tb (incluindo WebSockets) para esse servidor. Ele exibe um URL de acesso de desenvolvimento para abrir no navegador. Defina TERMBRIDGE_SKIP_BUILD=1 para ignorar a compilação CLI.
Várias sessões
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Ou use o atalho:
bun run dev:beam:multi
Modo de cookie local
dev:beam define TERMBRIDGE_INSECURE_COOKIE=1, a menos que você o defina manualmente, para que os cookies de sessão funcionem em HTTP sem criptografia. Ao executar CLI diretamente, sem HTTPS, defina-o explicitamente:
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080
Testes
bun run test
test:mockedexecuta testes de unidade/integração com cobertura de 100%.test:cliexecuta testes e2e reais de CLI + UI (tmux + cloudflared + Playwright).- O teste de sandbox Daytona em
test:clilê as configurações somente de um arquivo.envem um diretóriotermbridge-test-appao lado deste repositório (../termbridge-test-app/.env). Ele é executado quando esse arquivo defineTERMBRIDGE_E2E_DAYTONA=1eTERMBRIDGE_DAYTONA_API_KEY. DefinaTERMBRIDGE_SANDBOX_REPOnesse arquivo como um repositório que você possa clonar; o repositório de teste padrão é privado e também exigeTERMBRIDGE_SANDBOX_GIT_USERNAMEeTERMBRIDGE_SANDBOX_GIT_TOKEN.
Documentação
O conteúdo da documentação consiste em arquivos simples Markdown em docs/, com metadados no início de cada página e arquivos meta.json que definem a ordem de navegação. A documentação é publicada em termbridge.dev. Valide-a com:
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
O fluxo de trabalho de conteúdo da documentação executa a mesma verificação em solicitações de pull que alteram docs/.