# دعم Maguyva للغة JavaScript: بحث بالذكاء الاصطناعي لمستودعات بيئات التشغيل المختلطة

Canonical source: https://maguyva.ai/ar/languages/javascript

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

يدعم Maguyva لغة JavaScript عبر تحليل AST واستخلاص الرموز، مما يساعد وكلاء الذكاء الاصطناعي على العمل عبر خدمات Node، وكود المتصفح، والنصوص البرمجية، والوحدات القديمة، دون أن ينحدر البحث إلى مجرد مطابقة نصية.

## لمحة عن الدعم

- المستوى: دعم AST والرموز
- البرمجة
- الامتدادات: .cjs, .js, .mjs, .spec.js, .stories.js, .test.js
- تحليل AST حقيقي لبحث واعٍ بالصياغة النحوية وسياق بنيوي.
- تُغذّي الرموز المسمّاة البحث الدلالي والمراجع المتقاطعة. ويتوفر التنقل عبر الرسم البياني عند تمكين استخراج العلاقات.
- تُسهم هذه اللغة بالرموز والعلاقات في البحث المراعي لبنية الرسم البياني؛ وتختلف أنواع الحواف المدعومة بحسب التراكيب الأصلية في اللغة.
- يتوفر كل من تحليل AST واستخلاص الرموز.

## الأنسب لـ

- مستودعات Node والمتصفح التي لم تُكمل الانتقال إلى نظام وحدات واحد أو جيل إطار عمل واحد.
- فرق تصون كود JavaScript القديم مع إدخال TypeScript أو حدود حزم جديدة تدريجيًا.
- سير عمل للوكلاء يحتاج إلى بنية عبر ملفات `.js` و`.mjs` و`.cjs` بدلًا من بحث عشوائي في المستودع.

## سير عمل الوكلاء

- تتبّع مسار طلب أو خطوة بناء عبر وحدات JavaScript الأقدم قبل تعديلها.
- مقارنة تنفيذات CommonJS وESM لنفس السلوك عبر المستودع.
- إيجاد الأنماط المتكررة في النصوص البرمجية أو الأدوات المساعدة أو مكوّنات الواجهة الأمامية قبل إدخال تجريد جديد.

## لماذا لا تزال مستودعات JavaScript المختلطة بحاجة إلى بحث واعٍ بالبنية

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

هذا يجعل دعم JavaScript أقل تعلقًا بالصياغة الجميلة وأكثر تعلقًا بالتاريخ. الخطر لا يكمن في تحليل الملف. الخطر يكمن في تعديل وحدة أو دالة مساعدة دون فهم ما إذا كانت تنتمي إلى CommonJS أو ESM أو كود المتصفح أو نمط محلي أقدم.

## ما الذي يستخلصه Maguyva فعليًا في JavaScript

يغطي Maguyva `.js` و`.mjs` و`.cjs`، ويُطبِّع استدعاءات الأعضاء ذات البادئات، ويدعم استدلالات مكوّنات JSX في قواعد كود JavaScript التي تُذيب الحدود بين الواجهة الأمامية والخلفية. كما يُصفِّي قدرًا كبيرًا من ضجيج بيئة تشغيل المتصفح وNode القياسية، بحيث تبقى العلاقات الخاصة بالمستودع مرئية.

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

## سير عمل MCP مفيد لمستودعات بيئات التشغيل المختلطة

يبدو سير العمل العملي عادةً كما يلي:

- استخدم `text_pattern_search` للسلاسل النصية الدقيقة مثل `module.exports`، أو أسماء الأحداث، أو علامات الإعداد القديمة.
- استخدم `intelligent_search` عندما تحتاج إلى اكتشاف على مستوى السلوك مثل "مسار الرفع القديم (legacy upload)" أو "أين يُتحقَّق من المصادقة في حزمة المتصفح".
- استخدم `get_task_context` عندما تكون التسمية غير متسقة وتريد ملخصًا مُجمَّعًا قبل أن يعدِّل الوكيل أي شيء.

## متى تكون هذه الصفحة مفيدة

هذه الصفحة مخصصة للمستودعات التي لا تزال تحتفظ بقدر مهم من كود JavaScript، لا للفرق التي تتظاهر بأن الترحيل قد اكتمل بالفعل. إذا كان المستودع الحالي معظمه TypeScript، ابدأ بـ[TypeScript](/ar/languages/typescript). وإذا كان مكدس الويب القديم لا يزال يمتد إلى قوالب من جهة الخادم أو PHP، فإن [دليل PHP](/ar/languages/php) هو الرفيق الأكثر صلة.

## تفاصيل المحرك

- يغطّي دعم JavaScript الامتدادات `.js` و`.mjs` و`.cjs`، وهذا مهم حين يظل مستودع واحد يمتد عبر أنماط وحدات متعددة.
- تُطبَّع بادئات الأعضاء ووسائط الاستدعاء بحيث يسهُل مقارنة الدوال المساعدة المتكرّرة عبر الملفات القديمة.
- تُدعَم الاستدلالات الخاصة بمكوّنات JSX، بينما يُصفَّى الجدار المعتاد من المتغيّرات العامة المدمجة في المتصفح وNode من ضجيج العلاقات.

## نقاط دخول مفيدة عبر MCP

- `text_pattern_search`: استخدمه للسلاسل النصية الدقيقة مثل `module.exports`، أو أسماء الأحداث، أو علامات إعداد قديمة، قبل توسيع نطاق البحث.
- `intelligent_search`: استخدم هذا حين تكون التسمية غير متسقة وتحتاج إلى إيجاد سلوك مثل "مسار رفع الملفات" بدلًا من رمز.
- `get_task_context`: مفيد حين ينحرف المستودع عن مساره وتحتاج إلى ملخّص مُجمَّع قبل لمس مسار قديم.
