Package mode is a toolchain composition layer around canonical Topaz modules. It selects roots, dependencies, hashes, and offline inputs; it does not add package syntax to the language or weaken module containment, visibility, cycle, and initialization rules.
Contract and components
topaz.toml declares package identity, language lane, entry and dependencies. topaz.lock records a deterministic root manifest hash and dependency content. Local dependencies are content-hashed when added. Registry dependencies are copied into vendor/<name>/<version> and verified. Omitting an entry from check/run/test/emit/build/doc activates package mode.
Workflow
Use init for a non-overwriting v5.6 scaffold, add for registry or relative-path dependencies, lock to freeze resolution, and fetch/vendor with an explicit local registry source. Commit the manifest and lockfile; use --locked in reproducible gates. Generated doc output is derived from the checked public export surface.
Current support
Topaz v5.6 supports package creation, dependency addition, locking, vendoring, package compilation, module isolation, and offline builds. The public topaz-lang@5.6.0 npm package installs the appropriate Topaz CLI binary for the current platform.
Boundaries and limitations
A package dependency does not grant host capabilities or import foreign-language syntax. Topaz source dependencies use topaz.toml, topaz.lock, and vendored inputs; the npm package is a CLI installer, not the Topaz source-package format. Offline builds require every locked dependency to be available locally.
Command reference
topaz init --root my-app
topaz add utility@1.2.0 --root my-app
topaz lock --root my-app
topaz vendor --root my-app --from ./registry
topaz check --root my-app --locked