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

# Mogplex Mogplex একটি ওপেন-সোর্স প্ল্যাটফর্ম যা এজেন্ট-ভিত্তিক সফটওয়্যার ডেভেলপমেন্টের জন্য। কোডিং এজেন্টরা বিচ্ছিন্ন স্যান্ডবক্সে পরিকল্পনা, নির্মাণ, পরীক্ষা, পর্যালোচনা এবং প্রকাশ করে—যা আপনি দেখতে পারেন, এমন একটি প্ল্যাটফর্মে যা পড়া, চালানো এবং পরিবর্তন করা যায়। একটি GitHub রিপোজিটরিতে নির্দেশ করুন এবং একটি ট্রিগার (চ্যাট বার্তা, স্ল্যাক থ্রেড, ওয়েবহুক, সময়সূচী) থেকে একীভূত পুল রিকোয়েস্ট পর্যন্ত কাজ নিয়ে যান, আপনার নিজের শর্তে কী প্রকাশ হবে তা নির্ধারণ করুন। আপনি যদি কোনো হোস্টেড এজেন্ট-ডেভেলপমেন্ট প্ল্যাটফর্ম ব্যবহার করে থাকেন এবং চেয়েছেন যে হ্যারনেস পরীক্ষা করতে, মডেল বদলাতে, নিজের ইনফ্রাস্ট্রাকচারে চালাতে, বা বিরক্তিকর জিনিস ঠিক করতে পারতেন, তাহলে Mogplex সেই প্ল্যাটফর্মই উৎস-খোলা অবস্থায়। > অবস্থা: প্রি-1.0। Mogplex [mogplex.com](https://mogplex.com)-এ প্রোডাকশনে ব্যবহৃত হয়, তবে পণ্য এবং স্কিমা দ্রুত পরিবর্তন হচ্ছে। রুক্ষ প্রান্ত এবং দ্রুত পুনরাবৃত্তি আশা করুন। ## কেন Mogplex - **এজেন্টরা বাস্তব স্যান্ডবক্সে কাজ করে, চ্যাট উইন্ডোতে নয়।** প্রতিটি সেশনে একটি বিচ্ছিন্ন [Vercel Sandbox](https://vercel.com/docs/vercel-sandbox) থাকে যেখানে রিপো নিরীক্ষিত, একটি টার্মিনাল এবং লাইভ প্রিভিউ থাকে। এজেন্টরা সেখান থেকে ফাইল সম্পাদনা, পরীক্ষা চালানো, কমিট এবং পুশ করে। - **প্রতিটি রান পরীক্ষাযোগ্য।** টুল কল, ডিফ, টোকেন ব্যবহার, খরচ এবং স্যান্ডবক্স স্বাস্থ্য রেকর্ড করা হয় এবং রান চলাকালীন দৃশ্যমান থাকে, পরে পুনর্গঠিত নয়। - **নিজের মডেল আনুন।** Vercel AI Gateway, OpenRouter, বা নিজের প্রোভাইডার কী দিয়ে রুট করুন। ডিফল্ট প্রতি ব্যবহারকারী, প্রতি দল এবং প্রতি অটোমেশনে সেট করা যায়। - **শুধু প্রম্পট নয়, ট্রিগার।** Control চ্যাট, স্ল্যাক থ্রেড, CLI, পাবলিক API এবং MCP সার্ভার, GitHub ইভেন্ট, বা ক্রন সময়সূচী থেকে কাজ শুরু করুন। - **ওপেন, Apache-2.0, স্ব-হোস্টযোগ্য।** হ্যারনেস পড়ুন। নিজের Vercel দল, Neon ডেটাবেস এবং Trigger.dev প্রজেক্টে চালান। যা পছন্দ নয় তা পরিবর্তন করে ফেরত পাঠান। ## যা যা করতে পারেন - GitHub রিপোজিটরি আমদানি করুন এবং বিচ্ছিন্ন স্যান্ডবক্সে এজেন্ট চালান। - **Control**-এ কাজ করুন, প্রধান এজেন্ট ইন্টারফেস: একটি কোঅর্ডিনেটরের সাথে চ্যাট করুন যা সরাসরি কোড করে, পরিবর্তিত ফাইল লাইভ দেখুন, ডিফ, রিভার্ট, কমিট এবং পৃষ্ঠা ছাড়াই পুল রিকোয়েস্ট খুলুন। - দীর্ঘ রান হ্যারনেস চেকপয়েন্টে বিরতি দিন এবং পরে পুশ করা ব্রাঞ্চ থেকে পুনরায় শুরু করুন। - সময়সূচী, ওয়েবহুক বা GitHub ইভেন্টে ব্যাকগ্রাউন্ড **অটোমেশন** চালান, একটি PR পর্যালোচনা এজেন্টসহ। - **Slack** DM এবং চ্যানেল থেকে রিপো-বাউন্ড এজেন্ট রান চালান, লাইভ অ্যাকশন থ্রেডে স্ট্রিম হয়। - **CLI** ([Mogplex/cli](https://github.com/Mogplex/cli)) এবং **পাবলিক API + MCP সার্ভার** ব্যবহার করে নিজের টুল থেকে রান শুরু, পরীক্ষা এবং নিয়ন্ত্রণ করুন। - শেয়ার্ড রিপোজিটরি এবং ক্রেডেনশিয়ালের জন্য দল, ভূমিকা এবং অডিট লগ পরিচালনা করুন। - অবজারভেবিলিটি ভিউতে রান, টুল আউটপুট, স্যান্ডবক্স লগ এবং প্রতি-কল মডেল টেলিমেট্রি পরীক্ষা করুন। ## আর্কিটেকচার ```mermaid flowchart LR User[Browser / CLI / Slack / MCP] --> Next[Next.js app] Next --> DB[Neon Postgres + Better Auth] Next --> GitHub[GitHub OAuth + GitHub App] Next --> Sandbox[Vercel Sandbox] Next --> Gateway[Vercel AI Gateway / provider keys] Next --> Trigger[Trigger.dev background jobs] Trigger --> Sandbox Trigger --> DB ``` | অংশ | ভূমিকা | | --- | --- | | Next.js (App Router) | UI, API রুট, MCP সার্ভার, ওয়েবহুক | | Neon Postgres | সমস্ত অ্যাপ্লিকেশন স্টেট; মাইগ্রেশন [`neon/migrations/`](./neon/migrations)-এ | | Better Auth | সাইন-ইন (GitHub, Google, ইমেইল) এবং সেশন | | GitHub App | রিপো অ্যাক্সেস, ওয়েবহুক, চেক | | Vercel Sandbox | প্রতিটি এজেন্ট সেশনের জন্য বিচ্ছিন্ন কম্পিউট | | Vercel AI Gateway | মডেল রাউটিং, OpenRouter এবং সরাসরি কী বিকল্প হিসেবে | | Trigger.dev | দীর্ঘ-চলমান এজেন্ট রান, অটোমেশন, সিঙ্ক | ## শুরু করা ### পূর্বশর্ত - Node.js `20+` এবং `pnpm` - `vector` এবং `pg_trgm` এক্সটেনশনসহ একটি Postgres 17 ডেটাবেস। [Neon](https://neon.tech) উভয়ই সরবরাহ করে এবং প্রোডাকশন সেখানে চলে; স্থানীয়ভাবে, `pgvector/pgvector:pg17` Docker ইমেজ কাজ করে। - ঐচ্ছিক, সম্পূর্ণ পণ্যের জন্য: একটি GitHub App, স্যান্ডবক্সের জন্য Vercel টোকেন, AI Gateway বা প্রোভাইডার কী, এবং একটি Trigger.dev প্রজেক্ট। প্রতিটি একটি ফিচার এলাকা খুলে দেয়; অ্যাপ শেল বুট করতে কোনোটি প্রয়োজন নেই। ### 1. ডিপেন্ডেন্সি ইনস্টল করুন ```bash pnpm install ``` ### 2. এনভায়রনমেন্ট কনফিগার করুন ```bash cp .env.example .env.local ``` স্থানীয় অ্যাপের জন্য ন্যূনতম সেট: | ভেরিয়েবল | উদ্দেশ্য | | --- | --- | | `MOGPLEX_DATA_BACKEND=neon` এবং `NEXT_PUBLIC_MOGPLEX_DATA_BACKEND=neon` | Postgres + Better Auth ব্যাকএন্ড নির্বাচন। উভয়ই একমত হতে হবে; পাবলিকটি বিল্ড সময়ে ইনলাইন হয়। | | `DATABASE_URL`, `DATABASE_URL_UNPOOLED` | পুলড এবং সরাসরি Postgres সংযোগ | | `BETTER_AUTH_SECRET` | সেশন সাইনিং সিক্রেট | | `AUTH_GITHUB_CLIENT_ID`, `AUTH_GITHUB_CLIENT_SECRET` | GitHub সাইন-ইন (বা Google / ইমেইল ব্যবহার করুন) | | `NEXT_PUBLIC_APP_URL` | ক্যানোনিকাল অ্যাপ URL, স্থানীয়ভাবে `http://localhost:3000` | | `CRON_SECRET`, `INTERNAL_API_SECRET`, `CONNECTIONS_ENCRYPTION_KEY` | মেশিন অথ এবং ক্রেডেনশিয়াল এনক্রিপশন; র্যান্ডম মান তৈরি করুন | প্রতিটি ঐচ্ছিক ইন্টিগ্রেশন [`.env.example`](./.env.example)-এ ইনলাইন ডকুমেন্টেড। ### 3. মাইগ্রেশন প্রয়োগ করুন ```bash pnpm exec tsx --env-file=.env.local scripts/apply-neon-migrations.ts ``` খালি ডেটাবেসে এটি প্রথমে [`neon/baseline.sql`](./neon/baseline.sql) প্রয়োগ করে, যা সম্পূর্ণ মাইগ্রেটেড ডেটাবেস থেকে তৈরি একটি স্কিমা স্ন্যাপশট, এবং এটি আচ্ছাদিত প্রতিটি মাইগ্রেশন প্রয়োগ হিসেবে রেকর্ড করে। তারপর, প্রতিটি পরবর্তী রানে, এটি `DATABASE_URL`-এর বিরুদ্ধে ক্রমানুসারে পেন্ডিং [`neon/migrations/*.sql`](./neon/migrations) প্রয়োগ করে এবং কী চালানো হয়েছে তা রেকর্ড করে। প্রিভিউ করতে `--dry-run` যোগ করুন। `--env-file` ফ্ল্যাগটি স্ক্রিপ্টকে `.env.local` দেখতে দেয়; CI এবং প্রোডাকশনে ভেরিয়েবলটি এক্সপোর্ট করা হয়। ### 4. চালান ```bash pnpm dev ``` `http://localhost:3000` খুলুন এবং সাইন ইন করুন। ### 5. প্রয়োজনীয় ইন্টিগ্রেশন চালু করুন | যা চান | কনফিগার করুন | | --- | --- | | রিপো আমদানি এবং ওয়েবহুক গ্রহণ | GitHub App এনভি | | এজেন্ট স্যান্ডবক্স চালু | `PLATFORM_VERCEL_TOKEN`, `PLATFORM_VERCEL_TEAM_ID`, `VERCEL_PROJECT_ID` | | মডেল চালান | `AI_GATEWAY_API_KEY` বা প্রোভাইডার কী, অথবা ব্যবহারকারীদের Settings-এ নিজের আনতে দিন | | দীর্ঘ কাজ এবং অটোমেশন চালান | Trigger.dev এনভি, তারপর `pnpm trigger:dev` | | Slack, Stripe, Sentry, Resend | `.env.example`-এর সংশ্লিষ্ট বিভাগ দেখুন | ## স্ক্রিপ্ট ```bash pnpm dev # Next.js ডেভ সার্ভার pnpm build # প্রোডাকশন বিল্ড pnpm lint # ESLint + Stylelint pnpm typecheck # tsc pnpm test:unit # ইউনিট টেস্ট pnpm test:db # ডেটাবেস-ভিত্তিক টেস্ট pnpm test:e2e # Playwright pnpm harness:check pnpm trigger:dev # স্থানীয় Trigger.dev ওয়ার্কার pnpm git:cleanup # main-এ ফিরে যান এবং মিশ্রিত ব্রাঞ্চ ছাঁটাই ``` একটি ইউনিট টেস্ট ফাইল চালান `pnpm exec tsx --test tests/unit/some-file.test.ts` দিয়ে এবং একটি Playwright স্পেক `pnpm exec playwright test tests/e2e/some-spec.spec.ts` দিয়ে। প্রথমবার Playwright সেটআপ: `pnpm exec playwright install --with-deps chromium`। [TESTING.md](./TESTING.md) সংজ্ঞায়িত করে একটি পরিবর্তন কী কভারেজ আনতে হবে। ## স্ব-হোস্টিং Mogplex স্ব-হোস্ট করার জন্য নির্মিত। [mogplex.com](https://mogplex.com)-এ যে কোড চলে তা আপনার নিজের Vercel দল, Neon প্রজেক্ট এবং Trigger.dev প্রজেক্টে চলে, এবং Apache-2.0 লাইসেন্সে কোনো ফি, সিট সীমা বা ফিচার গেটিং নেই। [docs/self-hosting.md](./docs/self-hosting.md) দিয়ে শুরু করুন। এটি প্রতিটি ব্যাকিং সার্ভিস, প্রতিটি কী খুলে দেয় এবং [`Dockerfile`](./Dockerfile) / [`docker-compose.yml`](./docker-compose.yml) পথ তালিকাভুক্ত করে যদি আপনি Vercel-এর পরিবর্তে কন্টেইনার পছন্দ করেন। স্ব-হোস্টিং পথে কিছু কঠিন হলে, একটি ইস্যু বা আলোচনা খুলুন। সেই পথ মসৃণ করা প্রকল্পের অগ্রাধিকার। ## ডিপ্লয় মডেল প্রোডাকশন ডিপ্লয় স্কিমা-প্রথম। - `main`-এ পুশ GitHub Actions চালায়, যা প্রার্থী স্কিমার বিরুদ্ধে বর্তমানে ডিপ্লয়ড অ্যাপ কমিট পরীক্ষা করে, পেন্ডিং [`neon/migrations/`](./neon/migrations) প্রয়োগ করে, তারপর অ্যাপ ডিপ্লয় করে। - ডিপ্লয়ের পরে, ওয়ার্কফ্লো মেশিন অথ দিয়ে [`/api/cron/production-smoke`](./app/api/cron/production-smoke/route.ts) হিট করে সংবেদনশীল সারফেসে স্কিমা ড্রিফট ধরতে। - স্বয়ংক্রিয় Vercel Git ডিপ্লয় `vercel.json`-এ নিষ্ক্রিয়। - প্রোডাকশন টাস্ক রিকোয়েস্ট অ্যাপের মতো একই কমিট ব্যবহার করে। [ডিপ্লয়মেন্ট স্কিউ সুরক্ষা](./docs/deployment-skew-protection.md) দেখুন। - `main`-এ মিশ্রিত মাইগ্রেশন অবশ্যই পুরানো অ্যাপ এবং ওয়ার্কার রিলিজ সমর্থন করবে যতক্ষণ না সেগুলি অবসর নেয়, ডিপ্লয়মেন্ট ওয়ার্কফ্লোর বাইরেও। অবদানকারী প্রয়োজনীয়তা: [মাইগ্রেশন নিয়ম](./CONTRIBUTING.md#migration-rules) এবং [স্কিমা সামঞ্জস্য টেস্ট](./TESTING.md#schema-compatibility)। প্রাসঙ্গিক ফাইল: [`ci.yml`](./.github/workflows/ci.yml), [`deploy-production.yml`](./.github/workflows/deploy-production.yml), [`vercel.json`](./vercel.json)। ## প্রজেক্ট লেআউট - [`app/`](./app) - App Router পেজ, লেআউট, API রুট, MCP সার্ভার - [`components/`](./components) - UI সারফেস এবং শেয়ার্ড প্রিমিটিভ - [`hooks/`](./hooks) - ক্লায়েন্ট হুক এবং Zustand স্টোর - [`lib/`](./lib) - ডোমেইন লজিক, এজেন্ট হ্যারনেস, ইন্টিগ্রেশন - [`trigger/`](./trigger) - Trigger.dev টাস্ক - [`neon/migrations/`](./neon/migrations) - স্কিমা পরিবর্তনের সত্যের উৎস; [`neon/baseline.sql`](./neon/baseline.sql) খালি ডেটাবেস বুটস্ট্র্যাপ করে - [`docs/`](./docs) - ডিজাইন ডক, অডিট এবং স্ব-হোস্টিং গাইড - [`tests/`](./tests) - ইউনিট, ডেটাবেস এবং এন্ড-টু-এন্ড টেস্ট ## কমিউনিটি - **প্রশ্ন এবং ধারণা**: [GitHub Discussions](https://github.com/Mogplex/mogplex/discussions) - **বাগ এবং ফিচার অনুরোধ**: [Issues](https://github.com/Mogplex/mogplex/issues) - **অবদান**: [CONTRIBUTING.md](./CONTRIBUTING.md)। ছোট ফিক্স সরাসরি PR-এ যেতে পারে; বড় পরিবর্তনের জন্য আগে একটি ইস্যু খুলুন। - **নিরাপত্তা**: [SECURITY.md](./SECURITY.md)। দুর্বলতা কখনও পাবলিক ইস্যু হিসেবে ফাইল করবেন না। - **আচরণবিধি**: [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) সম্পর্কিত রিপোজিটরি: [Mogplex/cli](https://github.com/Mogplex/cli) এবং [Mogplex/docs](https://github.com/Mogplex/docs) ([docs.mogplex.com](https://docs.mogplex.com)-এ প্রকাশিত)। ## লাইসেন্স [Apache License 2.0](./LICENSE)। অ্যাট্রিবিউশনের জন্য [NOTICE](./NOTICE) দেখুন।