2.4 KiB
2.4 KiB
Repository Guidelines
Project Structure & Module Organization
src/: Cloudflare Workers backend (Hono + chanfana). Key areas:src/providers/: provider proxies (OpenAI, Azure OpenAI, Claude, Responses).src/admin/: admin APIs (channels, tokens, pricing, DB init).src/db/: D1 schema/init helpers.
public/: built admin UI assets served by Workers.frontend/: React/Vite admin UI source (build outputs topublic/).wrangler.jsonc: production/deploy Wrangler config.wrangler.local.jsonc: local Worker-first development config.type.d.ts: shared types for bindings and data models.
Build, Test, and Development Commands
bun run build: Type-checks and builds the admin UI intopublic/.bun run --filter frontend build: Builds only the admin UI from the frontend workspace.bun run dev: Starts the Vite frontend and Worker locally for integrated development.bun run dev:worker: Runs only the Worker locally viawrangler dev --config wrangler.local.jsonc.bun run deploy: Deploys the Worker to Cloudflare.bun run cf-typegen: Generates Cloudflare bindings/types.
Coding Style & Naming Conventions
- TypeScript throughout; follow existing patterns and file layout.
- Indentation: 4 spaces in backend files, 2 spaces in frontend TSX (match existing).
- API routes:
src/admin/*_api.ts, provider files insrc/providers/. - Channel types: use string literals (e.g.,
openai-responses,azure-openai-responses).
Testing & Lint
- No dedicated test framework is currently configured.
- Use
bun run build(runs frontend TypeScript check + Vite build) as basic safety check for UI changes. - For backend changes, run
bun run devorbun run dev:workerand validate with the API Test page. - Frontend lint:
cd frontend && bun run lint(ESLint with react-hooks and react-refresh rules).
Commit & Pull Request Guidelines
- No formal commit conventions are documented in-repo; use clear, imperative messages (e.g., "Add responses proxy").
- PRs should include:
- Summary of changes.
- Notes on config changes (
wrangler.jsonc,wrangler.local.jsonc, env vars). - Screenshots for UI changes (from
frontend/).
Security & Configuration Tips
- Admin endpoints require
x-admin-token(ADMIN_TOKENbinding). - Tokens and channel configs are stored in D1; validate permissions and quotas.
- For Azure Responses v1, leave
api_versionempty and setendpointto the resource host.