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

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

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

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

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

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

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

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

در هر حالت این قاعده‌ها هم برقرارند:

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

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

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

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

محیط ایزوله و شبکه​

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

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

اگر اجازهٔ شبکه خاموش باشد و دستیار بخواهد چیزی دانلود کند، مثلاً با 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 و Linux) کار می‌کند، آن هم وقتی مدیرتان اجرای خودکار را مجاز کرده باشد. در غیر این صورت نمی‌توانید آن را روشن کنید.

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

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

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

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

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

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

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

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

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

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

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

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

مثال:

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

اجازه دادن به دستیار برای دیدن صفحه​

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

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

نسخه‌ها و GitHub​

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

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

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

حالت آفلاین

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

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

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

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