التطوير
المتطلبات
- Bun لتثبيت مكونات مساحة العمل وتشغيل النصوص البرمجية
- Node.js 20+
- tmux وcloudflared للاختبارات الشاملة من البداية إلى النهاية
- مفتاح Daytona API وبيانات اعتماد git لاختبار تكامل البيئة المعزولة (اختياري)
- Playwright لاختبارات e2e الخاصة بـ UI
التثبيت
bun install
تشغيل التطبيق
bun run dev:beam
ينشئ هذا الأمر CLI، ويشغّل الخادم المحلي على المنفذ 8787 (يمكن تغييره باستخدام TERMBRIDGE_DEV_PORT) ضمن جلسة tmux باسم codex (يمكن تغييره باستخدام TERMBRIDGE_DEV_SESSION)، ثم يشغّل خادم Vite dev 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 ما لم تضبطها بنفسك، لكي تعمل ملفات تعريف ارتباط الجلسة عبر 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اختبارات e2e حقيقية لـ 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 الفحص نفسه على طلبات السحب التي تتضمن تغييرات في docs/.