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

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

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

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

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

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

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

  • همیشه بپرس: هر فرمان را شما تأیید می‌کنید.
  • اجرای خودکارِ فرمان‌های مورداعتماد: فرمان‌هایی که ذخیره کرده‌اید بدون پرسش اجرا می‌شوند. فرمان‌های دیگر هنوز برای اجرا نیاز به اجازه دارند.
  • اجرای خودکار در 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 تنظیم می‌شود و اجازهٔ نصب بسته‌ها بدون پرسش هم فعال می‌شود. بعد از آن، آزمون‌ها و buildها مانند npm test، npm run build و node --test بدون کارت، در sandbox و بدون شبکه اجرا می‌شوند. فرمان‌هایی که همچنان به شبکه نیاز دارند یا بیرون از sandbox اجرا می‌شوند، باز هم می‌پرسند. پس از اجرا یا رد، این پرسش برای این پوشه دوباره تکرار نمی‌شود؛ حالت را از تنظیمات فرمان تغییر می‌دهید. اگر اجرای خودکار خاموش باشد، هر کارت نشان می‌دهد که این کار را مدیر شما یا سیاست مدیریتیِ این رایانه انجام می‌دهد.

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

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

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

sandbox و شبکه​

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

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

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

Windows

در Windows هنوز sandbox در دسترس نیست.

نصب بسته‌ها​

این برنامه یک 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). این‌ها همیشه در 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 اجرا می‌شود. به‌جای مدت‌زمان حداکثر، روی کارت نوشته شده است: «تا وقتی آن را متوقف کنید، به‌عنوان سرور محلی روشن می‌ماند.»

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

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

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

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

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

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

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

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

نمونه:

در این پوشه یک برنامهٔ کوچک 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 کدنویسی بخوانید.

حالت آفلاین

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

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

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

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