وثائق

دعم اللغات وبيئة العمل للوكلاء

اللغات التي يدعمها Coroid، والأدوات المثبتة في بيئة تشغيل الوكيل، والفروق بين اللغات المدعومة بشكل جيد وتلك المدعومة بشكل ضعيف.

تكتب وكلاء Coroid الكود بنفس طريقة مهندس يعمل عبر سطر الأوامر. لا حاجة للانتظار حتى تكتمل عمليات التكامل لكل لغة: إذا كان بإمكان مطور ماهر فتح مستودعك وقراءته وتعديله وتنفيذ أوامره، فيمكن للوكيل القيام بذلك أيضًا.

ما يختلف حسب اللغة ليس ما إذا كان بإمكان Coroid العمل بها، بل مدى قدرة Coroid على التحقق بشكل مستقل التحقق من التغيير الذي أجراه — التنقل في كودك بشكل دلالي، تجميعه، تشغيل اختباراته، تشغيله داخل حاوية. هذا هو جوهر دعم اللغات، ومن الضروري فهمه قبل الحكم على النتيجة.

بيئة الوكيل

تُنفذ كل مهمة في مساحة عمل لينكس نظيفة وقابلة للتخلص منها، مبنية من صورة دبيان، ولمستخدم غير متمتع بصلاحيات. لا شيء يبقى بعد انتهاء المهمة: تبدأ كل مهمة من نسخة طازجة دون أي محتوى مؤقت أو أدوات مثبتة مسبقًا غير تلك الموجودة في الصورة.

تأتي الصورة مزودة بأدوات تطوير عامة، لذا لا تحتاج معظم المشاريع إلى أي إعدادات إضافية:

الفئةمتاح
جافاسكريبت / تايب سكريبتNode.js 22، npm، npx
بايثونبايثون 3، pip، venv، Poetry، Pipenv
جافاJDK (نسخة بدون واجهة رسومية)، Maven، Gradle
جوأدوات تطوير جو
PHPPHP CLI، Composer
روبيروبي، Bundler
C / C++GCC، G++، Make، CMake
متصفحكروميوم، لتشغيل اختبارات المتصفح والتحقق من معاينة العرض
عامgit، curl، jq، ripgrep، grep، sed، awk، coreutils، عميل PostgreSQL

أي عنصر غير مدرج في القائمة — مثل بيئة تشغيل نادرة، أو إصدار محدد من المترجم، أو تبعية أصلية — لا يشكل عائقًا. بل هو سبب لـ استخدام حاوية خاصة بك.

ما يختلف حسب اللغة

ثلاثة عوامل، مرتبة تنازليًا حسب تأثيرها على الجودة.

خوادم اللغات

يوفر خادم اللغة للوكيل فهماً دلالياً: الانتقال إلى تعريف العنصر، والعثور على المراجع، والأنواع الحقيقية. بوجوده، يمكن للوكيل طرح أسئلة دقيقة حول الكود بدلاً من استنتاج الإجابات من النص. بدونه، يقوم الوكيل بالقراءة — وهذا يعمل بشكل جيد في قواعد الكود الصغيرة والمتوسطة، لكنه أقل موثوقية كلما كبرت قاعدة الكود وازدادت تعقيداً.

Coroid يشغّل خوادم اللغات لـ TypeScript وJavaScript، وPython، وJava وC#.

اللغات الأخرى تعتمد على القراءة. هذا هو أكبر فرق في الجودة بين اللغات، وهو فرق في الدرجة وليس في النوع.

أوامر البناء والاختبار

يحتاج الوكيل إلى تجميع مشروعك وتشغيل مجموعة الاختبارات للتحقق من عمله. يكتشف Coroid هذه الأوامر عند إنشاء المشروع، ويكون الكشف أفضل في التخطيطات التقليدية مقارنةً بالتخطيطات غير المعتادة.

هذا إعداد، وليس قدرة — انظر إلى إعداد البناء والاختبار. زوج صحيح من الأوامر في لغة نادرة يتفوق على زوج خاطئ في لغة شائعة.

الحاويات

حيثما يمكن تشغيل مشروعك في حاوية، يستخدم Coroid ذلك كبيئة تنفيذ، مما يزيل اختلافات البيئة واعتماديات الخدمات دفعة واحدة.

عندما لا تتوفر خادم لغة لغتك

الحلول البديلة العملية، بترتيب فعاليتها:

  • قم بإعداد أوامر البناء والاختبار يدوياً بدلاً من الاعتماد على الكشف. هذا أهم من وجود خادم اللغة.
  • استخدم الحاويات. الحاوية العاملة تغلق معظم الفجوات على مستوى البيئة.
  • استثمر في سياق المشروع. السياق الجيد يعوض جزئياً عما كان سيوفره خادم اللغة، عبر إطلاع الوكيل على الهيكل الذي كان عليه اكتشافه لولا ذلك.

استخدام حاوية خاصة بك

إذا كان مشروعك يبنى ويتُختبر في ملف Dockerfile أو Compose يعمل بالفعل، فهذا هو الإعداد الأكثر موثوقية المتاح لك — أفضل من لغة مدعومة جيداً على الصورة الافتراضية، لأن الحاوية تضمن دقة سلسلة الأدوات والإصدارات واعتماديات الخدمات.

الاختبار بسيط: انسخ مستودعك إلى مجلد فارغ وشغّل أوامر التثبيت والبناء والاختبار دون أي إعدادات إضافية. إذا نجح ذلك، فإن Coroid سيعمل.

السجلات الخاصة والوصول إلى الشبكة

يمكن لمساحات العمل الوصول إلى الشبكة، لذا تعمل سجلات الحزم العامة دون الحاجة إلى إعداد. أما القنوات الخاصة — مثل سجل npm خاص، أو مستودع Maven داخلي، أو PyPI مستضاف ذاتياً — فتحتاج إلى بيانات اعتماد تُقدَّم كإعداد للمشروع، لأن مساحة العمل النظيفة لا تملك بيانات اعتماد جاهزة للوراثة.

مشاريع متعددة اللغات

معظم المشاريع الحقيقية تستخدم أكثر من لغة واحدة. واجهة TypeScript الأمامية مع خدمة Python أمر شائع، وCoroid يتعامل معه. يتحدد مستوى العمق بناءً على اللغة التي تطرأ فيها التغييرات — التغيير في الجزء المدعوم جيداً يحصل على معالجة كاملة بغض النظر عن لغة الجزء الآخر.