Ambient config
Your mod's TypeScript and lint configuration is generated, not authored.
<installed host>/…/@modular/sdk/dist/ ├── ambient/tsconfig.json ← your mod's tsconfig extends this ├── era.json fingerprint keying your build to this host └── docs/ the offline reference
What the host rewrites
On every activation the host rewrites your mod's tsconfig.json and
eslint.config.mjs so they match the installed host exactly. Anything you
hand-edit in them is lost on the next activation.
If you need a compiler option the generated config does not give you, that is a gap in the ambient config rather than something to patch locally — patching it locally produces a mod that builds on your machine and nowhere else.
era.json
A fingerprint keying your build to a particular host. It is how the host knows whether a mod was built against the SDK it is currently running, rather than an older one that happened to be on disk.
The lint plugin
@modular/sdk/eslint-plugin is published so the generated eslint.config.mjs
can reference it. One rule worth knowing about rewrites imports of
@tvx/design-system/components to @modular/sdk/ui — the two are the same
components, but only the second resolves to the host's live instance.
See Resolution for how a mod finds the SDK in the first place, and Conventions for what not to import.