عن المشروع
99 هو إضافة لـ Neovim تدمج سير عمل الذكاء الاصطناعي الوكلائي مباشرة في المحرر. يُوصف بأنه عميل ذكاء اصطناعي لـ Neovim يهدف إلى تعزيز المبرمج بدلاً من استبداله، ويُصنف صراحةً كمنتج تجريبي قد تتغير واجهاته البرمجية.
الفكرة الأساسية
بدلاً من التركيز فقط على استبدال أجزاء محددة من الكود، يتجه المشروع نحو البرمجة الوكلائية وعرض المعلومات، مع تقديم `search` و`work` كنقاط دخول أكثر فائدة. يؤطر المؤلف المستودع كأرض استكشاف لمزج الذكاء الاصطناعي مع البرمجة اليدوية التقليدية.
الإعداد
يتم التكوين من خلال استدعاء `setup` بلغة Lua في مواصفات مدير الإضافات. تشمل الخيارات مسجل (المستوى، المسار، print_on_error)، و`tmp_dir`، وإعدادات الإكمال، و`md_files` مثل `AGENT.md` التي يتم اكتشافها تلقائيًا بالنسبة للطلب الأصلي وحقنها كسياق. تكون اختصارات لوحة المفاتيح معرفة من قبل المستخدم؛ يعرض ملف README أمثلة للتحديد المرئي، وإيقاف الطلبات، والبحث.
الواجهة البرمجية الرئيسية
- `setup(opts)` — تهيئة مطلوبة؛ يضبط المؤشرات والافتراضيات والإكمال.
- `search(opts)` — يجري بحثًا على مستوى المشروع مع موجه ويعيد المواقع مع الملاحظات إلى قائمة الإصلاح السريع.
- `visual(opts)` — يرسل التحديد المرئي الحالي مع موجه ويستبدل التحديد بالنتيجة.
- `vibe(opts)` — مدرج بدون وصف.
- `open()` — يفتح نافذة تحديد لآخر تفاعل، ويعرض النتائج في عرض مناسب للنوع (قائمة الإصلاح السريع للبحث/الاهتزاز، نافذة تعليمية للبرنامج التعليمي).
- `view_logs()` — يعرض السجلات الأخيرة ويعد التنقل بين السجلات الأقدم والأحدث.
- `stop_all_requests()` — يقتل الطلبات الجارية ويتجاهل النتائج.
- `clear_previous_requests()` — يمسح عمليات البحث والعمليات المرئية السابقة.
- `Extensions` — يكشف عن تجريد Worker.
الخيارات والأنواع
يوثق ملف README عدة جداول خيارات: `_99.Options` (logger، model، in_flight_options، md_files، provider، display_errors، auto_add_skills، completion، tmp_dir)، `_99.ops.Opts` (additional_prompt، additional_rules)، `_99.ops.SearchOpts`، `_99.WorkOpts` (description)، `_99.Completion` (source، custom_rules، files)، `_99.InFlight.Opts` (throbber_opts، in_flight_interval، enable)، `_99.Logger.Options`، و`_99.Agents.Rule` (name، path، absolute_path).
يسمح `additional_prompt` بتعريف إعادة تعيين تعمل بدون إدخال تفاعلي، على سبيل المثال بحث يشغل `make test` ويشخص الأخطاء في قائمة الإصلاح السريع. يحقن `additional_rules` سياق مهارات إضافي، مثل قاعدة "cloudflare".
الإكمالات
في مخزن الموجه، يكمل `#` تلقائيًا ملفات القواعد من أدلة القواعد المكونة، ويبحث `@` بشكل غامض في ملفات المشروع مع استبعاد الإدخالات المتجاهلة بواسطة git. يتم حل المحتوى المشار إليه وحقنه في سياق الذكاء الاصطناعي. الإكمال الأصلي هو الافتراضي؛ يتم دعم nvim-cmp وblink.cmp عبر `source = "cmp"` أو `"blink"`.
المزودون
يتم دعم عدة واجهات CLI للذكاء الاصطناعي ويتم اختيارها عبر `provider`: OpenCodeProvider (الافتراضي، `opencode`، النموذج الافتراضي `opencode/claude-sonnet-4-5`)، ClaudeCodeProvider (`claude`، `claude-sonnet-4-5`)، CursorAgentProvider (`cursor-agent`، `sonnet-4.5`)، وGeminiCLIProvider (`gemini`، `auto`). يمكن لخيار `model` تجاوز الافتراضي للمزود. يلاحظ ملف README أن توجيه `tmp_dir` خارج دليل العمل قد يسبب مشاكل في الأذونات مع أدوات مثل Claude Code أو OpenCode.
الإضافات
توفر إضافة Worker طريقة مستمرة لتتبع العمل: يسجل `set_work` وصف عمل ويستخدم `search` دالة `_99.search` للعثور على ما تبقى لإنجازه. يشير المؤلف إلى أن هذا المجال سيحتمل على الأرجح أكبر تغيير، مع دعم محتمل لأشجار العمل في المستقبل.
توفر إضافات Telescope وfzf-lua منتقيات لتبديل النموذج أو المزود في وقت التشغيل؛ يؤدي تبديل المزود إلى إعادة تعيين النموذج إلى الافتراضي لذلك المزود.
الإبلاغ عن الأخطاء
يطلب ملف README سجلات تصحيح كاملة عند الإبلاغ عن الأخطاء، يمكن الحصول عليها عبر `:lua require("99").view_logs()`، ويحذر من أن السجلات قد تحتوي على أسرار في الاستعلام المطبوع. يتم تثبيط طلبات الميزات صراحةً لصالح المناقشات العامة.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.