# 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