عن المشروع

attini هو وكيل برمجة سطر أوامر مصمم للعمل بشكل مستقل داخل مساحة عملك مع الحفاظ على التحكم البشري. يتفاعل مباشرة مع واجهة برمجة تطبيقات DeepSeek Chat Completions عبر HTTP/1.1 + TLS مع دعم البث. يمكن للوكيل سرد وقراءة الملفات، والبحث في قاعدة التعليمات البرمجية، وتطبيق التصحيحات، وتنفيذ الأوامر. يتم تطبيق التغييرات القابلة للعكس على الملفات المتتبعة في git دون مطالبة، بينما يتم عرض الإجراءات المهمة—مثل إنشاء ملفات جديدة، أو تعديل ملفات غير متتبعة، أو تشغيل أوامر غير مدرجة في القائمة البيضاء—كمعاينة وتتطلب موافقة صريحة. المشروع مبني على تصميم Sans I/O: النوى الأساسية للمحللات وأنواع البيانات وآلات الحالة لا تقوم بأي عمليات إدخال/إخراج، بينما توجد طبقة النقل غير المتزامنة وواجهة TUI وتكامل نظام الملفات في وحدات محيطة. هذا الفصل يعزز قابلية الاختبار والصيانة. تشمل الميزات الرئيسية: - **أدوات للقراءة فقط**: `list` و`read` و`search` لاستكشاف مساحة العمل. - **أداة التصحيح**: تطبق تعديلات الإضافة/التحديث؛ تطبق تلقائيًا التغييرات القابلة للعكس على الملفات المتتبعة، ولكنها تتطلب موافقة للملفات الجديدة أو التغييرات غير المتتبعة أو الكتابة خارج مساحة العمل. - **أداة الأوامر**: تشغل أوامر الصدفة تحت سيطرة الأذونات، مع مهلات زمنية قابلة للتكوين. - **نظام الموافقة**: يستخدم `attini approve` لاستئناف الجلسات المتوقفة، والموافقة على استدعاءات الأدوات المعلقة، ومنح أذونات دائمة اختياريًا عبر `--grant`. - **الأذونات**: ملفات JSONL عادية (`permissions.jsonl`) لقواعد مستوى مساحة العمل والجلسة، قابلة للتحرير يدويًا. - **إدارة الجلسات**: تُخزن الجلسات كأدلة تحت `.attini/<NAME>/` مع سجلات محادثة JSONL للإلحاق فقط، ومسودات، وملفات قفل. يمكن فحصها باستخدام `attini status` و`attini ask`. - **متغيرات البيئة**: تكوين مفتاح API، وعنوان URL الأساسي، واسم الجلسة، والنموذج، ودرجة الحرارة، والمهلات، والمزيد. تركز فلسفة التصميم على قابلية التحكم والفهم أكثر من الاستقلالية. تتم إضافة السياق فقط عند الطلب الصريح (عبر المطالبة أو `--stdin`)، ولا يوجد اكتشاف ضمني للمهارات أو ملفات التعليمات، ولا وكلاء فرعيون أو وضع خطة. يرفض الوكيل العمليات الخطرة بدلاً من التخمين. الميزات غير المدعومة عمدًا تشمل استمرار الذاكرة، وتفويض الوكلاء الفرعيين، وفحص `AGENTS.md`، والتحميل التلقائي للمهارات، ووضع الخطة، والأدوات المريحة التي تكرر القدرات الحالية. هذه سياسة متعمدة لإبقاء الوكيل صريحًا وآمنًا. المتطلبات: Rust 1.93+، متغير البيئة `DEEPSEEK_API_KEY`، و`DEEPSEEK_BASE_URL` اختياري لنقاط نهاية متوافقة مع OpenAI.