رگز اور انکلوژرز
رگ ایک ضائع ہونے والی مشین ہے جسے ایجنٹ حقیقی وقت میں چلاتا ہے — ایک براؤزر، ایک Linux ڈیسک ٹاپ، ایک Android ایمولیٹر، ایک iOS سمیولیٹر، یا کسی انکلوژر ٹرمنل کے پیچھے والی مشین۔ زیادہ تر رگز VM ہوتے ہیں؛ میزبان کے زیرِ انتظام موبائل سمیولیٹرز واضح استثناء ہیں۔ یہ صفحہ ہر سرحد کی وضاحت کرتا ہے اور یہ کہ اجزاء کو یہ شکل کیوں دی گئی ہے۔ کوئی رگ کھولنے کے لیے دیکھیں ایجنٹ کو ٹیسٹ کے لیے مشین دیں؛ درست افعال، پورٹس اور ڈیفالٹس کے لیے دیکھیں رگز حوالہ۔
سینڈ باکس کے بجائے VM کیوں
سیکشن کا عنوان “سینڈ باکس کے بجائے VM کیوں”نیٹو سینڈ باکس کسی پروسیس کو نیم اسپیس
تنہائی میں لپیٹ دیتا ہے — حقیقی، مگر یہ آپ کا کرنل شیئر کرتا ہے، اور یہ ایک
پروسیس کو محدود کرتا ہے، کسی کمپیوٹر کو نہیں۔ جس لمحے کسی ایجنٹ کو کسی
ڈیسک ٹاپ ایپ پر کلک کرنا، کسی حقیقی براؤزر میں صفحہ رینڈر کرنا، یا rm -rf
کے ایسے تجربات چلانے ہوں جن کے بارے میں آپ سوچنا بھی نہ چاہیں، اُس لمحے
ایماندار سرحد ایک مشین ہے: اپنا کرنل، اپنی ڈسک، اپنا نیٹ ورک اسٹیک۔
انکلوژر سطحیں دو VM بیک اینڈ استعمال کرتی ہیں:
- microVMs ٹرمنل اور براؤزر کے لیے — ڈائجسٹ پن شدہ کنٹینر امیجز سے سب سیکنڈ ہائپر وائزر بوٹ۔
- QEMU مکمل Linux ڈیسک ٹاپ کے لیے، جسے ایسی ڈسپلے ڈیوائس درکار ہے جو microVM کے پاس نہیں ہوتی۔
موبائل سطحیں میزبان کے زیرِ انتظام ہیں اور کمزور سرحد صاف بتاتی ہیں:
- Android گوگل کے ایمولیٹر کو ADB کے ذریعے چلاتا ہے۔
- iOS Mac میزبان پر ایک CoreSimulator ڈیوائس بناتا اور اپنے پاس رکھتا ہے اور اسے WebDriverAgent کے ذریعے چلاتا ہے۔ رگ بند ہونے پر ڈیوائس اور اس کا ڈیٹا حذف ہو جاتا ہے، مگر اس کا نیٹ ورک میزبان Mac کے پیچھے چلتا ہے۔
انکلوژر رگز صرف پڑھنے والی بیس امیج کے اوپر ایک ضائع ہونے والے اوورلے پر لکھتے ہیں، اس لیے کوئی رگ یہ تبدیل نہیں کر سکتا کہ اگلا کس چیز سے بوٹ ہوگا۔ iOS رگ ایک ضائع ہونے والی CoreSimulator ڈیوائس کی مالک ہوتی ہے جو رگ بند ہونے پر حذف ہو جاتی ہے۔ Android ایسے میزبان ایمولیٹر سے جڑتا ہے جو سیشن سے زیادہ زندہ رہتا ہے۔
ڈیفالٹ انکار والی ایگریس
سیکشن کا عنوان “ڈیفالٹ انکار والی ایگریس”رگ کا نیٹ ورک کچھ بھی نہیں سے شروع ہوتا ہے۔ ہر رگ کے لیے میزبان ایسے گیٹ
سے داخل کیے جاتے ہیں جس کے گرد گیسٹ راستہ نہیں بنا سکتا: مشین کے باہر نکلنے
کے واحد راستے وہی ہیں جو لانچ کنفیگریشن نے بنائے۔ ایک انکلوژر ٹرمنل کو
ڈیویلپر بیس لائن ملتی ہے (پیکیج رجسٹریاں، فورجیز، apt مررز)؛ براؤزر رگ
پروڈکٹ سائٹ (usectrl.dev) کو داخل کرتا ہے اور ایک مقامی file:// صفحے پر
بوٹ ہوتا ہے جسے کسی ایگریس کی ضرورت نہیں؛ باقی سب کچھ کنیکٹ کے وقت مسترد کر
دیا جاتا ہے۔
Android اور iOS اس گیٹ میں شامل نہیں۔ ان کا میزبان ایمولیٹر اور سمیولیٹر سرور میزبان کی نیٹ ورکنگ استعمال کرتے ہیں، اس لیے UI اور صلاحیتوں کی رپورٹ ایگریس کو نافذ نہ شدہ بتاتی ہیں اور کبھی گمراہ کن “غیر پابند دوبارہ شروع کریں” کنٹرول پیش نہیں کرتیں۔
ایگریس اور کریڈینشلز ایک ہی پالیسی کے دو رخ ہیں — کریڈینشل بروکر (نیچے) ایسے میزبان کے لیے ٹوکن جاری نہیں کرے گا جہاں گیسٹ پہنچ ہی نہ سکے۔
رگ جو کچھ بھی پڑھتا ہے اُسے ناقابل اعتماد سمجھا جاتا ہے: صفحے کا متن، DOM اور ایکسیسبلٹی ٹری، UI ڈمپ اور کنسول آؤٹ پٹ ایجنٹ کو ایک مستقل “یہ ڈیٹا ہے، ہدایات نہیں” قاعدے کے ساتھ باڑ میں لگے ہوئے واپس آتے ہیں۔ باڑ صرف فریمنگ ہے؛ اصل نفاذ اس کے پیچھے ایگریس گیٹ ہے۔
اِن پٹ ہائپر وائزر سے گزرتا ہے، کیپچر گیسٹ سے
سیکشن کا عنوان “اِن پٹ ہائپر وائزر سے گزرتا ہے، کیپچر گیسٹ سے”ڈیسک ٹاپ سطح کے لیے، کی بورڈ اور پوائنٹر ایونٹس ہائپر وائزر کے اپنے ورچوئل اِن پٹ ڈیوائسز کے ذریعے داخل کیے جاتے ہیں۔ گیسٹ کبھی ایسا پرائیویلجڈ ڈیمن نہیں چلاتا جو اِن پٹ ترکیب کر سکے — اس لیے گیسٹ کے سافٹ ویئر پر قبضہ حملہ آور کے ہاتھ میں کی بورڈ نہیں دے دیتا۔ کیپچر دوسری طرف سے بہتا ہے، گیسٹ کے اندر ایک چھوٹے غیر مراعات یافتہ ایجنٹ کے ذریعے، کیونکہ گیسٹ فریموں کو تار پار کرنے سے پہلے سکیل کر سکتا ہے۔
دو ڈسپلے لین
سیکشن کا عنوان “دو ڈسپلے لین”دیکھنے والے شخص اور چلانے والے ماڈل کی ضروریات متضاد ہیں، اس لیے ایک رگ دو آزاد اسٹریم پیش کرتا ہے:
- انسانی لین آپ کے پینل کے سائز پر مکمل ریزولوشن ہے، جیسے جیسے آپ سائز بدلتے ہیں دوبارہ طے ہوتی ہے، اور سرور اسے مبہم بائٹس کے طور پر آگے بھیجتا ہے — سرور کبھی فریم ڈی کوڈ نہیں کرتا، کیونکہ ریکویسٹ پاتھ پر ویڈیو ڈی کوڈر ہی وہ چیز ہے جو اسے RPCs کا جواب دینے سے روک دیتی ہے۔
- ایجنٹ لین ماڈل کے لیے موزوں سائز پر محدود، چھوٹی کی گئی اسٹل تصاویر ہے، فی ٹول نتیجہ ایک تصویر، جہاں کمپیکشن کے دوران پرانے فریم ہٹا دیے جاتے ہیں مگر ان کی متنی تفصیلات باقی رہتی ہیں۔
کوئی بھی لین دوسری کے لیے سمجھوتا نہیں کرتی: آپ کو رواں تصویر ملتی ہے، ماڈل کو سستی۔
ٹیک اوور ایک چوک پوائنٹ ہے، کوئی درخواست نہیں
سیکشن کا عنوان “ٹیک اوور ایک چوک پوائنٹ ہے، کوئی درخواست نہیں”خصوصی کنٹرول اس واحد مقام پر نافذ ہوتا ہے جہاں سے ہر عمل گزرتا ہے — ماڈل سے اچھا سلوک مانگ کر نہیں۔ جب تک کوئی انسان اسے تھامے رکھتا ہے، سرور ایجنٹ کے تبدیلی کرنے والے اقدامات مسترد کرتا ہے۔ ایجنٹ اپنے مشاہدے کے افعال (اسکرین شاٹس، استخراج) برقرار رکھتا ہے تاکہ بتا سکے کہ آپ کیا کر رہے ہیں، اور ٹیک اوور کی اطلاع اسے اس کے اسٹیئرنگ لین کے ذریعے دی جاتی ہے، نہ یہ کہ مسترد شدہ کلکس سے خود دریافت کرنے کے لیے چھوڑ دیا جائے۔ کینوس پر کلک کرنا اور ٹائپ کرنا جب بھی کوئی اور وہ لاک نہ تھامے کام کرتا ہے — یا جب آپ تھامیں؛ اسٹیٹس ٹیگ کنٹرول آپ کے پاس ہے پڑھتا ہے۔ ہر اِن پٹ ایونٹ — آپ کا اور ایجنٹ کا — فی رگ آڈٹ لاگ میں اس کے پرنسپل اور ایک مونوٹونک ترتیب کے ساتھ درج ہوتا ہے، تاکہ مشین جانے کے بعد بھی “یہ کس نے کلک کیا” کا جواب ممکن رہے۔
مواد سرحد پار کرتا ہے؛ مشینیں الگ رہتی ہیں
سیکشن کا عنوان “مواد سرحد پار کرتا ہے؛ مشینیں الگ رہتی ہیں”کاپی اور پیسٹ دونوں سمتوں میں کام کرتے ہیں، اور فائلیں اندر باہر گھسیٹنا بھی — مگر رگ ایک مختلف کمپیوٹر ہے، اور ڈیزائن کبھی اس کے برعکس ہونے کا بہانہ نہیں کرتا۔
کلپ بورڈ طلب پر منتقل ہوتا ہے، مسلسل آئینہ نہیں بنایا جاتا۔ رگ پر کاپی کی کورڈ دبائیں تو گیسٹ کو کاپی کرنے کا کہا جاتا ہے، پھر اس نے اپنے کلپ بورڈ پر جو رکھا — متن، تصویر، فائلوں کی فہرست — وہ حاصل کر کے آپ کے کلپ بورڈ پر رکھ دیا جاتا ہے۔ پیسٹ وہی مواد دوسری سمت بھیجتا ہے اور پھر گیسٹ کے اندر پیسٹ دباتا ہے۔ پس منظر میں کچھ بھی ہم آہنگ نہیں ہوتا: آپ کی اپنی مشین پر کاپی کیا گیا پاس ورڈ ٹائمر چلنے سے خاموشی سے VM کے اندر نہیں پہنچ جاتا۔
عبور فی صارف اور فی سمت، آزادانہ طور پر گیٹ کیا جاتا ہے۔ رگ میں پیسٹ ڈیفالٹ کے طور پر اجازت یافتہ ہے؛ رگ سے باہر کاپی پہلے پوچھتی ہے (دس منٹ کی اجازت، یا ترتیبات → سرور → رگز → کلپ بورڈ تک رسائی کے تحت ہمیشہ اجازت دیں)۔ یہ کبھی ورک اسپیس کی ترتیب نہیں ہوتی: ایک رکن دوسرے رکن کے کلپ بورڈ پر رضامندی نہیں دے سکتا۔
macOS پر عبور کی کورڈ ⌘C/⌘V ہے، جو غیر مبہم ہے — ⌃C گیسٹ شیل تک اُسی انٹرپٹ کے طور پر پہنچتی رہتی ہے جو وہ ہے۔ Windows اور Linux پر دونوں کورڈ ایک ہی کی اسٹروک ہیں، اس لیے گیسٹ اسے بغیر تبدیلی کے وصول کرتا ہے اور آپ کا کلپ بورڈ صرف اُس وقت بدلا جاتا ہے جب گیسٹ کا واقعی بدلا ہو۔ انٹرپٹ انٹرپٹ ہی رہتا ہے۔
اندر گھسیٹی گئی فائلیں مشین کے ڈراپ فولڈر میں کاپی کی جاتی ہیں اور پھر
اُسے پیش کی جاتی ہیں۔ “پیش کرنے” کا مطلب اس پر منحصر ہے کہ ایمانداری سے کیا
کیا جا سکتا ہے: براؤزر صفحہ کو اُس مقام پر حقیقی ڈراپ ایونٹ ملتا ہے جہاں
آپ چھوڑتے ہیں، اس لیے اپلوڈ زون بالکل ویسے ہی برتاؤ کرتا ہے جیسے کسی مقامی
فائل کے لیے؛ ڈیسک ٹاپ کو فائلیں ~/Drops میں ملتی ہیں اور ان کے پاتھ اس کے
کلپ بورڈ پر ہوتے ہیں، کیونکہ کوئی بھی میزبان گیسٹ کے اندر پرائیویلجڈ ڈیمن
چلائے بغیر کسی من مانی Linux ٹول کٹ میں ڈریگ ترکیب نہیں کر سکتا — اور یہی
وہ چیز ہے جو یہ ڈیزائن رکھنے سے انکار کرتا ہے۔ نتیجہ بتاتا ہے کہ کیا ہوا،
اس لیے اپلوڈ زون پر گرائی گئی CSV کو کبھی اپلوڈ شدہ نہیں بتایا جاتا جب وہ
محض فولڈر میں ایک فائل ہو۔ کسی انکلوژر ٹرمنل پر ڈراپ کرنے سے فائل اندر
کاپی ہو جاتی ہے اور اس کا گیسٹ پاتھ پرامپٹ پر ٹائپ کر دیا جاتا ہے، جو کہ شیل
واقعی استعمال کر سکتی ہے۔
باہر گھسیٹی گئی فائلیں ڈیسک ٹاپ سطح پر کام کرتی ہیں، جہاں X11 کا ڈریگ پروٹوکول ڈریگ کے دوران پے لوڈ کو پڑھنے کے قابل بناتا ہے۔ گیسٹ کے اندر ڈریگ شروع کریں، اسے کینوس سے باہر لے جائیں، اور فائلیں آپ کی مشین پر حاصل کر کے OS کو حقیقی ڈریگ کے طور پر دے دی جاتی ہیں۔ گیسٹ کے فائل مینیجر میں فائلیں کاپی کر کے میزبان پر پیسٹ کرنا بھی اسی طرح کام کرتا ہے۔ براؤزر سطح جان بوجھ کر یہ پیش نہیں کرتی: ہیڈ لیس براؤزر کے پاس پڑھنے کے لیے کوئی ڈریگ سلیکشن نہیں ہوتی، اور قریب ترین دستیاب اشارہ — صفحے کی متنی سلیکشن — ڈریگ کا کوئی ثبوت ہی نہیں، اس لیے اس پر عمل کرنا عام کلکس کو ہائی جیک کر دیتا۔
گیسٹ سے باہر پڑھی گئی ہر چیز ناقابل اعتماد مواد ہی رہتی ہے: کلپ بورڈ کا متن ماڈل تک اُسی باڑ کے اندر پہنچتا ہے جس میں صفحے کا استخراج، اور آڈٹ لاگ صرف یہ درج کرتا ہے کہ پیسٹ ہوا اور کتنا تھا — کبھی یہ نہیں کہ اس میں کیا کہا گیا۔
کریڈینشلز کبھی گیسٹ میں نہیں رہتے
سیکشن کا عنوان “کریڈینشلز کبھی گیسٹ میں نہیں رہتے”git push اُس انکلوژر ٹرمنل سے کام کرتا ہے جو آپ خود کھولیں، پھر بھی گیسٹ کوئی فورج
ٹوکن محفوظ نہیں رکھتا۔ وہ فی VM ایک راز رکھتا ہے جس کی واحد طاقت یہ ہے کہ میزبان کے
کریڈینشل بروکر سے — ایسی ٹنل کے ذریعے جو میزبان کنٹرول کرتا ہے — ایک قلیل
المدت، ریپو تک محدود ٹوکن مانگے، فی آپریشن، شرح محدود، ایگریس کی طرح اُسی
میزبان اجازت کی فہرست سے پابند، اور رگ بند ہوتے ہی منسوخ۔ ضائع ہونے کے لیے
بنی مشین میں چوری کے قابل کچھ بھی نہیں ہونا چاہیے۔
وہ ٹوکن کیا کر سکتا ہے، یہ رگ کھلتے وقت طے ہو جاتا ہے۔ کسی انسان کا کھولا ہوا ٹرمنل رگ لکھنے کے قابل ٹوکن پاتا ہے، جو اُسی رکن کی اپنی فورج رسائی سے محدود ہوتا ہے۔ کسی ایجنٹ کا کھولا ہوا رگ صرف پڑھنے والا ٹوکن پاتا ہے: git کا کریڈینشل ہیلپر پش اور fetch میں فرق نہیں کر سکتا، اس لیے گیسٹ کے اندر ہر پش پر پش قاعدے سے نہیں پوچھا جا سکتا، جیسے ایجنٹ رن گیٹ وے میزبان پر پوچھتا ہے۔
رگ میں worktree ایک سیٹلائٹ ہے
سیکشن کا عنوان “رگ میں worktree ایک سیٹلائٹ ہے”جب کوئی رگ آپ کی ریپوزٹری اٹھائے تو میزبان کا worktree ہی مستند رہتا ہے۔
کاپی بوٹ کے وقت اندر ہم آہنگ کی جاتی ہے (.env جیسے راز مستثنیٰ ہوتے
ہیں)، اور کمیٹس صرف اُس وقت واپس آتی ہیں جب آپ مانگیں — refs/rigs/<id>/*
میں حاصل کی جاتی ہیں، نہ کبھی پش، نہ کبھی چیک آؤٹ۔ VM کے اندر سے کوئی چیز
آپ کی برانچ نہیں ہلا سکتی اور نہ آپ کے ورکنگ ٹری کو چھو سکتی ہے؛ رگ نے جو
پیدا کیا اسے مرج کرنا ہمیشہ میزبان پر ایک انسانی فیصلہ ہوتا ہے۔
سوراخوں کے بغیر پورٹس
سیکشن کا عنوان “سوراخوں کے بغیر پورٹس”ٹرمنل VM کے اندر شروع کیا گیا ڈیو سرور قابلِ رسائی ہو جاتا ہے — آپ کی مشین پر، Browser (VM) میں، اختیاری طور پر آپ کے LAN پر، اختیاری طور پر HTTPS والے ڈیو ڈومین کے تحت — بغیر مشین کو کبھی کھولے۔ ہائپر وائزر کا پورٹ نقشہ بوٹ پر مقرر ہو جاتا ہے، اس لیے بعد کی تمام فارورڈنگ دو تنگ، میزبان کے زیرِ کنٹرول چینلز پر سوار ہوتی ہے: ایک پیشگی بنایا گیا اِن باؤنڈ ملٹی پلیکسر جو ایسی کسی چیز کو ڈائل کرنے سے انکار کرتا ہے جس پر گیسٹ واقعی سن نہ رہا ہو، اور ریورس ٹنلز جو میزبان گیسٹ سے شروع ہونے والے کنکشنز کے لیے کھلی رکھتا ہے۔ ڈیو ڈومین کا HTTPS سرور پر ختم ہوتا ہے، مقامی طور پر جاری کردہ اتھارٹی استعمال کرتے ہوئے جس کی کلیدیں کبھی کسی گیسٹ میں داخل نہیں ہوتیں۔ تفصیلات ٹرمنل سے پورٹس فارورڈ کریں میں ہیں۔
مشینیں بناوٹ ہی سے محدود ہیں
سیکشن کا عنوان “مشینیں بناوٹ ہی سے محدود ہیں”ایک رگ پالتو نہیں بن سکتا:
- ایک سخت TTL جسے گیسٹ بڑھا نہیں سکتا؛
- ایک آئیڈل سیڑھی — آئیڈل ونڈو کے بعد پارک (vCPUs رک جاتے ہیں، RAM موجود رہتی ہے)، اس سے دوگنا وقت بعد بند — جہاں کھلا ٹرمنل یا دیکھنے والا ناظر “زیرِ استعمال” شمار ہوتا ہے؛
- ایک میموری بجٹ جو رہائشی میگا بائٹس میں گنا جاتا ہے، سیشنز میں نہیں، کیونکہ پارک شدہ VM CPU آزاد کرتی ہے مگر RAM کا ہر بائٹ رکھتی ہے؛ سب سے کم حالیہ استعمال شدہ مشین پہلے نکالی جاتی ہے، اور کبھی وہ نہیں جسے کوئی شخص چلا یا دیکھ رہا ہو؛
- سرور بند ہونے پر ٹیر ڈاؤن، اور اگلے آغاز پر ملکیت کے نشان والی یتیم صفائی، تاکہ کریش ہوا سرور ایسا ہائپر وائزر کبھی چھوڑ کر نہ جائے جو کسی کا جواب نہ دے۔
پہلے بوٹ مشین کی پن شدہ امیج کھینچتے ہیں؛ پھر سرور پس منظر میں پہلے سے
نکالی گئی کاپی کیش کر لیتا ہے، اس لیے اُس قسم کی ہر بعد والی مشین سیکنڈوں میں
بوٹ ہوتی ہے اور انکلوژر ٹرمنل ایسی CLI بیس لائن کے ساتھ اٹھتا ہے جو GitHub
ہوسٹڈ رنر جیسی ہوتی ہے — کمپائلرز، Python، jq، آرکائیو ٹولز — نہ کوئی
لینگویج ٹول کیش اور نہ Docker۔ Computer امیج وہی CLI بیس لائن بلڈ کے وقت
اندر پکا دیتی ہے، XFCE اور براؤزرز کے ساتھ۔
تین براؤزر، ایک نہیں
سیکشن کا عنوان “تین براؤزر، ایک نہیں”“یہ میری مشین پر چلتا ہے” ایک ہی رینڈرنگ انجن کے بارے میں دعویٰ ہے۔ اس لیے براؤزر رگ “وہ براؤزر” نہیں ہوتا — وہ Chromium، Firefox یا WebKit ہوتا ہے، جو آپ کھولتے وقت چنتے ہیں، اور رگ اپنی ساری عمر وہی چلاتا ہے جس کے ساتھ کھولا گیا۔ ایک گفتگو میں تینوں میں سے ایک ایک ہو سکتا ہے: Firefox (VM) کو Chromium (VM) کے ساتھ کھولنا آپ کو دو مشینیں دیتا ہے، اور دونوں کو ایک ہی صفحے پر لگانا ہی موازنہ ہے۔ WebKit Linux پر چلنے والی کسی بھی چیز میں Safari کے سب سے قریب ہے — انجن کا وہی سلسلہ، اس لیے یہ وہ خلا پکڑ لیتا ہے جو Safari کے صارفین کو پڑتے ہیں۔
افعال تینوں میں یکساں ہیں؛ نیچے کے پروٹوکول نہیں، اور فرق چھپانے کے بجائے بیان کیے جاتے ہیں۔ Chromium DevTools Protocol بولتا ہے اور فریم پش کرتا ہے، اس لیے صفحہ ساکن ہونے پر اس کا لائیو ویو کچھ خرچ نہیں کرتا۔ Firefox WebDriver BiDi بولتا ہے اور WebKit کلاسک WebDriver، جن میں سے کسی میں اسکرین کاسٹ نہیں، اس لیے ان کے لائیو ویو پول کرتے ہیں — سیکنڈ میں چند فریم، جو صفحہ دیکھنے کے لیے درست ہے اور اینیمیشن دیکھنے کے لیے نہیں۔ جہاں کوئی انجن واقعی کچھ نہیں کر سکتا (Firefox میں کیش بائی پاس کرنے والا ری لوڈ نہیں؛ WebKit صفحہ لوڈ ہونے سے پہلے لاگ ہوئے کنسول آؤٹ پٹ کو نہیں دیکھ سکتا)، وہاں جواب یہی بتاتا ہے، خاموشی سے کچھ اور کرنے کے بجائے۔
پروڈکٹ میں رگز کہاں رہتے ہیں
سیکشن کا عنوان “پروڈکٹ میں رگز کہاں رہتے ہیں”رگ جان بوجھ کر کوئی عالمی منزل نہیں ہے۔ لائیو ویو اُس اسپیس یا PR میں
ایک ٹیب ہوتا ہے جہاں کام ہو رہا ہو، اُسی گفتگو تک محدود — اس لیے آپ کا ٹیب
اور ایجنٹ کی browser_use کالیں ایک مشین کو مخاطب کرتی ہیں (براؤزر سطح پر
فی انجن ایک)۔
رگز بوٹ ہو سکتے ہیں یا نہیں، یہ میزبان کی خصوصیت ہے، اس لیے صلاحیتیں،
امیجز، فی ورک اسپیس حسب ضرورت امیجز اور چلتی مشینوں کی فہرست ترتیبات →
سرور → رگز کے تحت ہیں۔ انکلوژر چلانا اپنی الگ
گارڈریل ایکشن کلاس ہے، اس لیے کوئی ورک اسپیس،
ایجنٹ یا اسپیس اسے اجازت دے سکتا ہے، منظوری لازمی قرار دے سکتا ہے، یا مکمل
انکار کر سکتا ہے — صرف پڑھنے والے موڈز اسے یکسر مسترد کرتے ہیں۔