Skip to content

feat: split distribution into npm core + copy-first components#1

Open
anistark wants to merge 1 commit into
mainfrom
distribution-shadcn-split
Open

feat: split distribution into npm core + copy-first components#1
anistark wants to merge 1 commit into
mainfrom
distribution-shadcn-split

Conversation

@anistark

Copy link
Copy Markdown
Contributor

Adopt the shadcn split decided in plan/open-questions §1: component source is still copied into the user's project via runek add, but the runtime now ships as the published @runek/core npm package that the components import, rather than being vendored alongside them. This lets core improvements (editor, fog, palette, the data model) reach users via pnpm update while the component layer they own stays opt-in.

@runek/core gains a tsup build (ESM + .d.ts) and a publishConfig that repoints its entry at dist for npm while the monorepo keeps reading src; it is no longer private. The CLI stops vendoring core: it writes component source verbatim (no import rewrite) and installs @runek/core as a dependency, so coreImport is gone from runek.config.json. build-registry.mjs classifies @runek/core as an npm dependency pinned to core's version and no longer emits a core registry item; manifests are regenerated. Determinism is unchanged: core is lockfile-pinned and rng stays frozen across versions.

Docs (README, AGENTS, registry README, getting-started, CLI reference, and the guides) now import the runtime from @runek/core and drop the copied-core / coreImport model.

Adopt the shadcn split decided in plan/open-questions §1: component
source is still copied into the user's project via `runek add`, but the
runtime now ships as the published `@runek/core` npm package that the
components import, rather than being vendored alongside them. This lets
core improvements (editor, fog, palette, the data model) reach users
via `pnpm update` while the component layer they own stays opt-in.

`@runek/core` gains a tsup build (ESM + `.d.ts`) and a `publishConfig`
that repoints its entry at `dist` for npm while the monorepo keeps
reading `src`; it is no longer private. The CLI stops vendoring core: it
writes component source verbatim (no import rewrite) and installs
`@runek/core` as a dependency, so `coreImport` is gone from
`runek.config.json`. `build-registry.mjs` classifies `@runek/core` as an
npm dependency pinned to core's version and no longer emits a `core`
registry item; manifests are regenerated. Determinism is unchanged: core
is lockfile-pinned and `rng` stays frozen across versions.

Docs (README, AGENTS, registry README, getting-started, CLI reference,
and the guides) now import the runtime from `@runek/core` and drop the
copied-core / `coreImport` model.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant