tosijs/core (slim entry)

The full library minus the parts a bundle can't safely shake for you:

import { tosi, elements, Component } from 'tosijs/core'

Not included (import them from tosijs):

left out why get it back
<tosi-blueprint> / <tosi-loader>, makeComponent registers custom elements at import — a markup contract no import statement protects tosijs
share, sync BroadcastChannel/IndexedDB and network transports tosijs
hotReload dev-time localStorage state persistence tosijs
enableAgentInterface, schematicSVG, auditAccessibility, the contract harnesses the opt-in agent surface (~11 kB gz) tosijs or tosijs/agent

Everything else — state, bindings, elements, components, CSS, Color — is here, identical to tosijs.

Why this is opt-in rather than automatic. Blueprints hydrate from markup (<tosi-blueprint tag src>), so a consumer has no import statement for a bundler to protect: shake the registration and the page fails silently — an unknown element, no error, nothing hydrated, and the code that would have warned is the code that got shaken. Inverting that (opt in, don't opt out) moves the risk from "anyone who upgrades" to "someone who made a choice" — and because slim core is present, it can speak: in dev it scans for undefined blueprint elements after load and tells you exactly what happened.