واجهة سطر الأوامر
واجهة سطر الأوامر هي السطح التفاعلي المباشر المدعوم لـ EstaCoda. تشغل جلسة طرفية تفاعلية، وتنفذ أوامر منفردة، وتكشف عن ضوابط تشغيلية للإعداد، والفحص، والاسترداد.
تشرح هذه الصفحة كيف تتصرف واجهة سطر الأوامر، وما تُظهره، وأين تفشل.
ما هي واجهة سطر الأوامر
estacoda بدون معاملات تبدأ جلسة تفاعلية. حلقة الجلسة تقرأ المدخلات، وتُرسّلها إلى بيئة التشغيل، وتُظهر المخرجات عبر مسار أصلي طرفي.
واجهة سطر الأوامر ليست غلاف محادثة. إنها سطح أوامر وكيل ذو حالة مع جلسات صريحة، وحدود ملف شخصي، ومطالبات موافقة، وعقود تصيير.
البدء والاستئناف
# بدء جلسة تفاعلية
estacoda
# تنفيذ أمر منفرد
estacoda --profile work "explain this file"
# اختيار ملف شخصي لهذا الأمر فقط
estacoda --profile work model status
estacoda -p work doctor
--profile / -p يختار ملفًا شخصيًا للأمر الحالي فقط. لا يغير الملف الشخصي النشط على القرص. فقط estacoda profile use <name> يحدّث ~/.estacoda/active-profile.json.
بدء واجهة سطر الأوامر يستعيد جلسة مساحة العمل النشطة من مخزن الجلسات. لم تعد الإطلاقات الجديدة مُجبرة على العودة إلى جلسة scaffold افتراضية.
الإعداد والتحقق
estacoda setup # نقطة الدخول الأساسية للإعداد
estacoda verify # التحقق من الإعدادات
estacoda settings # عرض الإعدادات الحالية
estacoda doctor # تقرير الصحة والإصلاحات المطلوبة
estacoda doctor --live # فحص المزود المباشر
estacoda setup هي نقطة الدخول الأساسية للإعداد. estacoda الصافي يوجه إلى الإعداد عندما يكون الإعداد ناقصًا.
الإعداد مُراجع، وليس مستقلًا. يبني manifest قبل التطبيق، ويخزن الاعتمادات كمراجع متغيرات بيئة في .env الخاص بالملف الشخصي المختار بأذونات 0600، وينفذ تحققًا للقراءة فقط بعد التطبيق. لا تُعرض الأسرار الخام في مخرجات المراجعة.
المستخدمون الحاليون الذين يشغّلون Setup Editor يحصلون على مسار مختلف بعد التطبيق. مطالبة المراجعة النهائية عنوانها Finalize configuration، وتعرض Confirm selected configuration، وتتضمن مجالًا محددًا ديناميكيًا مثل Channels · Telegram أو Security. خيار Confirm يحدّث إعدادات الملف الشخصي المحدد. خيار Cancel يترك الإعداد الحالي دون تغيير ولا يكتب أي إعدادات أو أسرار. تفاصيل manifest التقنية تبقى داخلية ولا تُطبع كمخرجات إعداد موجهة للمستخدم.
بعد تطبيق Setup Editor للمستخدم الحالي، تعرض EstaCoda نتيجة التطبيق والتحقق ثم تخرج من مسار الإعداد. لا تعرض Setup next action، ولا تطبع Selected: Launch EstaCoda، ولا تسلم إلى Launch EstaCoda. يظل onboarding الأول هو المسار الذي يملك مطالبة التشغيل بعد إعداد جاهز ومتحقق.
يعرض Setup Editor خيار EstaCoda Doctor كإجراء صحة للقراءة فقط. استخدمه عندما تريد صحة الإعداد، والإصلاحات المطلوبة، وحالة مسارات المزوّدين دون تغيير الإعداد. راجع الطبيب لسلوك الأمر الكامل وخيارات الإصلاح.
التتبع والتقييم
estacoda trace list [--session <id>] [--limit <n>]
estacoda trace dump <trajectory-id> [--raw]
estacoda trace timeline <trajectory-id> [--raw]
estacoda trace failures <trajectory-id>
listيُظهر مسارات حديثة مع معرفات الجلسات والنتائج.dumpيُخرج JSON كامل، مُحذّف افتراضيًا.timelineيُخرج أحداثًا مقروءة زمنيًا.failuresيسرد الأعطال المصنفة لمسار.--rawيتجاوز التحذير. استخدم بحذر.
estacoda eval [fixture-id]
تشغيل اختبارات تقييم حتمية وإرجاع نجاح/فشل لكل تأكيد مع التوقيت.
استذكار الجلسة والضغط
estacoda session recall <query>
estacoda sessions recall <query>
estacoda sessions compact <session-id> [--topic <topic>]
أوامر الاستذكار تلخّص تطابقات الجلسات التاريخية. تستخدم الملف الشخصي المختار، وتطبق نطاق مساحة العمل عند توفر جذر مساحة عمل، وتتراجع إلى مقتطفات حتمية إذا فشل التلخيص الإضافي.
sessions compact تستدعي ضغط الجلسة الدلالي لجلسة مستهدفة. هو غير دوار في هذا التنفيذ؛ لا ينشئ أو يتبنى جلسة فرعية مضغوطة.
أوامر الشرطة المائلة التفاعلية
داخل جلسة نشطة، توفر أوامر الشرطة المائلة ضوابط تشغيلية. هذا نظرة عامة على مستوى عالٍ؛ المخزون الكامل موجود في الوثائق المرجعية.
| الأمر | الغرض |
|---|---|
/sessions | إدراج الجلسات النشطة |
/search <query> | البحث في تاريخ الجلسة |
/session recall <query> | تلخيص تطابقات الجلسات التاريخية |
/compact [topic] | ضغط سياق الجلسة |
/model | عرض خيارات النموذج الجاهزة |
/model <provider>/<model> | تعيين تجاوز نموذج محدد بالجلسة |
/model clear | إزالة تجاوز النموذج المحدد بالجلسة |
/switch <session-id> | الانتقال إلى جلسة أخرى |
/reset | بدء جلسة جديدة |
/trust | عرض حالة ثقة مساحة العمل |
/yolo | تبديل وضع الموافقة المفتوح |
/skills | إدراج المهارات المرئية |
/tools | إدراج الأدوات المتوفرة |
/security | عرض قرارات الأمان الأخيرة |
/security debug | تدقيق أمان مفصل |
/cron | إدراج المهام المجدولة |
/approvals | عرض الموافقات الحالية |
/revoke <approval-id> | إلغاء موافقة دائمة |
/reload-mcp | إعادة تحميل خوادم MCP |
/exit | خروج من الجلسة |
/model محدد بالجلسة افتراضيًا. /model --global <provider>/<model> يثبت المسار كنموذج أساسي للملف الشخصي بعد فحوصات الثقة. /model --global clear مرفوض؛ استخدم estacoda model setup لإدارة المسار الأساسي.
محدد /model التفاعلي يعرض شاشتي الاختيار بعنواني Select provider وSelect model. كلتاهما تستخدم صياغة محددة بالجلسة فقط: Select the provider to use for this session only. وSelect the model to use for this session only.
بعد تجاوز نموذج الجلسة، تطبع CLI إشعارًا مختصرًا ولا تعيد عرض لوحة بدء التشغيل:
Model: deepseek-v4-flash
Session model override set: deepseek/deepseek-v4-flash
Scope: session
Fallback routes unchanged.
مخرجات plain وCI وغير TTY تبقى بلا تنسيق. الطرفيات التفاعلية التي تدعم تنسيق standard قد تجعل تسميات الإشعار بخط عريض.
Operator Console والتحكم أثناء الدور النشط
Papyrus هو substrate واجهة الطرفية. Operator Console هو الإطار التفاعلي
المباشر المبني على Papyrus، ويعمل افتراضيًا في جلسات TTY المدعومة. ترسل حلقة
الجلسة ومسارات الإعداد وإدخال المحث الخام حالة دلالية إلى
OperatorConsoleRuntimeHost؛ ثم يتولى Papyrus التخطيط والتصيير، ويبقى
rawPromptRenderLoop محول terminal diff/cursor cleanup فقط.
يتكون إطار TTY المباشر من هذه الأسطح:
- startup dashboard
- live assistant streaming
- approvals
- active work
- queued steer
- attachments
- prompt / steer input
- slash menu
- status rail
- setup/select panels عند الحاجة
يحتوي status rail الدائم فقط على model، واستخدام/شريط context، ومؤقت الجلسة. الأدوات، والموافقات، وworkspace/trust، والإعداد، والتوجيه، وحالة القنوات، وضجيج active-turn تظهر في أسطح سياقية، لا داخل status rail.
في أدوار TTY التفاعلية المدعومة، يبث النص المرئي من المزود داخل
Operator Console كمعاينة مباشرة. عند اكتمال الدور، يُمسح الإطار المباشر
ويُطبع رد المساعد النهائي عبر مصيّر المساعد الدائم حتى لا تُقصّ الردود الطويلة
بحدود الإطار المباشر. جلسات plain وCI وغير TTY تُبقي البث
append-only عبر stdout.
يعرض slash autocomplete كقائمة Operator Console تحت المحث وفوق status rail. تظهر مراجع اللصق كبطاقات attachments فوق المحث؛ ويُحفظ المحتوى الملصوق الكامل للإرسال ولا يُطبع داخل prompt chrome. نموذج active work غير محدود في التخزين ويُحد فقط بنافذة العرض أثناء التصيير. بطاقات الموافقة تصدر intent فقط لـ approve/reject/inspect، وتبقى سياسة الموافقة والأمان هي المرجع الحاكم.
عند استخدام TTY مدعوم، يفعّل CLI نمط bracketed paste. اللصق الصغير في سطر واحد يبقى داخل سطر الإدخال. اللصق متعدد الأسطر أو الكبير يصبح بطاقة attachment. مطالبات الأسرار تتجاوز معاينة/تخزين اللصق ولا تعرض تلميحات اختصارات أو تلميحات slash مباشرة.
chrome الإعداد العربي واعٍ بالاتجاه في محددات الإعداد، والسكك، وملخصات onboarding، وبطاقات المحث، ومطالبات الإعداد الخام، وتقارير التحقق، ولوحة بدء التشغيل. صفوف الاختيار العربية RTL ومحاذاة لليمين، وسطر الاختيار يستخدم تم تحديد، والقيم التقنية المختارة تُعزل باتجاه LTR. لوحة بدء التشغيل العربية تستخدم عمودين واعيين بـ RTL في العروض العادية، وتعود إلى تخطيط مكدس ومحدود في العروض الضيقة. هذا ليس توطينًا عربيًا كاملًا لكل runtime.
مطالبات اعتماد المزود في onboarding ومطالبات رمز Telegram تشترك الآن في نفس نسخة محث setup editor. النصوص العربية المعروضة تعزل الرموز التقنية، بينما تبقى قيم config وenv وauth وstate المخزنة خامًا. مطالبات الأسرار تبقى masked.
بعد إرسال رسالة عادية، يختفي المحث الخامل. يعرض الدور النشط مخرجات transcript الدائمة مع أسطح Operator Console مثل active work وapproval وsteer. لا يظهر صندوق محث للقراءة فقط يحتوي على النص الذي أرسله المستخدم. النص المرسل يبقى ممثلًا في transcript rail وفي تاريخ الجلسة.
أثناء استجابة EstaCoda، تفتح الكتابة سطح Steer current turn. النص غير الفارغ
يكتب كتلة transcript مرئية باسم User steer:، ويلغي الدور الحالي بسبب
CLI steer، ويصفّ إعادة محاولة واحدة بالنص الأصلي مع ملاحظة توجيه صريحة.
الإدخال الفارغ أو المؤلف من مسافات فقط لا يفعل شيئًا. Esc يلغي draft أو
queued steer. يبقى Ctrl+C مسار المقاطعة الصلبة ولا يُعامل كإرسال أو إلغاء
لـ steer.
تغييرات التحكم بالمؤشر تحتاج اختبارات وحدة وفحصًا يدويًا في طرفية حقيقية. الاختبارات تغطي علامات اللصق المقسمة، التفاف المحث، حساب أسطح Operator Console، التوجيه أثناء الدور النشط، وسلوك إعادة المحاولة. الطرفية الحقيقية ما زالت ضرورية لكشف اختلافات cursor save/restore، الالتفاف، scrollback، وbracketed paste mode.
مطالبات الموافقة
عندما يصل تنفيذ أداة إلى بوابة موافقة، تقبل واجهة سطر الأوامر هذه الإجابات الصريحة:
once— منح هذا الإجراء مرة واحدة.session— منح الإجراءات المطابقة للجلسة الحالية.always— الاحتفاظ بموافقة مساحة عمل للإجراءات المطابقة.deny،reject،no،n— رفض الإجراء دون إعادة المحاولة.
كما تُقبل أسماء مستعارة بأسلوب شرطة مائلة داخل المطالبة:
/approve once/approve session/approve always/deny
هذه تتطبيع إلى نفس مسار المنح. الإدخال غير الصالح مثل /approve banana يتبع مسار إرشادات الإجابة غير الصالحة ولا يمنح الموافقة.
التصيير وسلوك الطرفية
تمر مخرجات واجهة سطر الأوامر عبر مسار ثلاثي المراحل:
Runtime Data → ViewModel → Renderer → Output
يوجد مُصيّران:
| المصيّر | الوضع | ANSI | Unicode | Emoji | Animation |
|---|---|---|---|---|---|
| Plain | plain | لا | لا | لا | لا |
| Standard | standard | نعم | نعم | يتحكم فيه Skin | يتحكم فيه القدرة |
يُختار الوضع البسيط عند تحقق أي من ما يلي:
- علامة
--plain - ليس TTY
- بيئة CI
TERM=dumb- عدم دعم الألوان
الوضع القياسي يتطلب TTY، ودعم الألوان، وعدم وجود CI، وطرفية غير dumb.
متغيرات البيئة التي تؤثر على التصيير:
| المتغير | التأثير |
|---|---|
NO_COLOR | تعطيل جميع ألوان ANSI |
FORCE_COLOR | تجاوز كشف الألوان |
TERM=dumb | تعطيل الألوان والحركة |
COLUMNS | تجاوز عرض الطرفية |
ESTACODA_THEME | light أو dark |
ESTACODA_MODE | plain أو standard |
ESTACODA_SKIN | kemetBlue |
الوضع القياسي يستخدم رسم صناديق Unicode للألواح، وألوان ANSI من السمة، وإطارات spinner للمهام الجارية. الوضع البسيط يستخدم علامات ASCII فقط وتسميات نصية دلالية.
أوضاع الفشل
إعداد ناقص: estacoda يوجه إلى الإعداد. شغّل estacoda setup للإصلاح.
مزود غير مهيأ: بيئة التشغيل تُبلغ عن مسار معطل. شغّل estacoda model setup أو estacoda doctor --live للتشخيص.
موافقة مطلوبة: رد على المطالبة بـ once، session، always، أو deny. تحقق من /approvals للمنح الحالية. استخدم /revoke <id> لإزالة المنح الدائمة.
أمر غير آمن مرفوض: الأمر طابق حظر hardline. غيّر الأمر؛ لا يمكن تجاوز حد الأرضية الصلبة.
قيود طرفية/تصيير: الوضع البسيط يتراجع تلقائيًا. إذا بدت المخرجات خاطئة، تحقق من TERM، NO_COLOR، وعرض الطرفية.
الفحص والاسترداد
# الإعدادات الحالية وحالة النموذج
estacoda settings
estacoda model status
# قرارات الأمان
/security
/security debug
# حالة الجلسة
/sessions
/switch <session-id>
# حالة الموافقة
/approvals
# جاهزية البوابة
estacoda gateway diagnose
مرتبطات
- الجلسات — دورة حياة الجلسة وملكية الحالة
- الملفات الشخصية — حدود الملف الشخصي والتبديل
- الأدوات — تنفيذ الأدوات وتوفرها
- الأمان والموافقات — أوضاع الموافقة وحصير الأرضية الصلبة