في عالم يتسارع فيه الاعتماد على الذكاء الاصطناعي لإدارة المهام المعقدة، تبرز الحاجة إلى أدوات تمنحه القدرة على التفاعل بسلاسة مع بيئات العمل التقليدية. هنا يأتي دور TermHub، بوابة تحكم طرفية مفتوحة المصدر مصممة خصيصًا لوكلاء الذكاء الاصطناعي، لتمكينهم من إدارة الجلسات الطرفية بذكاء وكفاءة غير مسبوقة.
ما هو TermHub وكيف يعمل؟
TermHub هي أداة تحكم طرفية متكاملة مدعومة بالذكاء الاصطناعي، تم تصميمها لتعمل ضمن حلقة مغلقة تتيح لوكلاء الذكاء الاصطناعي التفاعل الديناميكي مع بيئة الطرفية:
- يقوم وكيل الذكاء الاصطناعي بفحص الجلسات الطرفية المفتوحة.
- يفتح وكيل الذكاء الاصطناعي نافذة أو علامة تبويب عند الحاجة.
- يطلق وكيل الذكاء الاصطناعي جلسة محددة أو يستهدفها.
- يرسل وكيل الذكاء الاصطناعي المهمة إلى تلك الجلسة.
- يلتقط وكيل الذكاء الاصطناعي المخرجات الجديدة فقط التي يتم إنتاجها بعد الإرسال، ويعيدها إلى المستخدم.
الميزات الرئيسية والتوافق
يقدم TermHub مجموعة من الميزات التي تجعله أداة لا غنى عنها لأتمتة الطرفيات بواسطة الذكاء الاصطناعي:
- الأمر الرئيسي:
termhub - الاسم المستعار:
thub - حزمة NPM:
@duo121/termhub - الواجهات الخلفية لنظام MacOS:
iTerm2,Terminal - الواجهات الخلفية لنظام Windows:
Windows Terminal,Command Prompt (CMD)
التثبيت
يمكن تثبيت TermHub بسهولة عبر NPM:
npm install -g @duo121/termhub
أو باستخدام Homebrew على نظام macOS:
brew tap duo121/termhub https://github.com/duo121/termhubbrew install duo121/termhub/termhub
كما يمكن التثبيت من إصدارات GitHub مباشرة (بدون npm) عن طريق تنزيل الملفات المضغوطة المناسبة لنظامك:
termhub_<version>_macos-arm64.tar.gztermhub_<version>_windows-x64.zip
بعد فك الضغط، لنظام Mac، تأكد من تنفيذ الأمر التالي:
chmod +x termhub./termhub --version
دليل البدء السريع لوكلاء الذكاء الاصطناعي
لبدء التفاعل السريع، يمكن لوكلاء الذكاء الاصطناعي استخدام الأوامر التالية:
termhub --helptermhub spectermhub list
تستخدم spec لتوفير بيانات قابلة للقراءة آليًا، بينما توفر --help معلومات قابلة للقراءة من قبل البشر. كلاهما يتضمن الآن تلميحًا حول currentSession يمكن نسخه مباشرة إلى --session لتسهيل عمل وكيل الذكاء الاصطناعي.
إمكانيات حزمة تطوير البرمجيات (SDK)
يتضمن TermHub الآن حزمة SDK للمعاينة، مما يتيح للمطورين بناء تطبيقات مخصصة تتفاعل مع الطرفيات:
يستورد { createTermhubClient } من @duo121/termhub/sdk;
تشمل قدرات SDK الأساسية:
- فتح/إغلاق الأهداف الطرفية.
- البحث عن/حل الجلسات الطرفية.
- إرسال نص لوحة المفاتيح والأحداث الرئيسية (
key/combo/sequence). - محاكاة النقر بالماوس على الهدف الطرفي (
mouseClick) على نظام التشغيل MacOS.
ملاحظات المنصة:
- Mac (
iTerm2/Terminal): يتم دعم لوحة المفاتيح والنقر بالماوس بالكامل. - Windows (
Windows Terminal/CMD): يتم دعم التحكم بلوحة المفاتيح؛mouseClickغير مدعوم حاليًا.
مثال سريع لاستخدام SDK:
يستورد { createTermhubClient } من @duo121/termhub/sdk;ثابت عميل = createTermhubClient({ برنامج: iterm2 });ثابت مفتوح = انتظر عميل.يفتح({ نِطَاق: tab });انتظر عميل.يرسل({ حصة: مفتوح.هدف.مقبض, نص: echo hello from sdk });انتظر عميل.يضعط({ حصة: مفتوح.هدف.مقبض, مفتاح: enter });ثابت الإخراج = انتظر عميل.يأسر({ حصة: مفتوح.هدف.مقبض, خطوط: 20 });وحدة التحكم.سجل(الإخراج.نص);
نظرة عامة على الأوامر الرئيسية
يتضمن TermHub مجموعة واسعة من الأوامر للتحكم في الطرفيات، نلخصها فيما يلي:
open: لفتح نافذة طرفية أو علامة تبويب جديدة.list: لسرد جميع النوافذ وعلامات التبويب والجلسات الطرفية النشطة.resolve/find: لتحديد جلسة طرفية واحدة محددة من بين عدة خيارات.send: لإرسال نص أو أمر إلى جلسة طرفية، مع إمكانية انتظار التقاط المخرجات.press: لإرسال أحداث مفاتيح حقيقية أو مجموعات مفاتيح أو تسلسلات.capture: لقراءة المخرجات المرئية أو المخرجات الجديدة منذ آخر نقطة إرسال.focus: لجلب النافذة أو الجلسة المستهدفة إلى المقدمة.close: لإغلاق علامة تبويب أو نافذة طرفية معينة.doctor: للتحقق من جاهزية النظام الأساسي والواجهات الخلفية والأتمتة.spec: لطباعة عقد JSON قابل للقراءة آليًا يصف إمكانيات TermHub.
قواعد استخدام الذكاء الاصطناعي الفعّال
لضمان استخدام TermHub بفعالية ودقة، يجب على وكلاء الذكاء الاصطناعي الالتزام بالقواعد التالية:
- دائمًا
resolve(أوfind) إلى هدف واحد محدد قبل تغيير الأوامر. - استخدم
--appعندما تكون واجهات خلفية متعددة نشطة. - استخدم
--dry-runقبل العمليات الخطرة لاختبارها. - استخدم
send --no-enterفقط عندما تخطط لإرسال مفتاح إدخال حقيقي منفصل لاحقًا. - لا تقم أبدًا بتزييف الإرسال عن طريق إلحاق أسطر جديدة حرفيًا بالداخل
--textأوstdin.
أوضاع الضغط على المفاتيح (`press`)
يدعم أمر press أوضاع إدخال واحدة بالضبط لإرسال أحداث المفاتيح:
--key <key>: لإرسال مفتاح واحد (مثال:enter).--combo <combo>: لإرسال مجموعة مفاتيح (مثال:ctrl+c,cmd+k).--sequence <steps>: لإرسال تسلسل من المفاتيح (مثال:esc,down*5,enter).
ضوابط إضافية:
--repeat <n>: لتكرار المفتاح أو المجموعة (فقط لـ--keyو--combo).--delay <ms>: لتحديد تأخير بالملي ثانية بين الأحداث المتكررة أو المتسلسلة.
أمثلة على أمر press:
اضغط على termhub --session <id|handle> --مفتاح الدخول إلى termhub، اضغط على --session <id|handle> --combo ctrl+c termhub press --session <id|handle> --تسلسل esc,down*3,enter --تأخير 60
سيناريوهات الذكاء الاصطناعي الشائعة
فيما يلي بعض الأمثلة على كيفية استخدام وكلاء الذكاء الاصطناعي لـ TermHub في مهام يومية:
- فتح نافذة iTerm2 جديدة:
termhub open --app iterm2 --window - إدراج جميع علامات تبويب iTerm2:
termhub list --app iterm2 - إغلاق علامة تبويب محددة حسب العنوان:
termhub resolve --title Task1; termhub close --session <resolved-handle-or-session-id> - قراءة آخر 50 سطرًا من علامة التبويب الطرفية الحالية:
termhub resolve --app terminal --current-window --current-tab --current-session; termhub capture --app terminal --session terminal:session:<window-id>:<tab-index> --lines 50 - تشغيل أمر في علامة تبويب Windows Terminal بعنوان ‘API’:
termhub resolve --app windows-terminal --title API; termhub send --app windows-terminal --session windows-terminal:session:<window-handle>:<tab-index> --نص npm test
حلقة الإرسال والتقاط المخرجات الجديدة (Delta Loop)
يدعم TermHub الآن حلقة فحص الجلسة المضمنة، مما يسمح لوكلاء الذكاء الاصطناعي بالتقاط المخرجات الجديدة التي تم إنتاجها فقط بعد إرسال الأمر.
التدفق الأساسي:
إرسال termhub --session <id|handle> --نص npm test --في انتظار الإخراج 1200
كيف يعمل:
- يقوم أمر
sendبتخزين نقطة تفتيش لتلك الجلسة بالضبط قبل كتابة الإدخال. - ينتظر أمر
send --await-output <ms>ويعيد فقط مخرجات دلتا المنتجة بعد الإرسال. - يظل
capture --since-last-sendمتاحًا عندما تتطلب خطوة قراءة صريحة منفصلة.
التزامن:
- يتم تحديد نطاق نقاط التفتيش على مستوى الجلسة، مما يسمح لعميلين من الذكاء الاصطناعي باستخدام جلسات مختلفة بالتوازي دون تعارض.
- يتم تخزين ملفات الحالة تحت المسار
~/.termhub/stateبشكل افتراضي.
ملاحظات هامة
- يقبل
--sessionمعرف الجلسة الأصلي أو مقبض مساحة الاسم. - تعتمد وظائف Windows مثل
focus/send/capture/closeعلى PowerShell و UI Automation. - يعتبر
captureفي Windows أفضل محاولة، ويعتمد على إمكانية الوصول إلى النص المرئي.
يمثل TermHub قفزة نوعية في كيفية تفاعل وكلاء الذكاء الاصطناعي مع الطرفيات، موفرًا تحكمًا دقيقًا ومرونة عالية. بفضل بنيته المفتوحة المصدر، يوفر فرصًا لا محدودة للتخصيص والتطوير، مما يجعله أداة أساسية في ترسانة أي مطور ذكاء اصطناعي يسعى لأتمتة المهام المعقدة في بيئة الطرفية.