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

ctx হলো কোডিং এজেন্টদের জন্য কনটেক্সট ইঞ্জিনিয়ারিংয়ের একটি ওপেন, লোকাল, দ্রুত CLI টুলচেইন। এটি Claude Code, Codex, Cursor, Pi এবং Gemini CLI-এর মতো টুল দ্বারা আপনার মেশিনে ইতিমধ্যে সংরক্ষিত ইতিহাস ইনডেক্স করে, প্রোভাইডার-নির্দিষ্ট লগকে সেশন, মেসেজ, টুল কল, সম্পর্ক এবং রিপোজিটরি অ্যাক্টিভিটির জন্য সামঞ্জস্যপূর্ণ লোকাল রেকর্ডে রূপান্তর করে। এরপর এজেন্টরা `ctx search` দিয়ে সেই ইতিহাস খুঁজতে পারে, `ctx show` দিয়ে নির্দিষ্ট ইভেন্ট বা সম্পূর্ণ ট্রান্সক্রিপ্ট পরীক্ষা করতে পারে এবং `ctx locate` দিয়ে সোর্স লোকেশন শনাক্ত করতে পারে। সার্চ ডিফল্টভাবে BM25 লেক্সিক্যাল ম্যাচিং ব্যবহার করে, এবং `ctx semantic enable`-এর মাধ্যমে ঐচ্ছিক লোকাল সেমান্টিক সার্চ চালু করা যায়। একটি মূল বৈশিষ্ট্য হলো `ctx blame`, যা git blame-এর মতো কাজ করে কিন্তু কমিট করা কোডকে যে এজেন্ট সেশন তা তৈরি করেছে তার সাথে সম্পর্কিত করে, মূল ট্রান্সক্রিপ্ট এবং টুল কলে সাইটেশনসহ। এটি একটি ফাইল ও লাইন রেঞ্জ, একটি কমিট, বা একটি পুল রিকোয়েস্ট থেকে শুরু করতে পারে, যা এজেন্টদের কোডে আর দৃশ্যমান নয় এমন সীমাবদ্ধতা, সিদ্ধান্ত, ব্যর্থ পদ্ধতি এবং অনুমান পুনরুদ্ধার করতে সহায়তা করে। `ctx graph` কোডবেস ম্যাপিং এবং ইমপ্যাক্ট অ্যানালাইসিস প্রদান করে। এটি Graphify দ্বারা অনুপ্রাণিত একটি স্বাধীন Rust ইমপ্লিমেন্টেশন, যা গ্রাফটি SQLite-এ সংরক্ষণ করে যাতে সার্চ সরাসরি ডেটাবেসে কোয়েরি করে এবং আপডেট শুধুমাত্র পরিবর্তিত ফাইল স্পর্শ করে। প্রকল্পটি বড় রিপোজিটরিতে Graphify-এর তুলনায় উল্লেখযোগ্যভাবে দ্রুততর সার্চ এবং আপডেট পারফরম্যান্স রিপোর্ট করে, একই সাথে বিদ্যমান `.graf/index.db` ডেটাবেসের সাথে সামঞ্জস্য বজায় রাখে। `ctx sift` একটি কোডিং এজেন্টের কাছে পৌঁছানোর আগে শোরগোলপূর্ণ টুল আউটপুট কমিয়ে দেয়, মূল কমান্ড অপরিবর্তিত রেখে পুনরাবৃত্ত পাথ, লগ এবং ফরম্যাটিংয়ে কম টোকেন ব্যয় করে। সাধারণ কম্প্যাকশন লোকালভাবে চলে, এবং ঐচ্ছিক মূল ধারণ `ctx sift recall` দিয়ে সম্পূর্ণ ক্যাপচার করা আউটপুট পুনরুদ্ধারের অনুমতি দেয়। ইতিহাস ইনডেক্সিং লোকালভাবে চলে, এজেন্ট প্রসেসের ভিতরে কোনো হুক বা কোড ছাড়াই। স্বয়ংক্রিয় ইনডেক্সিং লোকাল ইনডেক্সকে হালনাগাদ রাখে, এবং আপডেট সম্পূর্ণ হওয়ার পরেই দৃশ্যমান হয়। প্রকল্পটিতে ইতিহাস ব্যাকআপ বা একটি স্ব-নিয়ন্ত্রিত ctx সার্ভারের মাধ্যমে নির্বাচিত সেশন শেয়ার করার বিটা সাপোর্টও রয়েছে, শেয়ারিং অপ্ট-ইন। TypeScript, Python, Rust, Go, JVM, Swift এবং .NET-এর জন্য SDK ডকুমেন্ট করা হয়েছে, এবং কাস্টম হিস্ট্রি প্লাগইন অসমর্থিত এজেন্ট ফরম্যাটের সাথে খাপ খাওয়াতে পারে।