Перейти до вмісту

Розробка

Вимоги

  • 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) і запускає проксі Vite для розробки UI, який перенаправляє /__tb (зокрема WebSocket-з’єднання) на цей сервер. Виводиться посилання для отримання доступу 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/, кожна сторінка має початкові метадані, а порядок навігації задають файли meta.json. Її опубліковано на termbridge.dev. Перевірте її командою:

Командна оболонка
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3

Робочий процес перевірки документації запускає таку саму перевірку для запитів на злиття, що стосуються docs/.