ما خياراتك بعد انتهاء دعم خادم الاكسشان 2010؟
بما أن دعم خادم التبادل 2010 (وبالتالي استخدامه) انتهى مع نهاية عام 2020، فعليك الاستفادة من الوقت المتبقي لوضع خطة للانتقال إلى مكان آخر، وكيفية الانتقال، وما يجب الانتقال إليه.

أدوات
يمكنك استدعاء وظيفة واحدة أو أكثر لمساعدتك في استعلام المستخدم.
تم تقديم توقيعات الوظائف داخل علامات XML mode=\"abstract\" يعيد ~1500 حرف (صفحة PDF 1 أو وصف HTML meta) -- استطلاع رخيص لتقسيم الصلة قبل دفع تكاليف النص الكامل. mode=\"full\" (القيمة الافتراضية) يعيد كامل المقالة. أفضل جهد: الفشل يعود بـ errorInfo بدلاً من رمي الاستثناء.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"url": {"type": "string", "description": "عنوان URL العام. يتم حظر العناوين الخاصة / الخادم إلا إذا كان SURF_ALLOW_PRIVATE=true."}, "max_chars": {"default": 8000, "description": "الحد الأقصى لعدد الحروف في الجسم (القيمة الافتراضية 8000، يتم تحديد ذلك عبر SURF_EXTRACT_MAX_CHARS).", "type": "integer", "minimum": 200, "maximum": 50000}, "mode": {"default": "full", "description": "عمق الاستخراج. full = جسم المقالة بالكامل (القيمة الافتراضية؛ تستخدم Playwright إذا لزم الأمر). abstract = استطلاع رخيص: صفحة PDF 1 أو وصف HTML meta (~1500 حرف)؛ استخدم هذا لتقسيم الصلة قبل دفع النص الكامل. metadata = عدد الصفحات فقط (PDF). يتم اكتشاف PDF الأكاديمي (arxiv / biorxiv / Nature / OpenReview / NeurIPS / JMLR / PMLR / Springer / PubMed-via-PMC) تلقائيًا؛ الوضع المجرد يتجاوز Playwright بالنسبة لهم.", "type": "string", "enum": ["full", "abstract", "metadata"]}}, "required": ["url"]}}}
{"type": "function", "function": {"name": "google-surf__search_extract", "description": "بحث جوجل واحد + استخراج متوازي من النتائج الأعلى. الوضع الافتراضي mode=\"abstract\" يعيد SERP مع ملخصات ~1500 حرف لكل نتيجة -- استطلاع رخيص لما يحتويه أعلى النتائج فعليًا، عدد أقل بكثير من الرموز مقارنة بتنزيل جميع الجسد. تبديل إلى mode=\"full\" فقط عندما تحتاج إلى نصوص المقالات الفعلية (أبطأ، رموز أكثر بكثير). يتم عزل فشل الاستخراج لكل صفحة. معطل في الوضع السحابي.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"query": {"type": "string", "minLength": 1, "maxLength": 400, "description": "استعلام البحث."}, "limit": {"default": 5, "description": "عدد النتائج للاستخراج (القيمة الافتراضية 5، ماكس 10).", "type": "integer", "minimum": 1, "maximum": 10}, "max_chars": {"description": "تقصير جسم كل نتيجة. القيمة الافتراضية تعتمد على الوضع: ~1500 لملخص، 8000 لـ full (SURF_EXTRACT_MAX_CHARS، محدودة إلى 20000 هنا).", "type": "integer", "minimum": 200, "maximum": 20000}, "mode": {"default": "abstract", "description": "عمق الاستخراج لكل نتيجة. abstract (القيمة الافتراضية) = استطلاع رخيص، ~1500 حرف لكل نتيجة، مثالية لتقسيم الصلة. full = جسم كامل لكل نتيجة، أبطأ بكثير ورموز أكثر؛ فقط عندما تحتاج فعليًا إلى نصوص المقالة.", "type": "string", "enum": ["full", "abstract"]}}, "required": ["query"]}}}
{"type": "function", "function": {"name": "google-surf__health", "description": "حالة الخادم MCP: الوضع المترابط + الانتقالات، استخدام محدد الحد، حجم التخزين المؤقت، الإعدادات. قم بتشغيل هذا إذا بدأت عمليات البحث بالفشل أو إرجاع فارغة -- تحقق من cascade.totalCaptchas و rateLimiter.queueSize، وتقليل حجم البحث إذا كانت مرتفعة.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}}
{"type": "function", "function": {"name": "semgrep__semgrep_rule_schema", "description": "\nالحصول على مخطط قاعدة Semgrep\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - الحصول على مخطط المطلوب لكتابة قاعدة Semgrep\n - تحتاج إلى رؤية ما هي الحقول المتاحة لقاعدة Semgrep\n - التحقق من ما هي الحقول المتاحة لقاعدة Semgrep\n - التحقق من صحة تركيب قاعدة Semgrep\n", "parameters": {"properties": {}, "title": "semgrep_rule_schemaArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__get_supported_languages", "description": "\nيعيد قائمة باللغات المدعومة من قبل Semgrep\n\nاستخدم هذا الأداة فقط إذا كنت لا تعرف ما هي اللغات التي يدعمها Semgrep.\n", "parameters": {"properties": {}, "title": "get_supported_languagesArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__semgrep_findings", "description": "\nيسترداد نتائج من واجهة برمجة التطبيقات Semgrep AppSec Findings.\n\nهذه الوظيفة تعيد نتائج الأمان، جودة الكود، وسلسلة التوريد التي تم تحديدها بالفعل من قبل عمليات Semgrep الماسح السابقة وتم رفعها إلى منصة Semgrep AppSec. لا تؤدي هذه الوظيفة عمليات مسح جديدة أو تحليل الكود مباشرة. بدلًا من ذلك، تقوم بالاستعلام إلى واجهة برمجة تطبيقات Semgrep للوصول إلى نتائج المسح التاريخية لمستودع معين أو مجموعة من المستودعات.\n\nالسلوك الافتراضي: بشكل افتراضي، يجب أن ترشح هذه الأداة حسب المستودع الحالي. يجب على النموذج تحديد اسم المستودع الحالي وتمريره في معلمة 'repos' لضمان أن تكون النتائج مقتصرة على قاعدة الكود ذات الصلة. ومع ذلك، يمكن للمستخدمين طلب تفاصيل من مستودعات أخرى صراحةً، وفي هذه الحالة يجب على النموذج احترام الطلب.\n\nاستخدم هذه الوظيفة عندما يطلب الملف ملخصًا، قائمة أو تحليلًا للنتائج الموجودة، مثل:\n - "يرجى قوائم 10 أمنية رئيسية واقتراح حلول لها."\n - "أظهر جميع الثغرات الحرجة المفتوحة في هذا المستودع."\n - "ملخص نتائج مسح Semgrep الأخيرة."\n - "احصل على نتائج من المستودع X" (طلب صريح لمستودع مختلف)\n\nهذه الوظيفة مثالية للقيام ب:\n- مراجعة، قائمة أو ملخص نتائج المسح السابقة.\n- تقديم رؤى قابلة للتنفيذ أو نصائح إصلاح بناءً على بيانات المسح السابقة.\n\nلا تستخدم هذه الوظيفة لإجراء مسح جديد أو فحص كود لم يتم تحليله سابقًا بواسطة\nSemgrep. للمسح الجديد، استخدم الوظيفة المناسبة للفحص.\n", "parameters": {"properties": {"issue_type": {"default": "ISSUE_TYPE_SAST", "description": "نوع المشكلة لفلترة.", "enum": ["ISSUE_TYPE_SAST", "ISSUE_TYPE_SCA"], "title": "نوع المشكلة", "type": "string"}, "repos": {"default": [], "description": "قائمة بأسماء المستودعات لفلترة. تضمن اسم المالك واسم المستودع، مثال 'owner/repository'", "items": {"type": "string", "description": ""}, "title": "المستودعات", "type": "array"}, "status": {"default": "ISSUE_TAB_OPEN", "description": "حالة المشكلة لفلترة.", "enum": ["ISSUE_TAB_OPEN", "ISSUE_TAB_CLOSED", "ISSUE_TAB_IGNORED", "ISSUE_TAB_REVIEWING", "ISSUE_TAB_FIXING"], "title": "الحالة", "type": "string"}, "severities": {"anyOf": [{"items": {"enum": ["SEVERITY_CRITICAL", "SEVERITY_HIGH", "SEVERITY_MEDIUM", "SEVERITY_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "جودة المشاكل لفلترة.", "title": "الجودة"}, "confidence": {"anyOf": [{"items": {"enum": ["CONFIDENCE_HIGH", "CONFIDENCE_MEDIUM", "CONFIDENCE_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "الثقة في المشاكل لفلترة.", "title": "الثقة"}, "autotriage_verdict": {"anyOf": [{"enum": ["VERDICT_TRUE_POSITIVE", "VERDICT_FALSE_POSITIVE"], "type": "string", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "الحكم التلقائي للمشاكل لفلترة. إذا لم يتم تعيينه، يُعاد العثورات ذات الحكم (بما في ذلك غير المعدلة).", "title": "الحكم التلقائي"}, "refs": {"default": [], "description": "قائمة بمرجعات git (أسماء الفروع) لفلترة العثور. إذا لم يتم تعيينها، يُعاد فقط العثورات على الفرع الأساسي.", "items": {"type": "string", "description": ""}, "title": "Refs", "type": "array"}, "limit": {"default": 10, "description": "عدد الحد الأقصى للعثور.", "title": "الحد", "type": "integer"}}, "title": "semgrep_findingsArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__semgrep_scan_with_custom_rule", "description": "\nيركز مسح Semgrep مع قاعدة مخصصة على المحتوى المقدم\nويعيد النتائج بصيغة JSON\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - مسح ملفات الكود للعثور على ثغرات أمنية غير المغطاة بقواعد Semgrep الافتراضية\n - مسح ملفات الكود للعثور على مشاكل معينة غير المغطاة بقواعد Semgrep الافتراضية\n", "parameters": {"$defs": {"CodeFile": {"properties": {"path": {"description": "مسار ملف الكود", "title": "المسار", "type": "string"}, "content": {"description": "محتوى ملف الكود", "title": "المحتوى", "type": "string"}}, "required": ["path", "content"], "title": "CodeFile", "type": "object"}}, "properties": {"code_files": {"description": "قائمة بملفات القاموس مع مفاتيح 'path' و'content'", "items": {"$ref": "#/$defs/CodeFile", "description": ""}, "title": "ملفات الكود", "type": "array"}, "rule": {"description": "قاعدة Semgrep بصيغة YAML", "title": "القاعدة", "type": "string"}}, "required": ["code_files", "rule"], "title": "semgrep_scan_with_custom_ruleArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__semgrep_scan", "description": "\nيركز مسح Semgrep محليًا على الملفات المقدمة ويعيد النتائج بصيغة JSON.\n\nالملفات تفترض أنها مسارات مطلقة إلى ملفات الكود.\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - مسح ملفات الكود للعثور على ثغرات أمنية\n - مسح ملفات الكود للعثور على مشاكل أخرى\n", "parameters": {"$defs": {"CodePath": {"properties": {"path": {"description": "مسار مطلق لملف الكود", "title": "المسار", "type": "string"}}, "required": ["path"], "title": "CodePath", "type": "object"}}, "properties": {"code_files": {"description": "قائمة بملفات القاموس مع مفاتيح 'path' تشير إلى مسارات مطلقة لملف الكود", "items": {"$ref": "#/$defs/CodePath", "description": ""}, "title": "ملفات الكود", "type": "array"}}, "required": ["code_files"], "title": "semgrep_scanArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__get_abstract_syntax_tree", "description": "\nيعيد شجرة المخطط المجرد (AST) لملف الكود المقدم بصيغة JSON\n\nاستخدم هذا الأداة عندما تحتاج إلى:\n - الحصول على شجرة المخطط المجرد (AST) لملف الكود المقدم\n - الحصول على AST لملف\n - فهم بنية الكود بشكل أكثر تفصيلًا\n - رؤية ما يراه المفسر في الكود\n", "parameters": {"properties": {"code": {"description": "الكود للحصول على AST", "title": "الكود", "type": "string"}, "language": {"description": "لغة البرمجة في