منصوبے کے بارے میں

Gateship کوڈنگ ایجنٹس کے لیے ایک لوکل سافٹ ویئر-ڈیلیوری رن ٹائم ہے۔ ایک آپریٹر ٹاسک کی تعریف کرتا ہے، اور Gateship اسے ایک آئسولیٹڈ Git ورک ٹری فراہم کرتا ہے، منتخب کردہ لوکل Claude Code یا Codex کلائنٹ کو چلاتا ہے، ٹاسک میں لکھے گئے acceptance commands کی تصدیق کرتا ہے، ایک آزاد ریڈ-اونلی ریویوور سے تبدیلیوں کا معائنہ کرواتا ہے، اور نتیجے کو ایک squash-merged pull request کے ذریعے بھیجتا ہے۔ یہ پروڈکٹ ویب-فرسٹ اور لوکل-فرسٹ ہے: Bun اسے 127.0.0.1 پر سرور کرتا ہے، SQLite رن اسٹیٹ اور سرگرمیوں کو اسٹور کرتا ہے، اور ایگزیکیوشن پاتھ میں کوئی ٹرمینل کی-اسٹروکس یا tmux سیشن نہیں ہوتا۔ ضروریات اور کریڈنشل ہینڈلنگ: جب ہوسٹ پورٹیبلٹی درکار ہو تو ونڈوز اور macOS پر Docker Desktop، یا Linux پر Compose پلگ ان کے ساتھ Docker Engine کی تجویز کی جاتی ہے، اور امیج میں پرووائیڈر اور GitHub CLIs شامل ہوتے ہیں۔ نیٹو macOS اور Linux انسٹالیشنز کے لیے Claude Code اور/یا Codex CLI کے ساتھ سبسکرپشن لاگ ان، اور gh auth login --web اور gh auth setup-git کے ذریعے تصدیق شدہ GitHub CLI کی ضرورت ہوتی ہے۔ سورس سے چلانے کے لیے Bun 1.2.3 یا اس سے نیا ورژن ضروری ہے، اور Git کے لیے ٹارگٹ ریپوزٹری میں برانچز اور ورک ٹریز بنانے کی صلاحیت ہونی چاہیے۔ Gateship آپریٹر کے سائن-ان شدہ claude یا codex بائنری کو چلاتا ہے، ایجنٹ بچوں کو ایک allowlisted ماحول فراہم کرتا ہے، کبھی بھی پرووائیڈر کریڈنشل فائلز نہیں پڑھتا اور Agent SDK استعمال نہیں کرتا؛ GitHub شپنگ کے لیے ambient پرسنل ایکسیس ٹوکن کے بجائے gh کے ملکیتی کریڈنشل اسٹور کا استعمال کیا جاتا ہے۔ انسٹالیشن اور اپ ڈیٹ: انسٹالر اسکرپٹ ڈیفالٹ طور پر ~/.local/bin میں gateship اور مختصر gship ایلس (alias) رکھتا ہے، جبکہ GATESHIP_INSTALL_DIR منزل کو تبدیل کرنے کے لیے استعمال کیا جا سکتا ہے۔ اسے دوبارہ چلانے سے موجودہ انسٹالیشن کی جگہ نئی انسٹالیشن ہو جاتی ہے، اور GATESHIP_VERSION کے ذریعے مخصوص ریلیز کو پن کیا جا سکتا ہے۔ سورس بلڈز bun install --frozen-lockfile اور پھر bun run build:release استعمال کرتے ہیں، اور Bun ڈویلپمنٹ کے لیے انٹری پوائنٹ کو براہ راست چلا سکتا ہے۔ نیٹو انسٹالیشنز سیٹنگز کے تحت اپ ڈیٹ چیکس کا انتخاب کر سکتی ہیں؛ رننگ پروسیس دن میں زیادہ سے زیادہ ایک بار آفیشل ریلیزز کو چیک کرتا ہے، ریلیز ٹیگ کمٹ، موجودہ پلیٹ فارم اثاثہ، SHA256SUMS.txt اور کینڈیڈیٹ کے اپنے ورژن آؤٹ پٹ کی تصدیق کرتا ہے، اور تب ہی ہینڈ آف کرتا ہے جب کوئی نان-ٹرمینل رن یا فعال تشخیص موجود نہ ہو۔ وہ کینڈیڈیٹ جو درست ریلیز ورژن اور کمٹ واپس نہیں کرتا اسے روک دیا جاتا ہے، اور پچھلی بائنری کو بحال، ری اسٹارٹ اور تصدیق کیا جاتا ہے۔ کنٹینرز اور سورس چیک آؤٹس میں خودکار اپلائی دستیاب نہیں ہے۔ کوئیک اسٹارٹ: GitHub کلون سے gship چلانے سے لوکل کنٹرول سطح شروع ہو جاتی ہے اور http://127.0.0.1:7777 پرنٹ ہوتا ہے، اور gship --port 8080 دوسری پورٹ منتخب کرتا ہے۔ پہلی بار لوڈ ہونے پر ویب انٹرفیس صرف لوکل Git میٹا ڈیٹا، اورین (origin) URL اور لوکل origin/main ref کو چیک کرتا ہے، اور کبھی بھی ضمنی طور پر ریپوزٹری فیچ یا تخلیق نہیں کرتا۔ اگر ڈائریکٹری خالی یا نامکمل ہو، تو آپریشنل سطحیں درست ریکوری کمانڈ دکھاتی ہیں جبکہ ایجنٹ سبسکرپشن سیٹ اپ کے لیے سیٹنگز دستیاب رہتی ہیں۔ آپریٹر کا نام اور IANA ٹائم زون اختیاری ہیں اور صرف واضح سیو کے بعد اسٹور کیے جاتے ہیں۔ ایک رننگ پروسیس اپنی ورکنگ ڈائریکٹری تبدیل نہیں کر سکتا، اس لیے پروجیکٹ پاتھ کی تبدیلی کے لیے مطلوبہ کلون سے Gateship کو ری اسٹارٹ کرنا ضروری ہے۔ ایجنٹ CLI: شیل-قابل ایجنٹس ایک ورژن شدہ، مشین-ریڈ ایبل انٹرفیس کے ذریعے رننگ سروس استعمال کر سکتے ہیں بجائے اس کے کہ وہ دوسرا رن ٹائم شروع کریں یا .gship ڈائریکٹری کو براہ راست ایڈٹ کریں: gship agent guide, gship agent operations, gship agent call status.get، اور JSON ان پٹ کے ساتھ issues.get جیسی کالز۔ ہر ایجنٹ کمانڈ ANSI یا پروگریس آؤٹ پٹ کے بغیر ایک JSON آبجیکٹ جاری کرتی ہے، اور ایک URL فلیگ دوسری پورٹ پر چلنے والی سروس کی نشاندہی کرتا ہے۔ براؤزر ورک فلو آپریٹر کو ایک بیرونی ایجنٹ کے ساتھ کام کی وضاحت اور اصلاح کرنے کی اجازت دیتا ہے جو ٹائپڈ Gateship کمانڈز کو کال کرتا ہے، سیشنز کے درمیان ہینڈ آف کے طور پر ایک پائیدار پروجیکٹ بریف برقرار رکھتا ہے، اور پھر ٹاسک کو واضح طور پر مجاز کرتا ہے۔ فیصلے کام کو روک دیتے ہیں اور توجہ کا انتظار کرتے ہیں، جبکہ پروگریس، پبلک ایجنٹ ٹیکسٹ، ٹول نام، تصدیق اور ریویو کو SSE کے ذریعے دیکھا جاتا ہے؛ لوکل براؤزر نوٹیفیکیشنز آپریٹر تک ٹیب سے باہر بھی پہنچ سکتے ہیں۔ پائیدار رن اسٹیٹ کھوئے بغیر Claude اور Codex کو تبدیل کیا جا سکتا ہے، اور واضح کنٹرولز ایک ڈیٹرمینسٹک فال بیک کے طور پر کام کرتے ہیں۔ ایک اختیاری ایڈوائزری React تشخیص ایک آئسولیٹڈ exact-SHA چیک آؤٹ کے خلاف دستی طور پر یا روزانہ/ہفتہ وار بنیادوں پر چلتی ہے؛ کسی بھی نتیجے کو مسترد کیا جا سکتا ہے یا غیر منظور شدہ ٹاسک میں تبدیل کیا جا سکتا ہے۔ تشخیص ڈیلیوری گیٹ سے باہر رہتی ہے، کبھی بھی کام کو خودکار طور پر ٹھیک یا منظور نہیں کرتی، اور کوئی تشخیص اسکور شپنگ کو بلاک نہیں کر سکتا۔ ایک بینچ مارک پینل نتائج، انسانی توجہ، اصلاح کے چکر، پرووائیڈر ہولڈز، وقت، لاگت اور ماڈل حقائق کو الگ آئٹمز کے طور پر ظاہر کرتا ہے، جس میں کوئی ایویلیوئیٹر ماڈل یا سنتھیٹک اسکور نہیں ہوتا۔ رن ٹائم فلو: ایک آپریٹر ٹاسک بیرونی گفتگو ایجنٹ کے پاس جاتا ہے، پھر ایک ٹائپڈ Gateship کمانڈ، اور پھر ریموٹ main پر ایک بیک لاگ ریکارڈ بنتا ہے۔ Gateship ایک آئسولیٹڈ ورک ٹری بناتا ہے، منتخب کردہ امپلیمینٹیشن سیشن چلاتا ہے، acceptance commands کی تصدیق کرتا ہے، اسی پرووائیڈر کے ذریعے ایک آزاد ریڈ-اونلی ریویو کرتا ہے (نتائج ملنے پر ایک خودکار اصلاح کی کوشش کرتا ہے)، کمٹ اور پش کرتا ہے، ایک pull request کھولتا ہے، CI کے بعد squash auto-merge کرتا ہے، origin/main کو ریفریش کرتا ہے، اور کلین مینجڈ ورک ٹری اور لوکل برانچ کو ریلیز کرتا ہے۔ بغیر verify کمانڈز والا ایشو پری فلائٹ میں ناکام ہو جاتا ہے، اور ریویو ایک نئے سیشن کے طور پر چلتا ہے جس میں صرف مکینیکلی ریڈ-اونلی صلاحیتیں ہوتی ہیں۔ کنٹینر ڈسٹری بیوشن: ملٹی-آرکیٹیکچر امیج ونڈوز اور macOS پر Docker Desktop اور Linux پر Docker Engine کے ذریعے چلتی ہے، جس میں linux/amd64 اور linux/arm64 ویرینٹس ایک ہی ریلیز ٹیگ کے تحت ہوتے ہیں، اور اس میں کمپائل شدہ بائنری، git، GitHub CLI، Claude Code CLI اور Codex CLI شامل ہوتے ہیں۔ دونوں پرووائیڈر CLI ریلیزز پن کیے گئے ہیں، اور چائلڈ سیشنز میں Claude Code کی سیلف-اپ ڈیٹس کو غیر فعال کر دیا گیا ہے تاکہ کوئی رن خاموشی سے ایگزیکیوبل کو تبدیل نہ کر سکے۔ Compose پورٹ کو صرف لوپ بیک پر شائع کرتا ہے، امیج فائل سسٹم کو ریڈ-اونلی رکھتا ہے، ایک عارضی /tmp فراہم کرتا ہے، پرویلج ایسکلیشن کو روکتا ہے اور Linux کی صلاحیتوں کو ختم کرتا ہے سوائے ان کے جو مختلف ہوسٹ uid کے ساتھ بائنڈ ماؤنٹس کے لیے ضروری ہوں۔ پرووائیڈر اور GitHub کی تصدیق کنٹینر کے اندر پہلی بار بوٹ ہونے پر ہوتی ہے اور ایک نامزد اسٹیٹ والیم پر برقرار رہتی ہے؛ منتخب ریپوزٹری کا رن ٹائم ڈیٹا بیس اور ورک ٹریز پروجیکٹ کے .gship ڈائریکٹری میں رہتے ہیں۔ اسی امیج اور والیم سے کنٹینر کو دوبارہ بنانے سے وہی SQLite اسٹیٹ، ورک ٹریز اور لاگ انز واپس مل جاتے ہیں۔ README میں اپ ڈیٹ اور ریکوری گائیڈنس کے لیے مینی فیسٹ ڈائجسٹ کے ساتھ ورژن شدہ امیج ٹیگ، سروس کو روکنے، اسٹیٹ والیم اور .gship ڈائریکٹری کے بیک اپ، اور رول بیک کے لیے پچھلے ڈائجسٹ کی بحالی کا کہا گیا ہے؛ gship doctor --json آرکیٹیکچر، امیج، والیم پرمیشنز، Git، gh، Claude، Codex، لاگ انز اور لوکل کنیکٹیویٹی کی رپورٹ کرتا ہے۔ سیکیورٹی: HTTP سرور ڈیفالٹ طور پر صرف 127.0.0.1 سے بائنڈ ہوتا ہے اور براؤزر میوٹیشنز کے لیے مزید same-origin localhost درخواست کی ضرورت ہوتی ہے؛ ریڈ روٹس کی اپنی کوئی تصدیق نہیں ہوتی، اس لیے لوپ بیک بائنڈ ہی ان کی واحد حد ہے۔ کنٹینر امیج کو Docker کے پبلشڈ-پورٹ پراکسی کے لیے bind-host ویری ایبل 0.0.0.0 پر سیٹ کرنے کی ضرورت ہوتی ہے، جس سے وہ حد اس بات پر منتقل ہو جاتی ہے کہ پورٹ ہوسٹ پر کیسے شائع کی گئی ہے؛ کسی دوسرے انٹرفیس پر شائع کرنے سے ہر غیر تصدیق شدہ ریڈ روٹ ظاہر ہو جائے گا۔ امپلیمینٹر ارادتاً آئسولیٹڈ ورک ٹری کے اندر رائٹ-کیپبل ہوتا ہے اور نیٹو موڈ میں، Gateship چلانے والے صارف کی فائل سسٹم اتھارٹی رکھتا ہے؛ کنٹینر موڈ اسے کنٹینر اور اس کے واضح ماؤنٹس تک محدود کرتا ہے۔ ریڈ-اونلی ریزولور اور ریویوور Claude کو MCP اور سلیش کمانڈز کے بغیر صرف Read, Grep اور Glob تک محدود کرتے ہیں، اور Codex کو اس کے ریڈ-اونلی سینڈ باکس میں صارف کنفیگریشن اور MCP کے بغیر چلاتے ہیں۔ ایجنٹ اور GitHub CLI بچوں کو ایک انوائرمنٹ allowlist ملتی ہے، جبکہ تصدیق کمانڈز بھروسہ مند پروجیکٹ کمانڈز ہوتی ہیں اور سروس انوائرمنٹ کو برقرار رکھتی ہیں۔ Gateship میں پرووائیڈر یا GitHub کریڈنشلز کے لیے کوئی ویب یا SQLite فیلڈ نہیں ہے؛ یہ ایک بھروسہ مند واحد آپریٹر کے لیے پروسیس کنٹینمنٹ ہے، نہ کہ ملٹی-ٹیننٹ سیکرٹ سینڈ باکس۔ پائیدار اسٹیٹ اور ریکوری: رن میٹا ڈیٹا، پرووائیڈر سلیکشن، ایونٹس، آپریٹر کے زیر انتظام پروجیکٹ بریف اور ہر پرووائیڈر کے لیے ایک سائیکل-ریزولور سیشن آئی ڈی .gship کے تحت ایک SQLite فائل میں رہتے ہیں؛ ہر رن اپنا پرووائیڈر، نیٹو سیشن آئی ڈی اور ورک ٹری پاتھ اسٹور کرتا ہے۔ جب سروس ری اسٹارٹ ہوتی ہے، تو ایک غیر ملکی ان-فلائٹ رن 'interrupted' ہو جاتا ہے اور اسے ورک اسپیس کھونے یا خاموشی سے ڈپلیکیٹ شروع کرنے کے بجائے دوبارہ شروع کیا جا سکتا ہے۔ تصدیق شدہ مرج کے بعد، Gateship کلین مینجڈ ورک ٹری، اس کی لوکل برانچ اور اس کے پرانے ریموٹ-ٹریکنگ ref کو ہٹا دیتا ہے؛ ایک ناکام رن اسی طرح ریلیز ہوتا ہے، سوائے اس کے کہ وہ برانچ جس میں origin/main سے غائب کمٹ ہو، اسے ڈرٹی ورک ٹریز اور غیر ملکی باقیات کے ساتھ محفوظ رکھا جاتا ہے۔ اسٹارٹ اپ پر کلین اپ کی دوبارہ کوشش کی جاتی ہے۔ رن ٹائم سورس ریموٹ origin/main ref ہے، جسے رن قبول کرنے سے پہلے اور مرج کے بعد فیچ کیا جاتا ہے، اور صارف کی لوکل main برانچ کو ارادتاً چھوا نہیں جاتا۔ ڈویلپمنٹ، کمیونٹی اور لائسنس: پروجیکٹ Bun کے ساتھ بلڈ ہوتا ہے اور ٹائپ چیکنگ، ٹیسٹ، لنٹنگ اور ڈیڈ-کوڈ تجزیہ کے لیے کمانڈز فراہم کرتا ہے، جس میں ریلیز سے پہلے مکمل سیٹ چلانے والا ایک شپ گیٹ ہوتا ہے۔ شراکتیں contributing guide، کوڈ آف کنڈکٹ اور سیکیورٹی پالیسی کے مطابق ہوتی ہیں، اور بیرونی بیٹا صارفین ایک دستاویزی فیڈ بیک پاتھ کے ذریعے صاف شدہ مشاہدات جمع کروا سکتے ہیں جنہیں مینٹینرز دستی طور پر ٹریاج کرتے ہیں۔ Gateship کو MIT لائسنس کے تحت ریلیز کیا گیا ہے۔