Skip to content

Import aliases

tsconfig.base.json is the source of truth for aliases. Every classified library has one explicit public entrypoint; wildcarded Trinity product entrypoints are rejected.

PrefixLayer
@trinity/application/*Cross-capability application ownership
@trinity/data-access/*Capability state and Matrix adapters
@trinity/feature/*Lazy product features
@trinity/components/*Public Trinity UI
@trinity/runtime/*Projection, preference, and host kernels
@trinity/util/*Shared utilities and Matrix modeling
@trinity/platform-nativeBrowser, Capacitor, and Electron adapters
@trinity/capacitor-pushLocal Capacitor push plugin (pnpm workspace package)
@trinity/theme-foundationTheme tokens and global foundations
@trinity/testingShared Angular test helpers

@trinity/helm/* aliases belong to the generated UI implementation tier and are not feature APIs.

Representative exact entrypoints include @trinity/application/runtime, @trinity/data-access/timeline, @trinity/feature/rooms, @trinity/components/controls, @trinity/runtime/host, @trinity/util/matrix, @trinity/platform-native, @trinity/theme-foundation, and @trinity/testing.

Across libraries, import only from the exact alias exported for that library:

import { ConversationRuntime } from '@trinity/data-access/timeline';

Inside the same library, use a relative import. Do not deep-import another library’s src/lib files. When an API is missing, decide whether it should become supported at the owner’s src/index.ts rather than bypassing the boundary.