diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000000..d5d33f0808c --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,155 @@ +# AGENTS.md + +This file provides guidance to coding agents (Claude Code, Codex, Copilot, etc.) when working with code in this repository. + +## Repo shape + +Yarn 4 + Turborepo monorepo. Workspaces: + +- `apps/meteor` — main app (Meteor 3 + React 18 + TypeScript). 90 % of work happens here. +- `apps/uikit-playground` — Apps-Engine UIKit dev playground. +- `packages/*` — community-edition shared libs (`core-services`, `core-typings`, `model-typings`, `models`, `rest-typings`, `i18n`, `ui-client`, `fuselage-ui-kit`, `patch-injection`, `tools`, `agenda`, `cron`, `logger`, etc.). +- `ee/apps/*` — enterprise microservices (`account-service`, `authorization-service`, `ddp-streamer`, `presence-service`, `stream-hub-service`, `queue-worker`, `omnichannel-transcript`, `federation-service`). +- `ee/packages/*` — enterprise libs (`license`, `abac`, `presence`, `omnichannel-services`, `federation-matrix`, `pdf-worker`, `ui-theming`, `network-broker`, `omni-core-ee`, `media-calls`). +- `apps/meteor/ee/server/services` — declared as workspace; EE-only server code lives under `apps/meteor/ee/`. + +Node `22.22.2`, Yarn `4.12.0`, TypeScript `~5.9.3`. Pinned in `package.json` `engines` + `volta`. Use `mise`/`volta`/`asdf` (`.tool-versions`). + +### EE vs CE licensing + +EE code is under a **different license** from the rest of the repo. Rules: + +- CE code MUST NOT carelessly import from EE without explicit human approval. +- EE code MUST NOT be moved into non-EE folders. +- This applies to **any** EE code, anywhere in the tree — not just `ee/` paths. +- Identify EE code by a `LICENSE` file sitting next to it. **License files are recursive**: if a parent folder has an enterprise `LICENSE`, every file in that folder and all its descendants is EE too (e.g. `apps/meteor/ee/LICENSE`, `ee/LICENSE`, `ee/packages//LICENSE`). +- When in doubt, walk up the tree until you find a `LICENSE`. + +## Top-level commands (run from repo root) + +``` +yarn build # turbo build all workspaces +yarn build:services # only ee/apps services + deps +yarn dev # dev server for @rocket.chat/meteor (parallel turbo) +yarn dsv # meteor dev (`meteor npm run dev`) inside apps/meteor +yarn ms # microservices dev (TRANSPORTER=TCP by default) +yarn lint # turbo lint all workspaces +yarn testunit # turbo testunit all workspaces +``` + +`yarn` (no args) bootstraps deps. `turbo run --filter=` to scope. + +Per-workspace invocation: `yarn workspace