Entry points
One package name over ten documented subpaths. Which one you import from tells a reader what layer you are working in.
| Entry point | What lives there |
|---|---|
@modular/sdk | the authoring vocabulary and the runtime context contract |
@modular/sdk/view | React entry for contributed views |
@modular/sdk/chat | chat tool-call rendering |
@modular/sdk/state | mod-owned state and its snapshots |
@modular/sdk/editor | document, blocks, text streams |
@modular/sdk/canvas | canvas elements and templates |
@modular/sdk/authoring | authoring-time lint and diagnostics |
@modular/sdk/mod-ui | mod-UI surface descriptions |
@modular/sdk/theme | theme authoring |
@modular/sdk/css | styling helpers |
@modular/sdk/ui | the host's live React components, icons, and UI hooks; see Components |
Three internal subpaths with no reference pages
@modular/sdk/internal, @modular/sdk/eslint-plugin, and
@modular/sdk/ambient-surface are reachable through the exports map but are not
author API.
/internal,/eslint-plugin, and/ambient-surfaceare host machinery. They are published because the build needs them, not because they are author API. See Conventions.
The live-instance subpaths
@modular/sdk/ui, @modular/sdk/css, @modular/sdk/state, and
@modular/sdk/theme are shared live instances — the host provides the running
copy. Bundling your own breaks identity, which for React means broken hooks and
context.