برو به محتوای اصلی

اجرای امن فرمان‌های محلی

در برنامه دسکتاپ، دستیار می‌تواند فرمان‌ها و آزمون‌ها را در پوشهٔ کاری گفت‌وگوی شما اجرا کند. اینکه این کار در چت چگونه عمل می‌کند، در دسترسی محلی به فایل‌ها می‌خوانید. در این صفحه تعیین می‌کنید چه زمانی این کار بدون پرسش مجاز باشد و فرمان‌ها با چه میزان ایزوله‌سازی اجرا شوند.

باز کردن تنظیمات فرمان‌ها​

در یک گفت‌وگو، پنل فرمان‌ها را باز کنید و تنظیمات فرمان برای این پوشه را انتخاب کنید. این تنظیمات برای هر پوشه جداگانه اعمال می‌شوند.

دستیار چه زمانی می‌تواند یک فرمان اجرا کند؟​

یکی از این سه حالت را انتخاب کنید:

  • همیشه بپرس: هر فرمان را شما تأیید می‌کنید.
  • فرمان‌های مورداعتماد را خودکار اجرا کن: فرمان‌هایی که ذخیره کرده‌اید بدون پرسش اجرا می‌شوند. سایر فرمان‌ها همچنان نیاز به اجازه دارند.
  • خودکار در سندباکس: همه‌چیز بدون پرسش اجرا می‌شود، اما در یک محیط ایزوله.

در هر حالت، این قوانین هم اعمال می‌شوند:

  • فرمان‌های بی‌خطر بدون کارت اجرا می‌شوند: mkdir، ls، cat، head، tail، wc، grep، find (بدون -exec یا -delete)، touch، pwd، tree و بررسی نسخه (--version، -v یا -V برای node، npm، npx، python، pip و aischool-python). این‌ها کاری فراتر از ابزارهای داخلی فایل که بدون پرسش انجام می‌دهند انجام نمی‌دهند. آن‌ها در سندباکس، بدون شبکه و فقط با مسیرهای داخل پوشهٔ کاری اجرا می‌شوند، حتی پس از دنبال‌کردن لینک‌ها (بدون مسیرهای مطلق، ~ یا ..). اگر لینکی به بیرون از پوشه اشاره کند، کارت نمایش داده می‌شود. برای این کار، سندباکس (macOS) و فرمان‌های محلی لازم است، اما اجازهٔ اجرای خودکار از طرف مدیر شما لازم نیست. در پنل فرمان‌ها در این حالت خودکار (فرمان بی‌خطر) نمایش داده می‌شود. یک فهرست داخل آکولاد، مثل mkdir -p src/{components,utils} هم بدون کارت اجرا می‌شود: برنامه آن را به مسیرهای جداگانه تبدیل می‌کند و همه را بررسی می‌کند.
  • هر کارت، فرمان دقیق و در صورت عملیات آنلاین، نشانی دقیق را نشان می‌دهد. زیر آن، توضیح دستیار به‌صورت کوچک‌تر آمده است.
  • اگر سندباکس در دسترس باشد و مدیر شما اجرای خودکار را مجاز کرده باشد، کارتی برای فرمانی که در سندباکس اجرا می‌شود دکمهٔ از این پس در این پوشه همیشه در سندباکس خودکار اجرا کن هم دارد. این گزینه پوشه را روی خودکار در سندباکس می‌گذارد تا فرمان‌های بعدی بدون کارت شروع شوند. فرمان‌هایی که به شبکه نیاز دارند، یک‌بار دیگر سؤال می‌پرسند، مگر این‌که نصب بسته‌ها مجاز باشد.
  • اولین کارت در پوشه‌ای که در سندباکس اجرا می‌شود و به شبکه نیاز ندارد، یک‌بار به این پروژه اعتماد کن را نشان می‌دهد. با این کار فرمان اجرا می‌شود، پوشه روی خودکار در سندباکس تنظیم می‌شود و اجازهٔ نصب بسته‌ها بدون پرسش هم روشن می‌شود. پس از آن، آزمون‌ها و buildهایی مثل npm test، npm run build و node --test بدون کارت و در سندباکسِ بدون شبکه اجرا می‌شوند. فرمان‌هایی که به شبکهٔ بیشتری نیاز دارند یا خارج از سندباکس اجرا می‌شوند، همچنان درخواست می‌دهند. بعد از اجرا یا رد، این پرسش در این پوشه دیگر برنمی‌گردد؛ حالت را از تنظیمات فرمان‌ها تغییر می‌دهید. اگر اجرای خودکار خاموش باشد، هر کارت مشخص می‌کند که این کار را مدیر شما یا سیاست مدیریتی این رایانه انجام می‌دهد.

ذخیرهٔ فرمان‌های مورداعتماد​

برای یک فرمان، همیشه در این پوشه اجازه بده و سپس دقیقاً همین فرمان یا هر چیزی که با این شروع شود را انتخاب کنید. فرمان‌های ذخیره‌شده از این پس بدون پرسش اجرا می‌شوند. فرمان‌هایی با نویسه‌های ویژه (مثل ; | > $) همیشه نیاز به اجازه دارند.

قوانین ذخیره‌شده در تنظیمات فرمان‌ها زیرِ همیشه در این پوشه مجاز قرار دارند. از همان‌جا می‌توانید آن‌ها را حذف کنید.

سندباکس و شبکه​

  • استفاده از سندباکس: فرمان‌ها فقط می‌توانند در این پوشه بنویسند. این گزینه به‌طور پیش‌فرض در macOS روشن است.
  • اجازهٔ شبکه: تعیین می‌کند فرمان‌ها اینترنت داشته باشند یا نه. این گزینه به‌طور پیش‌فرض خاموش است. بدون سندباکس، فرمان‌ها همیشه به شبکه دسترسی دارند.

هر کارت فرمان نشان می‌دهد که سندباکس و شبکه روشن هستند یا نه.

اگر اجازهٔ شبکه خاموش باشد و دستیار بخواهد چیزی دانلود کند، مثلاً با npm install، کارت فرمان می‌پرسد آیا می‌خواهید دقیقاً همان فرمان را با شبکه اجرا کنید. پس لازم نیست شبکه را برای کل پوشه روشن کنید.

Windows

در Windows هنوز سندباکس در دسترس نیست.

نصب بسته‌ها​

برنامه یک Node.js داخلی همراه با npm دارد. بنابراین فرمان‌هایی مثل node، npm و npx حتی وقتی Node.js روی رایانهٔ شما نصب نباشد هم کار می‌کنند. اگر خودتان Node.js را نصب کرده باشید، برنامه از همان نسخه استفاده می‌کند. استثنا: پروژه‌ای که خودش Electron را اجرا می‌کند (electron .) به Node.jsی نیاز دارد که خودتان نصب کرده‌اید.

اجازه دادن به نصب بسته‌ها بدون پرسش​

در تنظیمات فرمان برای این پوشه، کلید اجازهٔ نصب بسته‌ها بدون پرسش را روشن کنید. نصب بسته‌های نام‌دار آن‌گاه بدون کارت شروع می‌شود: npm install <نام> و npm install از package.json، و نیز pnpm، yarn یا bun با install یا add، و pip install <نام> (همچنین از طریق uv). این‌ها همیشه در سندباکس و با شبکه اجرا می‌شوند. سایر فرمان‌ها از حالتی پیروی می‌کنند که برای پوشه انتخاب کرده‌اید.

این نصب‌ها هنوز هم این موارد را به کارت می‌آورند:

  • آغازگرهای پروژه مثل npm create vite@latest و npx create-…، چون کد خودشان را اجرا می‌کنند؛
  • pip install .، pip install -r requirements.txt، نصب از یک رجیستر دیگر (--registry، -i، --index-url) و بسته‌هایی از نشانی git، URL یا مسیر.

این کلید فقط با سندباکس (macOS) و وقتی مدیر شما اجرای خودکار را مجاز کرده باشد کار می‌کند. در غیر این صورت نمی‌توانید آن را روشن کنید.

بدون اسکریپت‌های نصب

بسته‌هایی که این‌گونه نصب می‌شوند، هرگز اسکریپت نصب خودشان را اجرا نمی‌کنند (npm با --ignore-scripts اجرا می‌شود). بسته‌های Python فقط به‌صورت wheelهای آماده نصب می‌شوند.

سرورهای محلی و مرورگر داخلی​

دستیار می‌تواند یک سرور توسعه نیز شروع کند که روشن می‌ماند، مثل npm run dev برای یک پروژهٔ کوچک React با Vite. برای این کار همان قواعد فرمان‌های دیگر اعمال می‌شود: یا فرمان دقیق را تأیید می‌کنید، یا از طریق یک قانون ذخیره‌شده یا به‌صورت خودکار در سندباکس شروع می‌شود. به‌جای مدت زمان حداکثر، روی کارت نوشته می‌شود: «تا وقتی آن را متوقف کنید به‌عنوان سرور محلی روشن می‌ماند.»

سرور پس از پاسخ‌دادن دستیار روشن می‌ماند. در پنل فرمان‌ها، کارت وضعیت سرور در حال اجراست را نشان می‌دهد، همراه با دکمه‌های باز کردن در مرورگر و توقف. حداکثر ۴ سرور می‌توانند هم‌زمان اجرا شوند. سرورها وقتی شما آن‌ها را متوقف کنید یا برنامه را ببندید، متوقف می‌شوند.

در سندباکسِ بدون شبکه، سرور فقط می‌تواند روی همین رایانه گوش بدهد (localhost). دربارهٔ اینکه دستیار بسته‌ها را چگونه نصب می‌کند، در نصب بسته‌ها بخوانید.

نمایش یک صفحهٔ وب ساده​

برای یک صفحهٔ وب معمولی (یک index.html با CSS و JavaScript، بدون مرحلهٔ build) نیازی به فرمان نیست. در این حالت دستیار از وب‌سرور داخلی برنامه استفاده می‌کند:

  • پوشه فقط روی همین رایانه، در http://127.0.0.1 با یک پورت تصادفی قابل مشاهده است.
  • فایل‌های پنهان، مثل .git و .env، هرگز نمایش داده نمی‌شوند.
  • اگر فایلی تغییر کند، صفحه به‌طور خودکار دوباره بارگذاری می‌شود.

برای این مورد کارت تأیید نمایش داده نمی‌شود. سرور در پنل فرمان‌ها ظاهر می‌شود، با باز کردن در مرورگر و توقف، و در سقف ۴ سرور هم حساب می‌شود.

نتیجه را در مرورگر داخلی می‌بینید: دکمهٔ مرورگر (آیکون کرهٔ زمین) در سمت راست نوار بالایی. پنل کنار گفت‌وگو باز می‌شود، با رفتن به عقب، جلو، بارگذاری دوباره (توقف هنگام بارگذاری)، نوار آدرس و باز کردن در مرورگر پیش‌فرض شما.

  • دستیار خودش مرورگر را باز می‌کند تا نتیجهٔ یک سرور محلی را نشان دهد. این فقط با آدرس‌های محلی ممکن است، مثل http://localhost:5173.
  • اگر در یک پاسخ روی لینک localhost کلیک کنید، در مرورگر داخلی باز می‌شود. لینک‌های دیگر در مرورگر پیش‌فرض شما باز می‌شوند.
  • خودتان هم می‌توانید هر نشانی وبی را وارد کنید.
  • مرورگر یک جلسهٔ جداگانه و مستقل دارد: آن‌جا به AI-School وارد نشده‌اید، وب‌سایت‌ها مجوزهایی مثل دوربین یا میکروفون دریافت نمی‌کنند و دانلود ممکن نیست.
  • تا وقتی منو یا پنجرهٔ گفت‌وگوی برنامه باز باشد، صفحه موقتاً پنهان می‌شود.

مثال:

در این پوشه یک برنامهٔ کوچک React با Vite و یک شمارنده بساز. وابستگی‌ها را نصب کن، dev-server را راه‌اندازی کن و نتیجه را در مرورگر نشان بده.

واداشتن دستیار به بررسی​

اگر از دستیار بخواهید به صفحه در مرورگر داخلی نگاه کند، او نشانی، عنوان، متنِ قابل‌مشاهده، یک اسکرین‌شات و آخرین پیام‌های خطای صفحه را می‌خواند. این‌ها به مدل هوش مصنوعی فرستاده می‌شوند.

  • صفحه‌ای روی این رایانه (localhost یا 127.0.0.1) را دستیار بدون پرسش بررسی می‌کند.
  • برای هر وب‌سایت دیگر، مثلاً صفحه‌ای که در آن وارد شده‌اید، دستیار اول یک کارت نشان می‌دهد: «دستیار می‌خواهد در onedrive.live.com نگاه کند.» روی اجازهٔ مشاهده یا رد کلیک کنید. این پرسش هر بار تکرار می‌شود.
  • اگر صفحه پس از اجازهٔ شما به وب‌سایت دیگری برود، دستیار هیچ چیزی را نمی‌خواند.
  • فقط روی صفحه‌ای در این رایانه، دستیار خودش کلیک و تایپ می‌کند تا چیزی را که ساخته آزمایش کند. در وب‌سایت‌های دیگر کلیک، تایپ و پیمایش نمی‌کند. کوکی‌ها یا گذرواژه‌ها را دریافت نمی‌کند.
  • در حالت آفلاین، دستیار فقط صفحه‌های همین رایانه را بررسی می‌کند.

نسخه‌ها و GitHub​

دستیار یک git داخلی دارد. بنابراین لازم نیست git را نصب کنید، حتی در Windows. دستیار می‌تواند نسخه‌ها را ذخیره کند، تغییرات را نشان دهد، شاخه بسازد و یک پروژه را آنلاین کند.

  • کارها در این پوشه، مثل ذخیرهٔ یک نسخه، بدون پرسش شروع می‌شوند. فایل‌هایی که شبیه راز هستند (مثل فایل‌های .env، کلیدها یا توکن‌ها در کد، حتی کلیدهای Google API که با AIza شروع می‌شوند) هرگز وارد نسخه نمی‌شوند. دستیار اگر چیزی را نادیده بگیرد، آن را گزارش می‌کند.
  • کارهای آنلاین (دانلود یک پروژه، گرفتن آخرین نسخه، آنلاین‌کردن و ساختن یک مخزن GitHub) ابتدا یک کارت با نشانی دقیق و برچسب‌های داخلی در برنامه و شبکه روشن نشان می‌دهند. اگر نشانی github.com نباشد یا یک مخزن جدید عمومی شود، کارت هشدار می‌دهد. هنگام آنلاین‌کردن، کارت نشان می‌دهد چه فایل‌هایی ارسال می‌شوند. اجرا یا رد را انتخاب کنید.
  • اتصال یک مخزن بیرون از github.com هم ابتدا اجازه می‌خواهد.

نحوهٔ اتصال GitHub و آنلاین‌کردن یک پروژه را در Vibe کدنویسی می‌خوانید.

حالت آفلاین

در حالت آفلاین، فرمان‌ها همیشه در سندباکس و بدون شبکه اجرا می‌شوند. نصب بسته با شبکه و کارهای آنلاین git داخلی (دانلود، دریافت، آنلاین‌کردن و GitHub) در آن حالت کار نمی‌کنند. ذخیرهٔ نسخه‌ها و نمایش یک صفحهٔ وب ساده همچنان کار می‌کنند.

تنظیمات برای مدیران​

مدیران می‌توانند فرمان‌های محلی یا اجرای خودکار را برای همهٔ افراد در محیط غیرفعال کنند. این کار را در محیط مدیریتی، در ویژگی‌ها (در سطح محیط)، در کارت برنامهٔ دسکتاپ انجام می‌دهند:

  • اجازهٔ فرمان‌های محلی: اگر خاموش باشد، دستیار نمی‌تواند فرمانی اجرا کند. کارهای آنلاینِ git داخلی هم در آن صورت کار نمی‌کنند. با این حال ذخیرهٔ نسخه‌ها و شاخه‌ها همچنان کار می‌کنند: آن‌ها فقط فایل‌های داخل پوشه را تغییر می‌دهند، درست مثل ابزارهای فایل.
  • اجازهٔ اجرای خودکار: اگر خاموش باشد، هر فرمان برای اجازه پرسش می‌کند و نمی‌توانید اجازهٔ نصب بسته‌ها بدون پرسش را روشن کنید.
  • اجازهٔ Python برنامه برای فایل‌های Office: برای الگوها، نمودارها و تحلیل‌ها. این Python بدون اینترنت کار می‌کند، فقط در پوشهٔ کاری می‌نویسد و نمی‌تواند برنامه‌های دیگر را اجرا کند. اگر چیزی تنظیم نشده باشد، از اجازهٔ فرمان‌های محلی پیروی می‌کند. بدون سندباکس (Windows)، فقط وقتی فرمان‌های محلی روشن باشند وجود دارد، و هر بار اجازه می‌خواهد.