feat(mosaic): merge @mosaic/cli into @mosaic/mosaic #381

Merged
jason.woltje merged 1 commits from fix/merge-cli-into-mosaic into main 2026-04-05 01:11:33 +00:00
Owner

Problem

@mosaic/mosaic and @mosaic/cli had a circular dependency (cli → mosaic → cli) that blocked the turbo build graph. Users installing @mosaic/mosaic only got mosaic-wizard, not mosaic.

Solution

Merge the CLI into @mosaic/mosaic. One package, two binaries:

  • mosaic → CLI (yolo, coord, prdy, tui, gateway, etc.)
  • mosaic-wizard → Installation wizard

Changes

  • Moved packages/cli/src/* into packages/mosaic/src/
  • Converted dynamic @mosaic/mosaic imports to static relative imports
  • Merged CLI deps into mosaic (ink, react, socket.io-client, @mosaic/config)
  • Added jsx: react-jsx to mosaic tsconfig
  • Excluded packages/cli from workspace via pnpm-workspace.yaml
  • Updated install.sh to install @mosaic/mosaic instead of @mosaic/cli
  • Bumped version to 0.0.17

Checks

  • Typecheck: 38/38 tasks passed
  • Lint: 21/21 tasks passed
  • Prettier: all files formatted
  • node dist/cli.js --help works correctly

Next Steps (separate PRs)

  • Remove packages/cli directory entirely
  • Consider creating @mosaic/wizard as a standalone wizard package
  • Update Woodpecker publish pipeline to skip @mosaic/cli
## Problem `@mosaic/mosaic` and `@mosaic/cli` had a circular dependency (cli → mosaic → cli) that blocked the turbo build graph. Users installing `@mosaic/mosaic` only got `mosaic-wizard`, not `mosaic`. ## Solution Merge the CLI into `@mosaic/mosaic`. One package, two binaries: - `mosaic` → CLI (yolo, coord, prdy, tui, gateway, etc.) - `mosaic-wizard` → Installation wizard ## Changes - Moved `packages/cli/src/*` into `packages/mosaic/src/` - Converted dynamic `@mosaic/mosaic` imports to static relative imports - Merged CLI deps into mosaic (ink, react, socket.io-client, @mosaic/config) - Added `jsx: react-jsx` to mosaic tsconfig - Excluded `packages/cli` from workspace via `pnpm-workspace.yaml` - Updated `install.sh` to install `@mosaic/mosaic` instead of `@mosaic/cli` - Bumped version to 0.0.17 ## Checks - ✅ Typecheck: 38/38 tasks passed - ✅ Lint: 21/21 tasks passed - ✅ Prettier: all files formatted - ✅ `node dist/cli.js --help` works correctly ## Next Steps (separate PRs) - Remove `packages/cli` directory entirely - Consider creating `@mosaic/wizard` as a standalone wizard package - Update Woodpecker publish pipeline to skip `@mosaic/cli`
jason.woltje added 1 commit 2026-04-05 01:08:15 +00:00
feat(mosaic): merge @mosaic/cli into @mosaic/mosaic
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
c6fc090c98
@mosaic/mosaic is now the single package providing both:
- 'mosaic' binary (CLI: yolo, coord, prdy, tui, gateway, etc.)
- 'mosaic-wizard' binary (installation wizard)

Changes:
- Move packages/cli/src/* into packages/mosaic/src/
- Convert dynamic @mosaic/mosaic imports to static relative imports
- Add CLI deps (ink, react, socket.io-client, @mosaic/config) to mosaic
- Add jsx: react-jsx to mosaic's tsconfig
- Exclude packages/cli from workspace (pnpm-workspace.yaml)
- Update install.sh to install @mosaic/mosaic instead of @mosaic/cli
- Bump version to 0.0.17

This eliminates the circular dependency between @mosaic/cli and
@mosaic/mosaic that was blocking the build graph.
jason.woltje merged commit 07a1f5d594 into main 2026-04-05 01:11:33 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#381