Разработка
Требования
- Bun для установки зависимостей и запуска скриптов в рабочей области
- Node.js 20+
- tmux и cloudflared для сквозных тестов
- Daytona ключ API и учетные данные git для интеграционного теста песочницы (необязательно)
- Playwright для сквозных тестов UI
Установка
bun install
Запуск приложения
bun run dev:beam
Эта команда собирает CLI, запускает локальный сервер на порту 8787 (можно изменить с помощью TERMBRIDGE_DEV_PORT) с сеансом tmux codex (можно изменить с помощью TERMBRIDGE_DEV_SESSION) и запускает dev Vite UI, который перенаправляет /__tb (включая WebSockets) на этот сервер. Команда выводит ссылку для активации в dev-режиме URL, которую можно открыть в браузере. Установите TERMBRIDGE_SKIP_BUILD=1, чтобы пропустить сборку CLI.
Несколько сеансов
TERMBRIDGE_SESSIONS=2 bun run dev:beam
Или используйте сокращенную команду:
bun run dev:beam:multi
Режим локальных cookie
dev:beam задает TERMBRIDGE_INSECURE_COOKIE=1, если вы не задали его сами, поэтому файлы cookie сеанса работают через обычный HTTP. При запуске CLI напрямую без HTTPS задайте его явно:
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080
Тесты
bun run test
test:mockedзапускает модульные и интеграционные тесты с покрытием 100%.test:cliзапускает сквозные тесты с настоящими CLI + UI (tmux + cloudflared + Playwright).- Тест песочницы 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. Проверьте ее командой:
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
Рабочий процесс проверки документации выполняет ту же проверку для запросов на слияние, затрагивающих docs/.