تشغيل الأوامر المحلية بأمان
في تطبيق سطح المكتب يمكن للمساعد تشغيل الأوامر والاختبارات في مجلد العمل الخاص بالمحادثة. وكيف يعمل ذلك داخل المحادثة، اقرأ عنه في الوصول المحلي إلى الملفات. في هذه الصفحة تضبط متى يُسمح بذلك دون سؤال وكيف تُشغَّل الأوامر داخل بيئة معزولة.
فتح إعدادات الأوامر
افتح في المحادثة لوحة الأوامر واختر إعدادات الأوامر لهذا المجلد. تنطبق الإعدادات على مستوى المجلد.
متى يُسمح للمساعد بتشغيل أمر؟
اختر أحد هذه الأوضاع الثلاثة:
- السؤال دائمًا: تؤكد كل أمر بنفسك.
- الأوامر الموثوقة تلقائيًا: الأوامر التي حفظتها تبدأ دون سؤال. أما الأوامر الأخرى فما زالت تطلب الإذن.
- تشغيل تلقائي في sandbox: كل شيء يبدأ دون سؤال، ولكن داخل بيئة معزولة.
في كل وضع تسري أيضًا هذه القواعد:
- الأوامر غير المؤذية تبدأ دون بطاقة:
mkdir,ls,cat,head,tail,wc,grep,find(من دون-execأو-delete),touch,pwd,treeوأوامر عرض الإصدار (--version,-vأو-Vالخاصة بـnode,npm,npx,python,pipوaischool-python). فهي لا تفعل أكثر مما تفعله أدوات الملفات المدمجة أصلًا دون سؤال. وتعمل داخل الـsandbox من دون شبكة ومع مسارات داخل مجلد العمل فقط، حتى بعد تتبع الروابط (من دون مسارات مطلقة أو~أو..). إذا أشارت رابط إلى خارج المجلد، تظهر بطاقة. ويتطلب ذلك sandbox (على macOS) والأوامر المحلية، لكن ليس السماح بالتنفيذ التلقائي من مسؤولك. في لوحة الأوامر يظهر حينها تلقائي (أمر غير مؤذٍ). كما أن القائمة بين الأقواس المعقوفة، مثلmkdir -p src/{components,utils}, تبدأ أيضًا من دون بطاقة: يقوم التطبيق بتفكيكها إلى مسارات منفصلة ويتحقق منها جميعًا. - تعرض كل بطاقة الأمر الدقيق، وعند وجود إجراءات عبر الإنترنت، تعرض العنوان الدقيق. وتحت ذلك يظهر شرح المساعد بخط أصغر.
- إذا كان الـsandbox متاحًا وكان مسؤولك يسمح بالتنفيذ التلقائي، فإن البطاقة الخاصة بأمر يعمل داخل الـsandbox تحتوي أيضًا على الزر من الآن فصاعدًا تلقائيًا في sandbox لهذا المجلد. هذا يضبط المجلد على تشغيل تلقائي في sandbox، بحيث تبدأ الأوامر التالية دون بطاقة. الأوامر التي تحتاج إلى الشبكة ستطلب مرة أخرى، ما لم تكن تثبيتات الحزم مسموحًا بها.
- أول بطاقة في مجلد يعمل داخل الـsandbox ولا يطلب شبكة، تعرض مرة واحدة الوثوق بهذا المشروع. هذا ينفذ الأمر، ويضبط المجلد على تشغيل تلقائي في sandbox ويشغّل السماح بتثبيت الحزم دون سؤال. بعد ذلك تبدأ الاختبارات وعمليات البناء مثل
npm testوnpm run buildوnode --testمن دون بطاقة، داخل الـsandbox ومن دون شبكة. الأوامر التي تحتاج إلى شبكة إضافية أو التي تعمل خارج الـsandbox ستبقى تطلب الإذن. بعد تشغيل أو رفض لن يعود السؤال في هذا المجلد؛ ويمكنك تغيير الوضع من إعدادات الأوامر. إذا كان التنفيذ التلقائي متوقفًا، فكل بطاقة تذكر ما إذا كان مسؤولك أو سياسة الإدارة في هذا الكمبيوتر هي التي تفعل ذلك.
حفظ الأوامر الموثوقة
اختر عند أمر ما السماح دائمًا في هذا المجلد ثم هذا الأمر بالضبط أو كل ما يبدأ بهذا. الأوامر المحفوظة ستبدأ لاحقًا دون أسئلة. الأوامر التي تحتوي على رموز خاصة (مثل ; | > $) ستطلب دائمًا الإذن.
تظهر القواعد المحفوظة في إعدادات الأوامر تحت مسموح دائمًا في هذا المجلد. ويمكنك حذفها من هناك أيضًا.
sandbox والشبكة
- استخدام sandbox: يمكن للأوامر الكتابة فقط داخل هذا المجلد. هذا الخيار مفعّل افتراضيًا على macOS.
- السماح بالشبكة: يحدد ما إذا كانت الأوامر تملك وصولًا إلى الإنترنت. هذا الخيار متوقف افتراضيًا. بدون sandbox يكون للأوامر وصول دائم إلى الشبكة.
كل بطاقة أمر تعرض ما إذا كان الـsandbox والشبكة مفعّلين.
إذا كان السماح بالشبكة متوقفًا وأراد المساعد تنزيل شيء ما، مثل npm install، فستسأل بطاقة الأمر إن كنت تريد تنفيذ ذلك الأمر تحديدًا مع الشبكة. لذلك لا تحتاج إلى تفعيل الشبكة للمجلد كله.
على Windows لا يتوفر sandbox بعد.
تثبيت الحزم
يحتوي التطبيق على Node.js خاص به مع npm. لذلك تعمل الأوامر مثل node وnpm وnpx حتى لو لم يكن Node.js مثبتًا على جهازك. إذا كنت قد ثبّتَّ Node.js بنفسك، فسيستخدم التطبيق تلك النسخة. استثناء: المشروع الذي يشغّل Electron بنفسه (electron .) يحتاج إلى Node.js ثبّتَّه أنت بنفسك.
السماح بتثبيت الحزم دون سؤال
فعّل في إعدادات الأوامر لهذا المجلد المفتاح السماح بتثبيت الحزم دون سؤال. عندها تبدأ تثبيتات الحزم التي تحمل اسمًا من دون بطاقة: npm install <naam> و npm install من package.json، وpnpm وyarn أو bun مع install أو add، و pip install <naam> (وأيضًا عبر uv). وتعمل دائمًا داخل الـsandbox، مع الشبكة. أما الأوامر الأخرى فتتبع الوضع الذي اخترته للمجلد.
ومع ذلك ستظهر بطاقة لهذه التثبيتات:
- أدوات بدء المشاريع مثل
npm create vite@latestوnpx create-…، لأنها تشغّل كودها الخاص; pip install .وpip install -r requirements.txt، والتثبيتات من سجل آخر (--registry,-i,--index-url) والحزم من عنوان git أو URL أو مسار.
يعمل هذا المفتاح فقط مع sandbox (على macOS) ومع سماح المسؤول بالتنفيذ التلقائي. وإلا فلن يمكنك تشغيله.
الحزم المثبتة بهذه الطريقة لا تشغّل أبدًا نصوص التثبيت الخاصة بها (يعمل npm مع --ignore-scripts). وتُثبَّت حزم Python فقط كعناصر wheels جاهزة.
الخوادم المحلية والمتصفح المدمج
يمكن للمساعد أيضًا تشغيل خادم تطوير يبقى قيد العمل، مثل npm run dev لمشروع React صغير مع Vite. وتُطبَّق عليه القواعد نفسها الخاصة بالأوامر الأخرى: إما تؤكد الأمر الدقيق، أو يبدأ عبر قاعدة محفوظة أو تلقائيًا داخل الـsandbox. وبدل مدة التشغيل القصوى، تظهر على البطاقة عبارة "يبقى قيد التشغيل كخادم محلي حتى توقفه."
يبقى الخادم قيد التشغيل بعد أن يجيب المساعد. في لوحة الأوامر تعرض البطاقة الحالة الخادم يعمل، مع الزرين فتح في المتصفح وإيقاف. ويمكن تشغيل 4 خوادم كحد أقصى في الوقت نفسه. وتتوقف الخوادم عندما توقفها أو عندما تغلق التطبيق.
في الـsandbox من دون شبكة، لا يجوز للخادم أن يستمع إلا على هذا الكمبيوتر (localhost). وكيف يثبت المساعد الحزم، اقرأ في تثبيت الحزم.
عرض صفحة ويب بسيطة
لصفحة ويب عادية (ملف index.html مع CSS وJavaScript، من دون خطوة بناء) لا حاجة إلى أمر. عندها يستخدم المساعد خادم الويب المدمج في التطبيق:
- لا يمكن رؤية المجلد إلا على هذا الكمبيوتر، عبر
http://127.0.0.1مع منفذ عشوائي. - الملفات المخفية، مثل
.gitو.env, لا تُعرض أبدًا. - إذا تغيّر ملف، تُعاد تحميل الصفحة تلقائيًا.
لا تظهر لهذا بطاقة موافقة. يظهر الخادم في لوحة الأوامر، مع فتح في المتصفح وإيقاف، ويُحتسب ضمن الحد الأقصى البالغ 4 خوادم.
تُعرض النتيجة في المتصفح المدمج: زر المتصفح (أيقونة الكرة الأرضية) على اليمين في الشريط العلوي. تفتح اللوحة بجانب المحادثة، مع أزرار الرجوع والتقدم وإعادة التحميل (الإيقاف أثناء التحميل)، وشريط عنوان وفتح في المتصفح الافتراضي.
- يفتح المساعد المتصفح بنفسه ليعرض نتيجة خادم محلي. وهذا لا يعمل إلا مع العناوين المحلية، مثل
http://localhost:5173. - إذا نقرتَ في ردّ على رابط localhost، فسيُفتح في المتصفح المدمج. أما الروابط الأخرى فتُفتح في متصفحك الافتراضي.
- يمكنك أيضًا إدخال أي عنوان ويب بنفسك.
- للمتصفح جلسة منفصلة خاصة به: لست مسجّل الدخول هناك في AI-School، ولا تمنح المواقع أذونات مثل الكاميرا أو الميكروفون، ولا يمكن التنزيل.
- ما دام أحد قوائم التطبيق أو نوافذ الحوار مفتوحًا، تُخفى الصفحة مؤقتًا.
مثال:
أنشئ في هذا المجلد تطبيق React صغيرًا باستخدام Vite مع عدّاد. ثبّت الاعتماديات، وابدأ خادم التطوير، واعرض النتيجة في المتصفح.
السماح للمساعد بالمشاهدة
إذا طلبتَ من المساعد النظر إلى الصفحة في المتصفح المدمج، فإنه يقرأ العنوان، والعنوان الفرعي، والنص الظاهر، ولقطة شاشة، وآخر رسائل الخطأ في الصفحة. وتُرسل هذه إلى نموذج الذكاء الاصطناعي.
- الصفحة الموجودة على هذا الكمبيوتر (
localhostأو127.0.0.1) يراها المساعد دون سؤال. - عند أي موقع آخر، مثل صفحة أنت مسجّل الدخول فيها، يعرض المساعد أولًا بطاقة: "يريد المساعد المشاهدة على onedrive.live.com." انقر السماح بالمشاهدة أو رفض. يطلب ذلك في كل مرة.
- إذا انتقلت الصفحة بعد موافقتك إلى موقع آخر، فلا يقرأ المساعد شيئًا.
- على صفحة موجودة على هذا الكمبيوتر فقط، ينقر المساعد ويكتب بنفسه ليختبر ما أنشأه. أما في المواقع الأخرى فلا ينقر ولا يكتب ولا يتنقل. ولا يحصل على ملفات تعريف الارتباط أو كلمات المرور.
- في الوضع غير المتصل، لا يطّلع المساعد إلا على الصفحات الموجودة على هذا الكمبيوتر.
الإصدارات وGitHub
يحتوي المساعد على git مدمج. لذلك لست بحاجة إلى تثبيت git، حتى على Windows. يمكن للمساعد حفظ الإصدارات، وإظهار ما تغيّر، وإنشاء فروع، ونشر مشروع على الإنترنت.
- الإجراءات في هذا المجلد، مثل حفظ إصدار، تبدأ دون سؤال. الملفات التي تبدو كأسرار (مثل ملفات
.envأو المفاتيح أو الرموز في الكود، بما في ذلك مفاتيح Google API التي تبدأ بـAIza) لا تُضمَّن أبدًا في إصدار. ويخبرك المساعد إذا تخطّى شيئًا. - الإجراءات عبر الإنترنت (تنزيل مشروع، جلب أحدث نسخة، النشر، وإنشاء مستودع GitHub) تعرض أولًا بطاقة تتضمن العنوان الدقيق والوسمين مضمّن في التطبيق والشبكة مفعلة. إذا لم يكن العنوان github.com أو إذا أصبح المستودع الجديد عامًا، فتنبه البطاقة إلى ذلك. وعند النشر، تعرض البطاقة الملفات التي سيتم إرسالها. اختر تشغيل أو رفض.
- ربط مستودع خارج github.com يتطلب أيضًا موافقة مسبقة.
كيف تربط GitHub وتنشر مشروعًا، اقرأ في البرمجة بأسلوب vibe.
في الوضع غير المتصل، تعمل الأوامر دائمًا داخل sandbox من دون شبكة. وتثبيت الحزم مع الشبكة والإجراءات عبر الإنترنت الخاصة بـgit المدمج (التنزيل والجلب والنشر وGitHub) لا تعمل حينها. أما حفظ الإصدارات وعرض صفحة ويب بسيطة فهما يعملان.
إعدادات للمسؤولين
يمكن للمسؤولين تعطيل الأوامر المحلية أو التنفيذ التلقائي لكل المستخدمين في البيئة. ويتم ذلك في بيئة الإدارة ضمن الميزات (على مستوى البيئة)، في بطاقة تطبيق سطح المكتب:
- السماح بالأوامر المحلية: إذا كان هذا متوقفًا، فلن يستطيع المساعد تشغيل الأوامر. كما لن تعمل الإجراءات عبر الإنترنت الخاصة بـgit المدمج. لكن حفظ الإصدارات والفروع سيبقى يعمل: لأنه يغيّر فقط الملفات في المجلد، تمامًا مثل أدوات الملفات.
- السماح بالتنفيذ التلقائي: إذا كان هذا متوقفًا، فسيطلب كل أمر الإذن ولن تتمكن من تشغيل السماح بتثبيت الحزم دون سؤال.
- السماح باستخدام Python الخاص بالتطبيق لملفات Office: للقوالب والرسوم البيانية والتحليلات. يعمل هذا Python من دون إنترنت، ويكتب فقط في مجلد العمل، ولا يمكنه تشغيل برامج أخرى. إذا لم يكن هناك إعداد، فسيَتبع هذا السماح بالأوامر المحلية. ومن دون sandbox (Windows) لا يتوفر إلا إذا كانت الأوامر المحلية مفعلة، وعندها يطلب الإذن في كل مرة.