المضيف
المضيف هو البرنامج الذي يمنح منضدة العمل ملفات هذا الكمبيوتر والأجهزة الموصولة به. يوجد مضيف واحد بالضبط لكل كمبيوتر. تطبيق سطح المكتب مضيف؛ وكذلك الخدمة الخلفية التي تُشغَّل بـ commandagi daemon start. عند بدء تطبيق سطح المكتب، يحل محل خدمة تعمل.
يستمع المضيف على 127.0.0.1 فقط (المنفذ 4173 افتراضياً، أو أي منفذ حر)، ويحفظ حالته في ~/.commandagi:
| الملف | ما يحتويه |
|---|---|
host.json | الحساب المرتبط بهذا المضيف ومعرّفه وإعدادات الربط (للمالك وحده) |
grants.json | التفويضات الدائمة المُنشأة على هذا المضيف (للمالك وحده) |
principals.json | تجزئات بيانات اعتماد الجهات الفاعلة ومفاتيح الحسابات الموثوقة (للمالك وحده) |
mcp.json | نقطة MCP المحلية ورمزها الخاص بكل تشغيل (للمالك وحده) |
daemon.json | العملية التي تستضيف، وعلى أي منفذ |
settings.json، recents.json، devices/، worlds/ | إعداداتك على مستوى المستخدم وتعريفاتك |
daemon.log | سجل المضيف |
من أين يأتي: يُرفَق المضيف مع تطبيق سطح المكتب، ويُوزَّع وحده كحزمة npm باسم @commandagi/host (npm install -g @commandagi/host، مع Node 22 أو أحدث)، وأمر commandagi فيها هو أمر سطر الأوامر الموصوف أدناه. الحزمة commandagi على npm هي SDK فقط؛ راجع SDK وMCP.
الأمر commandagi
commandagi daemon start [--port N] [--project DIR] [--name X] [--no-platform]
commandagi daemon status | stop | logs
commandagi daemon run [same flags, in the foreground]
commandagi mcp [--credential-file F]
commandagi grant add | list | revoke …
commandagi threed install | status
commandagi code eval <path> [--input name=value]…- يشغّل
daemon startالمضيف في الخلفية ويكتب سجله في~/.commandagi/daemon.log. يستضيف--no-platformمحلياً دون ربط بحساب. - يرفض
daemon stopالعمل ما دام تطبيق سطح المكتب هو المضيف — أغلقه من التطبيق نفسه. mcpهو موصِّل stdio للوكلاء (راجع SDK وMCP). وgrantينشئ التفويضات الدائمة ويلغيها (راجع الوكلاء والتفويضات الدائمة).threedيثبّت خدمة التصميم ثلاثي الأبعاد المحلية؛ وcode evalيقيّم جزء كود بلا واجهة ويطبع رسم عملياته كـ JSON.
اربط المضيف بحسابك
يمكن الوصول إلى المضيف المرتبط بحساب من منضدة عمل ذلك الحساب من أي مكان، ويتصرف بوصفه ذلك الحساب. الربط هو تسجيل الدخول:
- في تطبيق سطح المكتب، سجّل الدخول عندما يطلب ذلك؛
- في صفحة منضدة العمل التي يقدمها المضيف، سجّل الدخول من الشريط الأيسر — يتحقق المضيف من المفتاح ويحتفظ به؛
- من الصدفة، اضبط
COMMANDAGI_API_KEYعلى مفتاح API قبل تشغيل الخدمة.
يُحفظ مفتاح الحساب في host.json، وهو ملف عادي للمالك وحده، فتبقى نسخة من ~/.commandagi المنسوخة مسجلة الدخول. يؤدي تسجيل الخروج إلى حذفه.
اقترن المضيفين ببعضهم
يستطيع المضيفون على حواسيب مختلفة أن يقترنوا، في الاتجاهين، بفعل واحد: يعرض أحدهم الاقتران ويقبله الآخر. الاقتران قرار يتخذه شخص دائماً. بعد الاقتران، يستطيع الوكلاء عرض المضيفين الآخرين واستدعاءهم — ضمن التفويضات الموجودة هناك.
مشغّلات الصفحة: USB والبلوتوث من المتصفح
تعمل بعض المشغّلات داخل صفحة منضدة العمل نفسها، باستخدام WebSerial وWeb Bluetooth. لا يفتح المتصفح منفذاً إلا عندما تختاره أنت، لذا لا يستخدم الوكيل أبداً اتصالاً إلا إذا أنشأه شخص، ولا يفتح واحداً من تلقاء نفسه. تُدار الأجهزة الشبكية (واجهة HTTP للطابعة، وFluidNC على TCP) بواسطة المضيف.
المشغّلات التي تستمع لأجهزة تتصل عبر الشبكة المحلية تحتاج إلى الإعداد "devices.lanListener": true.
كتالوج المشغّلات
يذكر كل مشغّل ما تم التحقق منه باستخدامه: none (لا شيء)، أو loopback (مقابل محاكاة برمجية أمينة للبروتوكول)، أو bench (على منضدة الاختبار)، أو hardware (على العتاد). لا يدّعي المشغّل أكثر مما أُنجز. لم يُعتمد أي جهاز على العتاد بعد.
| المشغّل | الجهاز والبروتوكول | يعمل في | مُتحقَّق منه |
|---|---|---|---|
grbl-serial | GRBL 1.1، تسلسل USB | الصفحة | loopback |
grbl-tcp | FluidNC / grblHAL، telnet (TCP 23) | المضيف | loopback |
marlin-serial | Marlin، تسلسل USB | الصفحة | loopback |
smoothie-serial | Smoothieware، تسلسل USB | الصفحة | loopback |
linuxcnc-rsh | LinuxCNC 2.9 linuxcncrsh (TCP 5007) | المضيف | loopback |
octoprint-http | OctoPrint 1.x | المضيف | loopback |
moonraker-http | Klipper عبر Moonraker | المضيف | loopback |
prusalink-http | PrusaLink | المضيف | loopback |
repetier-http | Repetier-Server | المضيف | loopback |
duet-http | Duet / RepRapFirmware 3.1+ | المضيف | loopback |
feetech-sts-serial | ناقل المحركات Feetech STS/SCS (SO-100/101) | الصفحة | loopback |
dynamixel2-serial | Dynamixel Protocol 2.0 (Koch، WidowX) | الصفحة | loopback |
xarm-tcp | UFACTORY xArm / Lite 6 (TCP 502) | المضيف | loopback |
host-relay | ذراع CommandAGI بـ ESP32، HTTP عبر الشبكة المحلية | المضيف | loopback |
wifi8k-drone | مسيّرة WIFI_8K / E99 عبر وصلة ESP32 | الصفحة | loopback |
ble-hid-relay | مُرحِّل BLE HID (ESP32) | الصفحة | loopback |
openpnp-files | تسليم مهام OpenPnP (ملفات) | المضيف | loopback |
os-input | لوحة المفاتيح والمؤشر في هذا الكمبيوتر | المضيف | loopback |
cdp-tab | علامة تبويب في المتصفح (Chrome DevTools Protocol) | المضيف | loopback |
cdp-screencast | فيديو علامة تبويب في المتصفح | المضيف | loopback |
pty-shell | صدفة على هذا الكمبيوتر | المضيف | loopback |
python-kernel | نواة Python (دفاتر الملاحظات) | المضيف | loopback |
display-capture | التقاط الشاشة | الصفحة | none |
uvc-camera | كاميرا USB | الصفحة | none |
microphone | ميكروفون | الصفحة | none |
تستخدم عوالم المحاكاة مُحاكيَين بدلاً من ذلك: gcode-sim لقنوات G-code، وservo-sim لناقلات المحركات السيرفو.
التالي
امنح وكيلاً صلاحية على جهاز: الوكلاء والتفويضات الدائمة.