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

কার্টোগ্রাফার হলো সফটওয়্যার আর্কিটেকচারের জন্য একটি লোকাল-ফার্স্ট নেভিগেশন সিস্টেম, যা একটি কার্সর প্লাগইন এবং রিপোজিটরি থেকে বিল্ট করা একটি CLI হিসেবে বিতরণ করা হয়। এটি সেই সমস্যার লক্ষ্য করে যেখানে বড় কোডবেস হলো ফোল্ডার হিসেবে ছদ্মবেশী গ্রাফ: একটি ফাইল খুললে আশেপাশের আর্কিটেকচার হারিয়ে যায়। মূল ধারণা: `cartographer index` একটি রিপোজিটরি জরিপ করে এবং `.cartographer/`-এর অধীনে একটি স্থায়ী Atlas লেখে — ফাইল, সিম্বল, সম্পর্ক, টেরিটরি এবং উদ্ভূত ম্যাপ লেয়ারের একটি SQLite ডেটাবেস (`atlas.db`), সাথে ঐচ্ছিক JSON ল্যান্ডমার্ক, জার্নি এবং এক্সপ্লোরেশন স্টেটের জন্য। অন্যান্য সব সারফেস এই একক Atlas ফ্যাসাড পড়ে, দ্বিতীয় গ্রাফ তৈরি করে না। প্রধান আউটপুট হলো Living Atlas Briefing, যা `index`, `brief`, `whereami` এবং `tour` দ্বারা প্রিন্ট করা হয়। এটি জরিপ গণনা (ফাইল, সিম্বল, এজ), আত্মবিশ্বাস স্কোরসহ টেরিটরির একটি Mini Atlas, একটি ফাইল:লাইনের জন্য YOU ARE HERE ব্রেডক্রাম্ব, শীর্ষ করিডর (যেমন API → Domain → Data), হাব ও ব্রিজ, এবং একটি START HERE পরামর্শ রিপোর্ট করে। কমান্ড সারফেসে রয়েছে: `index` (`--incremental`, `--no-brief` সহ), `brief`, `whereami`/`where` (`--compact` সহ), `goto`, `route` এবং `explain-route` সিম্বলের মধ্যে করিডর-সচেতন পথের জন্য, গভীরতাসহ `upstream`/`downstream` প্রতিবেশী কোয়েরি, `territories`, `hubs`, `corridors`, `landmarks` (ফাইল:লাইনে পিন করা নামযুক্ত স্থান যোগ করা, পুনঃইনডেক্সে ড্রিফট চেকিং সহ), `journeys`, `tour`, ফগ-অফ-ওয়ার ফ্রন্টিয়ারের জন্য `unexplored`, `search`, স্থানীয় Git প্রত্নতত্ত্বের জন্য `history`, এবং স্বাস্থ্য, কভারেজ ও অখণ্ডতার জন্য `status`/`doctor`। বেশিরভাগ কমান্ড `--json` গ্রহণ করে। ভাষা অ্যাডাপ্টার ডিটারমিনিস্টিক এবং কোনো নেটিভ tree-sitter বাইনারি প্রয়োজন হয় না: TypeScript/JavaScript (TSX সহ), Python (Flask/FastAPI, Click), Go (হ্যান্ডলার, Cobra) এবং Rust (Axum/Actix, Clap/Tauri)। অ্যাডাপ্টার সিম্বল, ইমপোর্ট, কল এবং এন্ট্রি পয়েন্ট বের করে; ক্রস-ফাইল লিংকিং, টেরিটরি ইনফারেন্স, হাব ও করিডর কোর-এ চলে। একটি MCP সার্ভার এজেন্টদের কাছে একই Atlas টুল উন্মোচন করে (brief, whereami, goto, route, upstream, downstream, territories, hubs, search, unexplored, tour, doctor, status, index), যা `mcp.json`-এর মাধ্যমে বিল্ট `dist/mcp/index.js` চালানোর জন্য কনফিগার করা হয়। কার্সর প্লাগইনে স্ল্যাশ কমান্ড, একটি স্কিল, একটি এজেন্ট পার্সোনা, রুলস এবং হুকও থাকে। সেটআপের জন্য Node.js 20+ প্রয়োজন (22/24 সুপারিশকৃত) এবং বিল্ট-ইন `node:sqlite` ব্যবহার করে। ইনস্টলেশন হলো ক্লোন → `npm install` → `npm run build`, ঐচ্ছিকভাবে `npm link`। প্রকল্পটি জানায় এটি একটি npm রেজিস্ট্রি প্যাকেজ নয়। কনফিগারেশন ঐচ্ছিক `.cartographer/config.toml` (ইনডেক্স এক্সক্লুড, ফাইল সাইজ ক্যাপ, এক্সপ্লোরেশন টগল, Git হিস্ট্রি টগল) এবং `.cartographerignore`-এর মাধ্যমে। গোপনীয়তা নীতি লোকাল-ফার্স্ট: কোনো টেলিমেট্রি নেই, কোর নেভিগেশনের জন্য কোনো প্রয়োজনীয় API কী বা ক্লাউড অ্যাকাউন্ট নেই, Atlas ডেটা স্থানীয়ভাবে সংরক্ষিত, Git হিস্ট্রি শুধুমাত্র স্থানীয়ভাবে পড়া হয়। README উল্লেখ করে `.cartographer/` কোডবেস থেকে পাথ ও সিম্বল নাম মিরর করতে পারে। লাইসেন্সিং উল্লেখযোগ্য: প্রকল্পটি নিজেকে সোর্স-অ্যাভেইলেবল প্রোপ্রাইটারি হিসেবে বর্ণনা করে, প্রোডাকশন, পুনর্বিতরণ এবং বাণিজ্যিক ডিপ্লয়মেন্টের জন্য লিখিত বাণিজ্যিক লাইসেন্স বা অধিগ্রহণ প্রয়োজন; LICENSE ফাইলের অধীনে মূল্যায়ন অনুমোদিত। কন্ট্রিবিউটিং গাইডলাইন, একটি সিকিউরিটি পলিসি, বিবেচিত দিকনির্দেশনার একটি রোডম্যাপ, এবং ফান্ডিং লিংক (GitHub Sponsors, thanks.dev) অন্তর্ভুক্ত।