প্রকল্প সম্পর্কে
ম্যাগাস হলো একটি বিল্ড সিস্টেম এবং টাস্ক অর্কেস্ট্রেটর যা পলিগ্লট মনোরেপোর জন্য ডিজাইন করা হয়েছে। এটি একটি একক স্ট্যাটিক্যালি লিংকড Go বাইনারি হিসেবে বিতরণ করা হয়, যাতে ইনস্টল করার জন্য কোনো দ্বিতীয় টুলচেইন নেই। টার্গেটগুলো Buzz-এ লেখা হয়, যা বাইনারিতে এমবেড করা একটি ছোট টাইপড স্ক্রিপ্টিং ভাষা, এবং `magusfile.buzz`-এ এক্সপোর্টেড ফাংশন হিসেবে ঘোষণা করা হয়।
মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে:
- **প্রভাবিত সেট**: প্রকল্প এবং ফাইল-স্তরের ইনপুট ঘোষণার একটি ডিপেন্ডেন্সি গ্রাফ `magus affected <target>`-কে শুধুমাত্র সেই প্রকল্পগুলো চালাতে দেয় যেখানে একটি পরিবর্তন পৌঁছাতে পারে, ডিপেন্ডেন্সি ক্রমে। এটি CI কাজকে সীমাবদ্ধ করে যা একটি ডিফ প্রকৃতপক্ষে স্পর্শ করে।
- **কনটেন্ট-অ্যাড্রেসড ক্যাশিং**: প্রতিটি টার্গেট তার ইনপুট এবং আউটপুট ঘোষণা করে। ম্যাগাস ইনপুট হ্যাশ করে এবং সংরক্ষিত আউটপুট (SHA-256) পুনরায় চালায় যখন একই কাজ আবার অনুরোধ করা হয়, ফলে বাইট-ফর-বাইট অভিন্ন ফলাফল পাওয়া যায়।
- **নলেজ গ্রাফ**: ঘোষিত উৎস (magusfile, ডক্স, SCIP ইনডেক্স, গিট ইতিহাস, CODEOWNERS) থেকে তৈরি, কোনো বাহ্যিক ইনডেক্সার দ্বারা অনুমান করা হয় না। এটি `magus query "kind=target lint"`, `magus explain <node>`, এবং `magus refs <symbol>`-এর মতো প্রশ্নের উত্তর দেয়। গ্রাফটি বিল্ডের জন্য সত্যের উৎস হওয়ার একটি উপজাত।
- **একটি শব্দভাণ্ডার**: টার্গেট, স্পেল (ভাষা অ্যাডাপ্টার), চার্ম (মডিফায়ার যেমন `rw` রিড-রাইটের জন্য), এবং অপস (টুল ইনভোকেশন) একবার নামকরণ করা হয় এবং CLI, কনফিগ এবং গ্রাফ জুড়ে পুনরায় ব্যবহার করা হয়।
- **টার্মিনাল UI**: টার্মিনালের নীচে একটি পিন করা প্রগ্রেস ব্যান্ড যা স্ক্রলব্যাক সাফ করে না, প্রকল্প অনুসারে গ্রুপ করা ফেইলিউর ট্রি এবং একটি গ্রাফ-সার্চ পিকার সহ। টার্মিনাল ছাড়া সব সারফেস প্লেইন টেক্সটে অবনমিত হয়।
- **ব্রাউজার কনসোল**: ঐচ্ছিক রিড-অনলি ওয়েব অ্যাপ (ড্যাশবোর্ড, গ্রাফ এক্সপ্লোরার, লগ ভিউয়ার, অ্যাক্টিভিটি ট্রেইল, ডিফ) ডেমন দ্বারা লুপব্যাকের মাধ্যমে পরিবেশিত হয়, বাইনারিতে কোনো এমবেডেড UI নেই। ডেটা কখনো মেশিন ছেড়ে যায় না।
- **এজেন্ট ইন্টিগ্রেশন**: Codex এবং Claude Code-এর জন্য ইনস্টলযোগ্য স্কিল, পাশাপাশি একটি কমিটেড `MAGUS.md` রাউটিং ইনডেক্স, AI এজেন্টদের গ্রাফ কোয়েরি করতে এবং টার্গেট নির্ধারকভাবে চালাতে দেয়।
আর্কিটেকচার: একটি ডেমন (`magus server start`) স্থানীয় CLI ডিসপ্যাচের জন্য একটি ইউনিক্স সকেট এবং MCP, রিড-অনলি API এবং Connect সার্ভিসের জন্য একটি HTTP সার্ভার প্রকাশ করে, সবগুলো একটি গার্ড চেইনের পিছনে (DNS-রিবাইন্ড চেক, বিয়ারার টোকেন, CORS)। হেলথ এন্ডপয়েন্টগুলো অরক্ষিত। একটি টাইম-বক্সড LAN লিসেনার ফোনে একটি রিড-অনলি কনসোল শেয়ার করতে পারে।
অ-লক্ষ্য: কোনো রিমোট এক্সিকিউশন নেই, কোনো টুলচেইন ম্যানেজমেন্ট নেই, কোনো হারমেটিক স্যান্ডবক্স নেই (ডিফল্টভাবে বন্ধ, macOS-এ কোনো কার্নেল লেয়ার নেই), কোনো কনটেইনার আইসোলেশন নেই, এবং একটি ছোট ইকোসিস্টেম (তরুণ প্রকল্প, বেশিরভাগই একজনের কাজ)।
শুরু করা: একটি curl স্ক্রিপ্টের মাধ্যমে ইনস্টল করুন (চালানোর আগে পর্যালোচনা করুন), তারপর build, test, lint ইত্যাদির জন্য এক্সপোর্টেড ফাংশন সহ একটি `magusfile.buzz` লিখুন। `magus ls`, `magus run test`, `magus affected ci`, এবং `magus query`-এর মতো কমান্ড তাৎক্ষণিক উত্তর প্রদান করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.