kopia lustrzana https://github.com/transitive-bullshit/chatgpt-api
2.8 KiB
2.8 KiB
Contributing
Project Overview
This is a monorepo for Agentic - a platform that provides API gateway services for MCP (Model Context Protocol) and OpenAPI integrations.
Development Prequisites
node >= 22
pnpm >= 10.12.4
apps/api
requires a postgres database (can be a local one) with connection URL stored inDATABASE_URL
- You'll need to initialize the database running
pnpm drizzle-kit push
from theapps/api
directory
- You'll need to initialize the database running
Core Architecture
The platform consists of:
- API Service (
apps/api/
) - Platform backend API with authentication, billing, and resource management - Gateway Service (
apps/gateway/
) - Cloudflare Worker that proxies requests to origin MCP/OpenAPI services - Website (
apps/web/
) - Next.js site for both the marketing site and authenticated webapp - E2E Tests (
apps/e2e/
) - End-to-end test suite for HTTP and MCP gateway requests - Shared Packages (
packages/
) - Common utilities, types, validators, and config - StdLib Packages (
stdlib/
) - TS AI SDK adapters
The gateway accepts HTTP requests at https://gateway.agentic.so/deploymentIdentifier/tool-name
or https://gateway.agentic.so/deploymentIdentifier/mcp
for MCP.
Development Commands
Main development workflow:
pnpm dev
- Start all services in development modepnpm build
- Build all packages and apps (except for the website)pnpm test
- Run all tests (build, format, lint, typecheck, unit, but not e2e tests)pnpm clean
- Clean all build artifactspnpm run docs
- Run the local mintlify docs serverpnpm release
- Bump all public packages and publish them to npm
Individual test commands:
pnpm test:format
- Check code formatting with Prettierpnpm test:lint
- Run ESLint across all packagespnpm test:typecheck
- Run TypeScript type checkingpnpm test:unit
- Run unit tests with Vitest
Code quality:
pnpm fix
- Auto-fix formatting and linting issuespnpm knip
- Check for unused dependencies
E2E testing:
- (from the
apps/e2e
directory) pnpm e2e
- Run all E2E testspnpm e2e-http
- Run HTTP edge E2E testspnpm e2e-mcp
- Run MCP edge E2E tests
Key Database Models
The system uses Drizzle ORM with PostgreSQL. Core entities:
- User - Platform users
- Team - Organizations with members and billing
- Project - Namespace API products comprised of immutable Deployments
- Deployment - Immutable instances of MCP/OpenAPI services, including gateway and pricing config
- Consumer - Customer subscription tracking usage and billing
Environment Variables
Every app has a .env.example
file, which documents required environment variables.
To run the backend API and other apps, you'll need to set up:
- Stripe
- GitHub app with OAuth credentials
- Resend
- Sentry