# Glob

يطابق أسماء الملفات وفق نمط glob ويُعيد المسارات مرتبة حسب أحدث وقت تعديل أولاً. مُحسَّن لتحديد مواقع الملفات بسرعة في قواعد شفرة من أي حجم دون الرجوع إلى `find` عبر الصدفة.

## متى يُستخدم

- تعداد كل ملف من امتداد محدد (مثل جميع ملفات `*.ts` تحت `src`)
- اكتشاف ملفات الإعدادات أو المواضع حسب اصطلاح التسمية (`**/jest.config.*`، `**/*.test.tsx`)
- تضييق سطح البحث قبل تشغيل `Grep` موجَّه
- التحقق مما إذا كان ملف موجوداً بالفعل بنمط معروف قبل استدعاء `Write`
- العثور على الملفات المعدَّلة مؤخراً بالاعتماد على ترتيب وقت التعديل

## المعاملات

- `pattern` (سلسلة، مطلوب): تعبير glob للمطابقة. يدعم `*` للبدائل من جزء واحد، و`**` للمطابقة التكرارية، و`{a,b}` للبدائل، مثل `src/**/*.{ts,tsx}`.
- `path` (سلسلة، اختياري): الدليل الذي يُجرى فيه البحث. يجب أن يكون مسار دليل صالحاً عند تقديمه. احذف الحقل كلياً للبحث في دليل العمل الحالي. لا تمرر السلسلتين `"undefined"` أو `"null"`.

## أمثلة

### مثال 1: كل ملف مصدر TypeScript
استدعِ `Glob` بـ `pattern: "src/**/*.ts"`. النتيجة قائمة مرتبة حسب mtime، لذا تظهر الملفات المعدَّلة مؤخراً أولاً، وهو مفيد للتركيز على النقاط الساخنة.

### مثال 2: تحديد ملف محتمل لتعريف صف
عندما تشك أن صفاً موجود في ملف لا تعرف اسمه، ابحث بـ `pattern: "**/*UserService*"` لتضييق المرشحين، ثم تابع بـ `Read` أو `Grep`.

### مثال 3: اكتشاف متوازٍ قبل مهمة أكبر
في رسالة واحدة، أطلق عدة استدعاءات `Glob` (مثل واحد لـ `**/*.test.ts` وآخر لـ `**/fixtures/**`) حتى يعملا بالتوازي وتُرتبط نتائجهما.

## ملاحظات

- النتائج مرتبة حسب وقت تعديل الملف (الأحدث أولاً)، لا أبجدياً. رتِّب لاحقاً إذا احتجت ترتيباً ثابتاً.
- تُقيَّم الأنماط بواسطة الأداة، لا الصدفة؛ لا حاجة لتضليلها أو وضعها بين علامات اقتباس كما تفعل في سطر الأوامر.
- للاستكشاف المفتوح الذي يتطلب عدة جولات من البحث والاستدلال، فوِّض إلى `Agent` من نوع وكيل Explore بدلاً من تسلسل كثير من استدعاءات `Glob`.
- فضِّل `Glob` على استدعاءات `Bash` لـ `find` أو `ls` لاكتشاف أسماء الملفات؛ فهي تتعامل مع الأذونات بثبات وتُعيد مخرجات منظمة.
- عند البحث عن محتوى داخل الملفات لا أسمائها، استخدم `Grep` بدلاً منها.
