প্রকল্প সম্পর্কে

Gateship হলো কোডিং এজেন্টদের জন্য একটি লোকাল সফটওয়্যার-ডেলিভারি রানটাইম। একজন অপারেটর একটি টাস্ক সংজ্ঞায়িত করেন এবং Gateship সেটিকে একটি আইসোলেটেড Git worktree প্রদান করে, নির্বাচিত লোকাল Claude Code বা Codex ক্লায়েন্ট পরিচালনা করে, টাস্কে লেখা একসেপ্টেন্স কমান্ডগুলো যাচাই করে, একজন স্বাধীন রিড-অনলি রিভিউয়ারের মাধ্যমে পরিবর্তনগুলো পরিদর্শন করায় এবং একটি squash-merged পুল রিকোয়েস্টের মাধ্যমে ফলাফলটি শিপ করে। এই প্রোডাক্টটি ওয়েব-ফার্স্ট এবং লোকাল-ফার্স্ট: Bun 127.0.0.1-এ ইন্টারফেসটি সার্ভ করে, SQLite রান স্টেট এবং অ্যাক্টিভিটি সংরক্ষণ করে এবং এক্সিকিউশন পাথে কোনো টার্মিনাল কিস্ট্রোক বা tmux সেশনের প্রয়োজন হয় না। প্রয়োজনীয়তা এবং ক্রেডেনশিয়াল হ্যান্ডলিং: হোস্ট পোর্টেবিলিটির জন্য উইন্ডোজ এবং ম্যাকওএস-এ Docker Desktop, অথবা লিনাক্সে Compose প্লাগইনসহ Docker Engine ব্যবহারের পরামর্শ দেওয়া হয়েছে; এই ইমেজে প্রোভাইডার এবং GitHub CLI অন্তর্ভুক্ত থাকে। নেটিভ ম্যাকওএস এবং লিনাক্স ইনস্টলেশনের জন্য সাবস্ক্রিপশন লগইনসহ Claude Code এবং/অথবা Codex CLI এবং gh auth login --web ও gh auth setup-git-এর মাধ্যমে অথেন্টিকেটেড GitHub CLI প্রয়োজন। সোর্স থেকে চালানোর জন্য Bun 1.2.3 বা তার পরবর্তী সংস্করণ প্রয়োজন এবং Git-এর টার্গেট রিপোজিটরিতে ব্রাঞ্চ এবং ওয়ার্কট্রি তৈরি করার ক্ষমতা থাকতে হবে। Gateship অপারেটরের সাইন-ইন করা claude বা codex বাইনারি এক্সিকিউট করে, এজেন্ট চিলড্রেনদের একটি অ্যালাউ-লিস্টেড এনভায়রনমেন্ট প্রদান করে, প্রোভাইডার ক্রেডেনশিয়াল ফাইল পড়ে না এবং কোনো Agent SDK ব্যবহার করে না; GitHub শিপিংয়ের জন্য পার্সোনাল অ্যাক্সেস টোকেনের পরিবর্তে gh-এর ক্রেডেনশিয়াল স্টোর ব্যবহার করা হয়। ইনস্টল এবং আপডেট: ইনস্টলার স্ক্রিপ্টটি ডিফল্টভাবে ~/.local/bin-এ gateship এবং ছোট gship এলিয়াসটি স্থাপন করে, যেখানে GATESHIP_INSTALL_DIR দিয়ে গন্তব্য পরিবর্তন করা যায়; এটি পুনরায় চালালে বিদ্যমান ইনস্টলেশন প্রতিস্থাপিত হয় এবং GATESHIP_VERSION দিয়ে নির্দিষ্ট রিলিজ পিন করা যায়। সোর্স বিল্ডের জন্য bun install --frozen-lockfile এবং এরপর bun run build:release ব্যবহার করা হয়। নেটিভ ইনস্টলেশনগুলো সেটিংসের অধীনে আপডেট চেক অপশন বেছে নিতে পারে; রানিং প্রসেসটি দিনে সর্বোচ্চ একবার অফিসিয়াল রিলিজ চেক করে, রিলিজ ট্যাগ কমিট, প্ল্যাটফর্ম অ্যাসেট, SHA256SUMS.txt এবং ক্যান্ডিডেটের নিজস্ব ভার্সন আউটপুট যাচাই করে। অটোমেটিক অ্যাপ্লাই কন্টেইনার এবং সোর্স চেকআউটে উপলব্ধ নয়। কুইক স্টার্ট: GitHub ক্লোন থেকে gship চালালে লোকাল কন্ট্রোল সারফেস শুরু হয় এবং http://127.0.0.1:7777 প্রিন্ট করে; gship --port 8080 দিয়ে অন্য পোর্ট নির্বাচন করা যায়। প্রথমবার লোড করার সময় ওয়েব ইন্টারফেসটি শুধুমাত্র লোকাল Git মেটাডেটা, অরিজিন URL এবং লোকাল origin/main ref চেক করে। ডিরেক্টরি খালি বা অসম্পূর্ণ হলে রিকভারি কমান্ড দেখানো হয়। অপারেটর নাম এবং IANA টাইমজোন ঐচ্ছিক এবং শুধুমাত্র এক্সপ্লিসিট সেভ করার পর সংরক্ষিত হয়। একটি রানিং প্রসেস তার নিজস্ব ওয়ার্কিং ডিরেক্টরি পরিবর্তন করতে পারে না, তাই প্রজেক্ট পাথ পরিবর্তন করতে হলে কাঙ্ক্ষিত ক্লোন থেকে Gateship রিস্টার্ট করতে হবে। Agent CLI: শেল-সক্ষম এজেন্টরা অন্য রানটাইম শুরু না করে বা .gship ডিরেক্টরি সরাসরি এডিট না করে ভার্সনড, মেশিন-রিডেবল ইন্টারফেসের মাধ্যমে সার্ভিসটি ব্যবহার করতে পারে: gship agent guide, gship agent operations, gship agent call status.get এবং JSON ইনপুটসহ issues.get-এর মতো কলগুলো। প্রতিটি এজেন্ট কমান্ড ANSI বা প্রগ্রেস আউটপুট ছাড়াই একটি JSON অবজেক্ট নির্গত করে। ব্রাউজার ওয়ার্কফ্লো একজন অপারেটরকে টাইপড Gateship কমান্ড ব্যবহার করে এক্সটার্নাল এজেন্টের সাথে কাজ বর্ণনা এবং রিফাইন করতে দেয়, সেশনগুলোর মধ্যে হ্যান্ড-অফ হিসেবে একটি ডিউরেবল প্রজেক্ট ব্রিফ বজায় রাখতে দেয় এবং তারপর স্পষ্টভাবে টাস্কটি অথোরাইজ করতে দেয়। সিদ্ধান্তগুলো কাজকে বাধা দেয় এবং মনোযোগের জন্য অপেক্ষা করে, অন্যদিকে প্রগ্রেস, পাবলিক এজেন্ট টেক্সট, টুল নেম, ভেরিফিকেশন এবং রিভিউ SSE-এর মাধ্যমে অনুসরণ করা হয়। Claude এবং Codex পরিবর্তন করলেও ডিউরেবল রান স্টেট হারানো যায় না। একটি ঐচ্ছিক অ্যাডভাইজরি React ডায়াগনস্টিক আইসোলেটেড exact-SHA চেকআউটের বিপরীতে চলে; এর প্রাপ্ত ফলাফলগুলো খারিজ করা যেতে পারে বা একটি আন-অপ্রুভড টাস্কে উন্নীত করা যেতে পারে। ডায়াগনস্টিকস ডেলিভারি গেটের বাইরে থাকে এবং কোনো ডায়াগনস্টিক স্কোর শিপিং ব্লক করতে পারে না। একটি বেঞ্চমার্ক প্যানেল আউটকাম, হিউম্যান অ্যাটেনশন, কারেকশন রাউন্ড, প্রোভাইডার হোল্ড, ওয়াল টাইম, কস্ট এবং প্রোভাইডার বা মডেল ফ্যাক্টস দৃশ্যমান রাখে। রানটাইম ফ্লো: একটি অপারেটর টাস্ক প্রথমে এক্সটার্নাল কনভারসেশনাল এজেন্টের কাছে যায়, তারপর একটি টাইপড Gateship কমান্ডে এবং এরপর রিমোট main-এ একটি ব্যাকলগ রেকর্ডে পরিণত হয়। Gateship একটি আইসোলেটেড ওয়ার্কট্রি তৈরি করে, নির্বাচিত ইমপ্লিমেন্টেশন সেশন চালায়, একসেপ্টেন্স কমান্ডগুলো যাচাই করে, একই প্রোভাইডারের মাধ্যমে একটি স্বাধীন রিড-অনলি রিভিউ সম্পন্ন করে (ফলাফল থাকলে একবার অটোমেটিক ফিক্স করার চেষ্টা করে), কমিট এবং পুশ করে, একটি পুল রিকোয়েস্ট খোলে, CI-এর পর squash অটো-মার্জ করে, origin/main রিফ্রেশ করে এবং ক্লিন ম্যানেজড ওয়ার্কট্রি ও লোকাল ব্রাঞ্চ রিলিজ করে। ভেরিফাই কমান্ডহীন ইস্যু প্রি-ফ্লাইটে ব্যর্থ হয়। কন্টেইনার ডিস্ট্রিবিউশন: মাল্টি-আর্কিটেকচার ইমেজটি উইন্ডোজ এবং ম্যাকওএস-এ Docker Desktop এবং লিনাক্সে Docker Engine-এর মাধ্যমে চলে। এতে কম্পাইলড বাইনারি, git, GitHub CLI, Claude Code CLI এবং Codex CLI থাকে। প্রোভাইডার CLI রিলিজগুলো পিন করা থাকে এবং Claude Code-এর সেলফ-আপডেট চিল্ড সেশনে নিষ্ক্রিয় থাকে। Compose পোর্টটিকে শুধুমাত্র লুপব্যাক-এ পাবলিশ করে, ইমেজ ফাইলসিস্টেমকে রিড-অনলি রাখে এবং প্রিভিলেজ এসক্যালেশন প্রতিরোধ করে। প্রোভাইডার এবং GitHub অথেন্টিকেশন কন্টেইনারের ভেতরে প্রথম বুটে ঘটে এবং একটি নেমড স্টেট ভলিউমে পারসিস্ট হয়। gship doctor --json আর্কিটেকচার, ইমেজ, ভলিউম পারমিশন, Git, gh, Claude, Codex, লগইন এবং লোকাল কানেক্টিভিটি রিপোর্ট করে। সিকিউরিটি: HTTP সার্ভার ডিফল্টভাবে শুধুমাত্র 127.0.0.1-এ বাইন্ড হয় এবং ব্রাউজার মিউটেশনের জন্য সেম-অরিজিন লোকালহোস্ট রিকোয়েস্ট প্রয়োজন। কন্টেইনার ইমেজের ক্ষেত্রে bind-host ভেরিয়েবল 0.0.0.0 সেট করলে ডকারের পাবলিশড-পোর্ট প্রক্সি সার্ভিসটি রিচ করতে পারে। ইমপ্লিমেন্টার ইচ্ছাকৃতভাবে আইসোলেটেড ওয়ার্কট্রি-র ভেতরে রাইট-ক্যাপেবল এবং নেটিভ মোডে ব্যবহারকারীর ফাইলসিস্টেম অথরিটি ধারণ করে। রিড-অনলি রিজলভার এবং রিভিউয়ার Claude-কে শুধুমাত্র Read, Grep এবং Glob-এ সীমাবদ্ধ রাখে এবং Codex-কে তার রিড-অনলি স্যান্ডবক্সে চালায়। Gateship-এ প্রোভাইডার বা GitHub ক্রেডেনশিয়ালের জন্য কোনো ওয়েব বা SQLite ফিল্ড নেই; এটি একজন বিশ্বস্ত একক অপারেটরের জন্য প্রসেস কন্টেইনমেন্ট, মাল্টি-টেন্যান্ট সিক্রেট স্যান্ডবক্স নয়। ডিউরেবল স্টেট এবং রিকভারি: রান মেটাডেটা, প্রোভাইডার সিলেকশন, ইভেন্ট, অপারেটর-মেইনটেইনড প্রজেক্ট ব্রিফ এবং প্রতি প্রোভাইডারের জন্য একটি সাইকেল-রিজলভার সেশন আইডি .gship-এর অধীনে একটি SQLite ফাইলে থাকে। সার্ভিস রিস্টার্ট হলে, একটি আন-ওনড ইন-ফ্লাইট রান ইন্টারাপ্টেড হয়ে যায় এবং এটি পুনরায় শুরু করা যায়। মার্জ নিশ্চিত হওয়ার পর, Gateship ক্লিন ম্যানেজড ওয়ার্কট্রি, লোকাল ব্রাঞ্চ এবং স্টেল রিমোট-ট্র্যাকিং রেফারেন্স সরিয়ে ফেলে। রানটাইম সোর্স হলো রিমোট origin/main ref, যা রান শুরু করার আগে এবং মার্জের পরে ফেচ করা হয়। ডেভলপমেন্ট, কমিউনিটি এবং লাইসেন্স: প্রজেক্টটি Bun দিয়ে বিল্ড করা হয় এবং টাইপ চেকিং, টেস্ট, লিন্টিং এবং ডেড-কোড অ্যানালাইসিসের কমান্ড প্রদান করে। কন্ট্রিবিউশনগুলো কন্ট্রিবিউটিং গাইড, কোড অফ কন্ডাক্ট এবং সিকিউরিটি পলিসি অনুসরণ করে। Gateship MIT লাইসেন্সের অধীনে রিলিজ করা হয়েছে।