{"id":"@lssm-tech/lib.overlay-engine","slug":"lib.overlay-engine","name":"@lssm-tech/lib.overlay-engine","version":"6.0.4","path":"packages/platform/ui/overlay-engine","manifestPath":"packages/platform/ui/overlay-engine/package.json","manifestBlobSha":"cb8a200301045d9f29f59298addffaca7ec69c2b","layer":"platform","physicalArea":"ui","primaryArea":"ui-and-presentations","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"stable"},"description":"Runtime overlay engine for ContractSpec personalization and adaptive UI rendering.","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"library","status":"active","adoptionMode":"adoptable","stability":"stable","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./merger","./overlay-engine.feature","./react","./registry","./runtime","./signer","./spec","./types","./validator"],"documentation":[{"title":"Lib Overlay Engine documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.overlay-engine","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.overlay.engine","title":"Lib Overlay Engine","description":"Runtime overlay engine for ContractSpec personalization and adaptive UI rendering.","status":"active","useCases":["Adopt runtime overlay engine for contractspec personalization and adaptive ui rendering"],"aliases":["contractspec","overlay","personalization","ui","rendering","typescript","lib","engine"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.overlay-engine","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/merger","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/overlay-engine.feature","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/react","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/registry","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/runtime","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/signer","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/spec","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/types","symbols":[]},{"from":"@lssm-tech/lib.overlay-engine/validator","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.overlay-engine package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/merger","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/overlay-engine.feature","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/react","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/registry","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/runtime","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/signer","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/spec","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/types","symbols":[]},{"capabilityId":"package.lssm.tech.lib.overlay.engine","from":"@lssm-tech/lib.overlay-engine/validator","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint":"bun lint:fix","lint:fix":"node ../../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../../scripts/biome.cjs check --write .","lint:check":"node ../../../../scripts/biome.cjs check .","test":"bun test --pass-with-no-tests","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.contracts-spec-core":"workspace:^","fast-json-stable-stringify":"^2.1.0"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:","@lssm-tech/tool.bun":"workspace:*"},"peerDependencies":{"react":"catalog:"},"optionalDependencies":{},"peerDependenciesMeta":{"react":{"optional":true}},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./merger":"./src/merger.ts","./overlay-engine.feature":"./src/overlay-engine.feature.ts","./react":"./src/react.ts","./registry":"./src/registry.ts","./runtime":"./src/runtime.ts","./signer":"./src/signer.ts","./spec":"./src/spec.ts","./types":"./src/types.ts","./validator":"./src/validator.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./merger":{"types":"./dist/merger.d.ts","browser":"./dist/browser/merger.js","bun":"./dist/merger.js","node":"./dist/node/merger.js","default":"./dist/merger.js"},"./overlay-engine.feature":{"types":"./dist/overlay-engine.feature.d.ts","browser":"./dist/browser/overlay-engine.feature.js","bun":"./dist/overlay-engine.feature.js","node":"./dist/node/overlay-engine.feature.js","default":"./dist/overlay-engine.feature.js"},"./react":{"types":"./dist/react.d.ts","browser":"./dist/browser/react.js","bun":"./dist/react.js","node":"./dist/node/react.js","default":"./dist/react.js"},"./registry":{"types":"./dist/registry.d.ts","browser":"./dist/browser/registry.js","bun":"./dist/registry.js","node":"./dist/node/registry.js","default":"./dist/registry.js"},"./runtime":{"types":"./dist/runtime.d.ts","browser":"./dist/browser/runtime.js","bun":"./dist/runtime.js","node":"./dist/node/runtime.js","default":"./dist/runtime.js"},"./signer":{"types":"./dist/signer.d.ts","browser":"./dist/browser/signer.js","bun":"./dist/signer.js","node":"./dist/node/signer.js","default":"./dist/signer.js"},"./spec":{"types":"./dist/spec.d.ts","browser":"./dist/browser/spec.js","bun":"./dist/spec.js","node":"./dist/node/spec.js","default":"./dist/spec.js"},"./types":{"types":"./dist/types.d.ts","browser":"./dist/browser/types.js","bun":"./dist/types.js","node":"./dist/node/types.js","default":"./dist/types.js"},"./validator":{"types":"./dist/validator.d.ts","browser":"./dist/browser/validator.js","bun":"./dist/validator.js","node":"./dist/node/validator.js","default":"./dist/validator.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/lib.overlay-engine","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/platform/ui/overlay-engine/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./merger","importPath":"@lssm-tech/lib.overlay-engine/merger","target":"./src/merger.ts","targets":[{"conditions":[],"target":"./src/merger.ts","sourcePath":"packages/platform/ui/overlay-engine/src/merger.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/merger.ts","sourceStatus":"verified source file"}]},{"subpath":"./overlay-engine.feature","importPath":"@lssm-tech/lib.overlay-engine/overlay-engine.feature","target":"./src/overlay-engine.feature.ts","targets":[{"conditions":[],"target":"./src/overlay-engine.feature.ts","sourcePath":"packages/platform/ui/overlay-engine/src/overlay-engine.feature.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/overlay-engine.feature.ts","sourceStatus":"verified source file"}]},{"subpath":"./react","importPath":"@lssm-tech/lib.overlay-engine/react","target":"./src/react.ts","targets":[{"conditions":[],"target":"./src/react.ts","sourcePath":"packages/platform/ui/overlay-engine/src/react.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/react.ts","sourceStatus":"verified source file"}]},{"subpath":"./registry","importPath":"@lssm-tech/lib.overlay-engine/registry","target":"./src/registry.ts","targets":[{"conditions":[],"target":"./src/registry.ts","sourcePath":"packages/platform/ui/overlay-engine/src/registry.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/registry.ts","sourceStatus":"verified source file"}]},{"subpath":"./runtime","importPath":"@lssm-tech/lib.overlay-engine/runtime","target":"./src/runtime.ts","targets":[{"conditions":[],"target":"./src/runtime.ts","sourcePath":"packages/platform/ui/overlay-engine/src/runtime.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/runtime.ts","sourceStatus":"verified source file"}]},{"subpath":"./signer","importPath":"@lssm-tech/lib.overlay-engine/signer","target":"./src/signer.ts","targets":[{"conditions":[],"target":"./src/signer.ts","sourcePath":"packages/platform/ui/overlay-engine/src/signer.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/signer.ts","sourceStatus":"verified source file"}]},{"subpath":"./spec","importPath":"@lssm-tech/lib.overlay-engine/spec","target":"./src/spec.ts","targets":[{"conditions":[],"target":"./src/spec.ts","sourcePath":"packages/platform/ui/overlay-engine/src/spec.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/spec.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/lib.overlay-engine/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/platform/ui/overlay-engine/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/types.ts","sourceStatus":"verified source file"}]},{"subpath":"./validator","importPath":"@lssm-tech/lib.overlay-engine/validator","target":"./src/validator.ts","targets":[{"conditions":[],"target":"./src/validator.ts","sourcePath":"packages/platform/ui/overlay-engine/src/validator.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/src/validator.ts","sourceStatus":"verified source file"}]}],"entryCount":10,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Overlay Engine documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.overlay-engine","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.overlay-engine.txt"},"readme":{"status":"available","body":"# @lssm-tech/lib.overlay-engine\n\nWebsite: https://contractspec.io\n\n**Runtime overlay engine for ContractSpec personalization and adaptive UI rendering.**\n\n## What It Provides\n\n- **Layer**: lib.\n- **Consumers**: personalization, example-shared-ui, bundles.\n- Related ContractSpec packages include `@lssm-tech/lib.contracts-spec`, `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.\n- Related ContractSpec packages include `@lssm-tech/lib.contracts-spec`, `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.\n\n## Installation\n\n`npm install @lssm-tech/lib.overlay-engine`\n\nor\n\n`bun add @lssm-tech/lib.overlay-engine`\n\n## Usage\n\nImport the root entrypoint from `@lssm-tech/lib.overlay-engine`, or choose a documented subpath when you only need one part of the package surface.\n\n## Architecture\n\n- `src/index.ts` is the root public barrel and package entrypoint.\n- `src/merger.ts` is part of the package's public or composition surface.\n- `src/react.ts` is part of the package's public or composition surface.\n- `src/registry.ts` is part of the package's public or composition surface.\n- `src/runtime.ts` is part of the package's public or composition surface.\n- `src/signer.ts` is part of the package's public or composition surface.\n- `src/spec.ts` is part of the package's public or composition surface.\n- `src/types.ts` is shared public type definitions.\n\n## Public Entry Points\n\n- Export `.` resolves through `./src/index.ts`.\n- Export `./merger` resolves through `./src/merger.ts`.\n- Export `./react` resolves through `./src/react.ts`.\n- Export `./registry` resolves through `./src/registry.ts`.\n- Export `./runtime` resolves through `./src/runtime.ts`.\n- Export `./signer` resolves through `./src/signer.ts`.\n- Export `./spec` resolves through `./src/spec.ts`.\n- Export `./types` resolves through `./src/types.ts`.\n- Export `./validator` resolves through `./src/validator.ts`.\n\n## Local Commands\n\n- `bun run dev` — contractspec-bun-build dev\n- `bun run build` — contractspec-bun-build build\n- `bun run test` — bun test --pass-with-no-tests\n- `bun run lint` — bun lint:fix\n- `bun run lint:check` — biome check .\n- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .\n- `bun run typecheck` — tsgo --noEmit\n- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose\n- `bun run publish:pkg:canary` — bun publish:pkg --tag canary\n- `bun run clean` — rimraf dist .turbo\n- `bun run build:bundle` — contractspec-bun-build transpile\n- `bun run build:types` — contractspec-bun-build types\n- `bun run prebuild` — contractspec-bun-build prebuild\n\n## Recent Updates\n\n- Replace eslint+prettier by biomejs to optimize speed.\n\n## Notes\n\n- Overlay spec schema is a contract — changes are breaking for all consumers.\n- Signer must preserve cryptographic integrity; do not alter signing algorithm without migration.\n- Merger logic must be idempotent — applying the same overlay twice must produce identical results.\n\n## Canonical portable contract ownership\n\nThe complete Overlay engine keeps its existing spec, registry, merger, signer,\nruntime and React interfaces. Its operation model, feature constructor and\nDocBlock type use the existing portable Core owner. This compatible ownership\ncut changes only the three contract imports and their declared dependency;\nsignature verification, canonicalization, scope order, merge order, errors,\ndefaults and audit callbacks retain their original implementations. All ten\nSource roots and their publication conditions remain unchanged. Task-bound\nadoption, fresh producer/declaration and affected consumer qualification are\nrequired before campaign acceptance; this Source candidate does not qualify\ncryptographic or runtime behavior.","sourcePath":"packages/platform/ui/overlay-engine/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/overlay-engine/README.md","blobSha":"3dfe8016619165655e83be67967e05b805364816","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"ui-and-presentations","areaTitle":"Interfaces, presentations and design","displayName":"lib.overlay-engine","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.overlay-engine/","contextUrl":"/docs/packages/lib.overlay-engine.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}