diff --git a/README.ar.md b/README.ar.md index 8816a92..2751baf 100644 --- a/README.ar.md +++ b/README.ar.md @@ -39,7 +39,7 @@ | الطبقة | الأداة | ماذا تُصلح | | --- | --- | --- | | **1) طبقة النص (خادم أوبن‌كود)** | إضافة `server` | رسائل المستخدم المُرسلة وسجل المحادثة وردود النموذج ومخرجات الأدوات — عبر **عزل ثنائي الاتجاه** (`RLI` / `LRI` / `PDI`) وفق UAX #9. منذ أوبن‌كود **1.18.31** يتعرّف العرض الطرفي/سطح المكتب على الاتجاه تلقائيًا (`dir="auto"` + plaintext)، لذا تركز هذه الطبقة على الطرفية/الويب والحفاظ على ترميزات LTR | -| **2) طبقة الواجهة (سطح المكتب)** | سكربتات `patch/` (لينكس / ماك / ويندوز) | **حقل الكتابة المباشر** و**عناوين التبويبات/الجلسات** التي لا تصل إليها أي خطافات إضافة — عبر حقن `dir="auto"` + `unicode-bidi: plaintext` داخل `app.asar` | +| **2) طبقة الواجهة (سطح المكتب)** | رقعة `app.asar` (المحرك `patch/lib/patch-asar.mjs` + غلاف لكل نظام تشغيل)، وتطبّقها الإضافة نفسها وتُصلحها ذاتيًا | **كل أسطح النص في الواجهة**: حقل الكتابة المباشر، رسائل الدردشة، عناوين التبويبات/الجلسات والطرفية، القوائم، الحوارات، التنبيهات، الإعدادات، شجرة الملفات، أسماء ملفات المراجعة، المرفقات، الأذونات والأسئلة — عبر حقن `dir="auto"` + `unicode-bidi: plaintext` داخل `app.asar` (الكود والفروق ومخرجات الشل تبقى LTR) — إضافةً إلى خط **Vazirmatn** لكل نص الواجهة |
🔍 كيف يعمل؟ @@ -61,13 +61,15 @@ - ✅ أمران لحالة TUI: `RTL: Show Status` و `RTL: Analyze Sample` (يعملان في v2 أيضًا عبر CLI API الجديد) - ✅ رقعة سطح المكتب لأنظمة التشغيل الثلاثة (لينكس / ماك / ويندوز) مع نسخة احتياطية تلقائية وتحقّق من تخطيط `app.asar.unpacked` وإمكانية التراجع (`--unpatch`) - ✅ تغطية كاملة لواجهة سطح المكتب: الدردشة والمحرر، تبويبات الجلسات والطرفية، القوائم، الحوارات، التنبيهات، الإعدادات، شجرة الملفات وعارض الملفات، لوحة المراجعة، المرفقات، الأذونات والأسئلة — مع حماية LTR للكود والفروق ومخرجات الشل +- ✅ خط **Vazirmatn (OFL)** مُضمَّن في واجهة سطح المكتب (دون تثبيت أي خط على النظام) +- ✅ **إصلاح ذاتي**: إضافة الخادم تطبّق رقعة سطح المكتب تلقائيًا وتُعيد تطبيقها بعد كل تحديث (دون تشغيل يدوي) - ✅ متوافق مع أوبن‌كود **1.19.0** و **2.x** (مدخل `./v2` للخادم و `./v2/tui` للـCLI) ## ⚠️ قيد مهم (بصراحة) **حقل كتابة البرومبت أثناء الكتابة الفعلية قبل الإرسال يُرسم بواجهة أوبن‌كود نفسها ولا يصل إليه أي خطاف إضافة.** لذلك: -- **تطبيق سطح المكتب** → يُصلح هذا الجزء سكربتات `patch/` — `patch/linux/desktop-rtl.sh`, أو `patch/macos/desktop-rtl.sh`, أو `patch/windows/desktop-rtl.ps1` (الطبقة ٢). +- **تطبيق سطح المكتب** → يُصلح هذا الجزء رقعة `app.asar` (المحرك `patch/lib/patch-asar.mjs` مع غلاف لكل نظام تشغيل). لا تصل أي إضافة/امتداد إلى واجهة سطح المكتب، لذا تطبّق إضافة الخادم هذه الرقعة بنفسها و**تُصلحها ذاتيًا** — اضبط `desktop: false` إن كنت تفضّل الترقيع يدويًا. - **الطرفية/TUI** → يُرسم خليةً بخلية عبر `@opentui/core`، والحل النهائي له يرجع إلى أوبن‌كود نفسه؛ لكن فور إرسال الرسالة، يُصلح برومبتك ورد النموذج عبر الطبقة ١ في كل مكان. --- @@ -171,6 +173,7 @@ npm ci && npm run build | `rtlWrapColumn` | `96` | عمود الالتفاف المستخدم في المحاذاة | | `rtlAlignColumn` | `96` | عمود المحاذاة اليمنى | | `directionEnv` | `true` | تصدير `OPENCODE_RTL*` في بيئة الأدوات | +| `desktop` | `true` | تثبيت/إصلاح رقعة سطح المكتب تلقائيًا (`app.asar` + خط Vazirmatn). لجعل الإضافة لا تلمس ملفات التطبيق: `false` | | `debug` | `false` | تسجيل عبر `client.app.log()` | > **ملاحظة الاتجاه:** الاتجاه بحسب «أول حرف قوي»؛ جملة تبدأ بالعربية تصبح RTL، وجملة تبدأ بالإنجليزية/كود تصبح LTR. لفرض RTL دائمًا: `"forceDirection": "rtl"`. @@ -189,7 +192,9 @@ npm ci && npm run build ## 🖥️ رقعة تطبيق سطح المكتب (تغطية كاملة للواجهة) -يُرسم تطبيق Electron أجزاءً من النص دون أي اتجاه تلقائي. تُضيف الرقعة `