Package Ownership and Publish Boundaries
This document defines where @genfeedai/* packages live and how publishing is scoped within the Genfeed monorepo.
Canonical ownership
Genfeed.ai is a single TypeScript monorepo at genfeedai/genfeed.ai. All @genfeedai/* packages are owned there — there are no separate per-package repositories.
- Shared packages live under
packages/*(for examplepackages/types,packages/serializers,packages/cli). - Backend services live under
apps/server/*and frontends underapps/*. These are applications, not published packages. - Enterprise packages live under
ee/packages/*and are licensed under the commercialee/license, separate from the AGPL-3.0 core.
Public package source of truth
The packages/ workspace is the canonical source for the shared @genfeedai/* packages, including:
@genfeedai/types@genfeedai/core@genfeedai/workflows@genfeedai/prompts@genfeedai/workflow-ui@genfeedai/serializers@genfeedai/cli
Each package name maps to exactly one directory under packages/. There is no second home for any package name.
Enterprise boundary
Enterprise modules under ee/packages/* (for example multi-tenancy, billing, analytics, and teams) may consume public packages from packages/*, but the reverse is not allowed: AGPL-3.0 core packages must never import from ee/.
Enterprise packages extend public contracts (for example workflow extension layers built on @genfeedai/workflows) rather than forking them.
Release ordering
Because everything ships from one repo, releases are coordinated as a single workspace:
- Build and version shared packages in
packages/*. - Build and deploy the consuming apps in
apps/*andapps/server/*. - Publish
@genfeedai/clifrompackages/cli.
Rules to avoid ownership drift
- One package name maps to exactly one directory under
packages/— never duplicate a package name elsewhere. - Avoid
file:dependencies for shared packages; useworkspace:*within the monorepo. - Treat
workspace:*as internal only and rewrite to published versions before any external publish. - Keep package metadata (
exports,files,repository,license) publish-safe. - Core (AGPL-3.0) packages must not depend on enterprise (
ee/) packages.