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

ainess হলো একটি ডেস্কটপ অ্যাপ্লিকেশন (Tauri 2, MIT লাইসেন্সপ্রাপ্ত) যা আপনার ইতিমধ্যে ইনস্টল করা AI কোডিং CLI-গুলোকে একটি সমন্বিত টিমে পরিণত করে। কোনো মডেল বা API কী বান্ডেল করার পরিবর্তে, এটি বিদ্যমান টুলসগুলো—Claude Code, Antigravity, GitHub Copilot CLI, Gemini CLI, Codex CLI, opencode, Ollama এবং Aider—শনাক্ত করে এবং পরিচালনা করে; এবং একটি সেটিংস প্যানেল থেকে এগুলোর বেশিরভাগই ইনস্টল করা সম্ভব। একটি "custom" এজেন্ট টাইপ যেকোনো কমান্ড চালাতে পারে, যেখানে এর আর্গুমেন্টগুলোতে {prompt} প্রতিস্থাপিত হয়। সেশন এবং ক্রেডেনশিয়ালগুলো প্রতিটি CLI-এর নিজস্ব স্থানেই থাকে; অ্যাপটি দাবি করে যে এটি কখনোই কোনো কী চায় না, সংরক্ষণ করে না বা পড়ে না। এটি Windows প্ল্যাটফর্মে তৈরি এবং পরীক্ষিত হয়েছে। অরকেস্ট্রেশন যেভাবে কাজ করে এজেন্টরা হলো ওয়ান-শট CLI প্রসেস। প্রতিটি ইনভোকেশন হলো একটি "run", এবং কথোপকথনগুলো বিভিন্ন রানের মধ্যে বজায় থাকে কারণ প্রতিটি প্রোভাইডার তার নিজস্ব সেশন আইডির মাধ্যমে পুনরায় শুরু হয়। এজেন্টদের একটি হায়ারার্কিতে সাজানো হয় যার নির্দিষ্ট ভূমিকা থাকে: একজন প্ল্যানার যে যুক্তি দেয়, কাজ ভাগ করে এবং ডেলিগেট করে কিন্তু বাস্তবায়ন করে না; ইমপ্লিমেন্টার যারা কাজ সম্পন্ন করে; এবং রিভিউয়ার যারা তা যাচাই করে। ডেলিগেশন ঘটে প্ল্যানারের উত্তরের একটি ফেন্সড ব্লকের মাধ্যমে, যা অরকেস্ট্রেটর পার্স করে রানে রূপান্তর করে এবং ফলাফল হিসেবে ফিডব্যাক দেয়—এই চক্রটিকে বলা হয় একটি রাউন্ড, যার সর্বোচ্চ সীমা কনফিগার করা যায়। টাস্কগুলোকে স্বতন্ত্র হতে হবে, কারণ একটি চাইল্ড এজেন্ট প্ল্যানারের কথোপকথন দেখতে পায় না। একজন এজেন্ট বিরতি নিয়ে ব্যবহারকারীকে বিকল্পসহ প্রশ্ন করতে পারে, এবং উত্তর পাওয়ার পর রানটি একই সেশনে চলতে থাকে। অ্যাপের ভেতরে প্রজেক্টগুলো ওয়ার্কস্পেস ফোল্ডার নির্দেশ করে এবং তাদের নিজস্ব টিম, স্টেট, হিস্ট্রি এবং চ্যাট সংরক্ষণ করে; একটি সেভ করা "formation" তার স্কিল এবং MCP সার্ভারের সাথে নতুন প্রজেক্টে প্রয়োগ করা যেতে পারে। ছয়টি কলামের (backlog থেকে done) একটি কানবান বোর্ড স্বয়ংক্রিয়ভাবে পূর্ণ হয়: একটি প্রম্পট একটি টাস্ক তৈরি করে, ডেলিগেশনগুলো তার সাথে যুক্ত থাকে, অ্যাপ্রুভালগুলো "needs you"-তে অপেক্ষা করে এবং সমাপ্ত রানগুলো রিভিউ বা রেডি-তে চলে যায়। একই টাস্কগুলো একটি লেয়ারড ডিপেন্ডেন্সি গ্রাফ হিসেবে প্রদর্শিত হয় যেখানে ড্র্যাগ কানেকশনগুলোর মাধ্যমে ব্লকিং রিলেশনশিপ ঘোষণা করা হয়। অন্যান্য ভিউগুলোর মধ্যে রয়েছে অরকেস্ট্রেটরের সাথে একটি চ্যাট থ্রেড (টুল ব্যবহার, কোলাপসিবল ডেলিগেশন, সেভ করা প্রম্পট "orders"), একটি হায়ারার্কি গ্রাফ যা দেখায় কে কাকে ডেলিগেট করছে এবং অবশিষ্ট কোটা, একটি রাইট ডক যেখানে র-ইভেন্ট ফিড এবং রিয়েল PTY টার্মিনাল থাকে, অ্যাপ্রুভাল যা প্রতি এজেন্ট বা গ্লোবালি প্রয়োজন হতে পারে, ডাইরেক্ট এবং শেয়ারড মাল্টি-এজেন্ট চ্যাট, নোটিফিকেশন, git repo স্টেট (ব্রাঞ্চ, ডার্টি ফাইল, ahead/behind, CI স্ট্যাটাসসহ ওপেন পুল রিকোয়েস্ট) এবং কনটেক্সচুয়াল রাইট-ক্লিক মেনু। নিজস্ব ব্রাঞ্চসহ প্রতি-এজেন্ট git worktrees দুটি ইমপ্লিমেন্টারকে git index নিয়ে লড়াই না করেই একসাথে কাজ করতে দেয়; একটি প্যানেলের মাধ্যমে এগুলো ওপেন, মার্জ বা ড্রপ করা যায়, তবে আনকমিটেড কাজের ক্ষেত্রে মার্জ করতে অস্বীকার করে। রিমোট এবং CLI একটি বিল্ট-ইন সার্ভার LAN-এর মাধ্যমে একটি একক সেলফ-কন্টেইনড পেজ হিসেবে একই React UI পাবলিশ করে, যা URL-এর একটি টোকেন দ্বারা সুরক্ষিত (টোকেন ছাড়া 401), যাতে একটি ফোন থেকে বোর্ড দেখা, টাস্ক পাঠানো, রান বন্ধ করা এবং প্রশ্নের উত্তর দেওয়া যায়। cloudflared বা ngrok থেকে ঐচ্ছিক পাবলিক URL পাওয়া যায়, যা স্ট্যাটিক ডোমেইন সমর্থন করে। পেজটি ব্যাকগ্রাউন্ডে চালু থাকা অবস্থায় ব্রাউজার নোটিফিকেশন অফার করে, যার জন্য একটি সিকিউর কনটেক্সট প্রয়োজন। টোকেন অথেনটিকেশনসহ একটি HTTP API স্টেট, একটি SSE ইভেন্ট স্ট্রিম, প্রম্পট, ইনস্ট্রাক্ট, স্টপ, অ্যাপ্রুভ এবং চ্যাট এন্ডপয়েন্ট এক্সপোজ করে। একই অরকেস্ট্রেটর একটি CLI-এর মাধ্যমে হেডলেসভাবে উপলব্ধ, যাতে টাস্ক চালানো, প্রজেক্ট, এজেন্ট এবং ফরমেশন পরিচালনা, ইনস্টলেশন শনাক্ত করা, কোটা এবং ব্যবহার পরীক্ষা করা, হিস্ট্রি ব্রাউজ করা, অ্যাপ্রুভাল হ্যান্ডেল করা, চ্যাটিং এবং ফোন পেজ সার্ভ করার কমান্ড রয়েছে। অতিরিক্ত এবং ডেটা স্কিল, MCP সার্ভার, শেয়ারড কনটেক্সট এবং একটি প্রোফাইল এজেন্ট প্রম্পটে ইনজেক্ট করা হয়। হুকগুলো অরকেস্ট্রেটর ইভেন্ট যেমন task.started, task.finished, ডেলিগেশন বা approval.requested-এর প্রতি প্রতিক্রিয়া জানায়—Slack/Discord বা জেনেরিক ওয়েবহুক, লোকাল কমান্ড, সিস্টেম নোটিফিকেশন, অথবা টেম্পলেটেড ভেরিয়েবল ব্যবহার করে অন্য এজেন্টের সাথে চেইন করা নির্দেশনার মাধ্যমে। সমস্ত কনফিগারেশন, হিস্ট্রি, চ্যাট, টাস্ক বোর্ড, কোটা মার্ক এবং লগ ব্যবহারকারীর AppData ফোল্ডারের অধীনে প্লেইন ফাইলে থাকে; হিস্ট্রি প্রতি প্রজেক্টের শেষ ৩০০ রান এবং ৩০০০ মেসেজ রাখে, লগগুলো প্রতিদিন রোটেট হয় এবং ১৪ দিন রাখা হয়, এবং লেখার আগে টোকেনগুলো মাস্ক করা হয়। ইন্টারফেসটি স্প্যানিশ, ইংরেজি, ব্রাজিলিয়ান পর্তুগিজ, সিম্পলিফাইড চাইনিজ, জাপানিজ, ফ্রেঞ্চ এবং জার্মান ভাষায় অনুবাদ করা হয়েছে, যা রিস্টার্ট ছাড়াই পরিবর্তন করা যায়, যেখানে স্প্যানিশ হলো বেস ডিকশনারি। রিলিজগুলো মেইন ব্রাঞ্চের ভার্সন বাম্প থেকে GitHub Actions-এর মাধ্যমে বিল্ড এবং সাইন করা হয়, এবং ইনস্টল করা অ্যাপগুলো স্বয়ংক্রিয়ভাবে আপডেট হয়।