Перейти к содержимому

Разработка

Требования

  • 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

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/.