{"id":"@lssm-tech/lib.personalized-presentation","slug":"lib.personalized-presentation","name":"@lssm-tech/lib.personalized-presentation","version":"7.0.4","path":"packages/platform/ui/personalized-presentation","manifestPath":"packages/platform/ui/personalized-presentation/package.json","manifestBlobSha":"6a6a51aa3c58b35ee91c174c042158389e3f79a3","layer":"platform","physicalArea":"ui","primaryArea":"ui-and-presentations","classification":{"privateDeclared":null,"catalogFamily":"ui","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"stable"},"description":"Schema bridge, React provider and hook that resolve lib.personalization preferences and role variant overrides into cockpit-kit variant literals","descriptionOrigin":"package.json","catalog":{"family":"ui","kind":"library","status":"active","adoptionMode":"adoptable","stability":"stable","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./PersonalizedSurfaceProvider","./schema-bridge","./schema/_stubs/enrichedKinds","./schema/_stubs/panelMode","./schema/_stubs/perKindOptOut","./schema/_stubs/trigger","./schema/_stubs/verbosity","./schema/density","./schema/expansion","./use-personalized-variants","./variant-resolution"],"documentation":[{"title":"Lib Personalized Presentation documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.personalized-presentation","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.personalized.presentation","title":"Lib Personalized Presentation","description":"Schema bridge, React provider and hook that resolve lib.personalization preferences and role variant overrides into cockpit-kit variant literals","status":"active","useCases":["Adopt schema bridge, react provider and hook that resolve lib.personalization preferences and role variant overrides into cockpit-kit variant literals"],"aliases":["contractspec","personalization","cockpit","presentation","variants","react","typescript","lib","personalized"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.personalized-presentation","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/PersonalizedSurfaceProvider","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema-bridge","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/enrichedKinds","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/panelMode","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/perKindOptOut","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/trigger","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/verbosity","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema/density","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/schema/expansion","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/use-personalized-variants","symbols":[]},{"from":"@lssm-tech/lib.personalized-presentation/variant-resolution","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.personalized-presentation package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}],"visualTesting":{"status":"deferred","owner":"@contractspec-core","targetWave":"wave-3-react-packages","rationale":"Foundational Storybook adoption establishes shared catalogs and guardrails before this package migrates."}},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/PersonalizedSurfaceProvider","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema-bridge","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/enrichedKinds","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/panelMode","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/perKindOptOut","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/trigger","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema/_stubs/verbosity","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema/density","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/schema/expansion","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/use-personalized-variants","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personalized.presentation","from":"@lssm-tech/lib.personalized-presentation/variant-resolution","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"bun run prebuild && bun run build:bundle && bun run build:types","build:bundle":"contractspec-bun-build transpile --no-bundle","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.cockpit-kit":"workspace:^","@lssm-tech/lib.contracts-spec-core":"workspace:^"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","@lssm-tech/tool.bun":"workspace:*","@lssm-tech/lib.personalization":"workspace:*","typescript":"catalog:","react":"catalog:","@lssm-tech/lib.cockpit-kit-web":"workspace:*","react-dom":"catalog:"},"peerDependencies":{"@lssm-tech/lib.personalization":"workspace:^","react":"^19.2.8 || 19.2.3"},"optionalDependencies":{},"peerDependenciesMeta":{"@lssm-tech/lib.personalization":{"optional":false},"react":{"optional":false}},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./PersonalizedSurfaceProvider":"./src/PersonalizedSurfaceProvider.tsx","./schema-bridge":"./src/schema-bridge.ts","./schema/_stubs/enrichedKinds":"./src/schema/_stubs/enrichedKinds.ts","./schema/_stubs/panelMode":"./src/schema/_stubs/panelMode.ts","./schema/_stubs/perKindOptOut":"./src/schema/_stubs/perKindOptOut.ts","./schema/_stubs/trigger":"./src/schema/_stubs/trigger.ts","./schema/_stubs/verbosity":"./src/schema/_stubs/verbosity.ts","./schema/density":"./src/schema/density.ts","./schema/expansion":"./src/schema/expansion.ts","./use-personalized-variants":"./src/use-personalized-variants.ts","./variant-resolution":"./src/variant-resolution.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"},"./PersonalizedSurfaceProvider":{"types":"./dist/PersonalizedSurfaceProvider.d.ts","browser":"./dist/browser/PersonalizedSurfaceProvider.js","bun":"./dist/PersonalizedSurfaceProvider.js","node":"./dist/node/PersonalizedSurfaceProvider.js","default":"./dist/PersonalizedSurfaceProvider.js"},"./schema-bridge":{"types":"./dist/schema-bridge.d.ts","browser":"./dist/browser/schema-bridge.js","bun":"./dist/schema-bridge.js","node":"./dist/node/schema-bridge.js","default":"./dist/schema-bridge.js"},"./schema/_stubs/enrichedKinds":{"types":"./dist/schema/_stubs/enrichedKinds.d.ts","browser":"./dist/browser/schema/_stubs/enrichedKinds.js","bun":"./dist/schema/_stubs/enrichedKinds.js","node":"./dist/node/schema/_stubs/enrichedKinds.js","default":"./dist/schema/_stubs/enrichedKinds.js"},"./schema/_stubs/panelMode":{"types":"./dist/schema/_stubs/panelMode.d.ts","browser":"./dist/browser/schema/_stubs/panelMode.js","bun":"./dist/schema/_stubs/panelMode.js","node":"./dist/node/schema/_stubs/panelMode.js","default":"./dist/schema/_stubs/panelMode.js"},"./schema/_stubs/perKindOptOut":{"types":"./dist/schema/_stubs/perKindOptOut.d.ts","browser":"./dist/browser/schema/_stubs/perKindOptOut.js","bun":"./dist/schema/_stubs/perKindOptOut.js","node":"./dist/node/schema/_stubs/perKindOptOut.js","default":"./dist/schema/_stubs/perKindOptOut.js"},"./schema/_stubs/trigger":{"types":"./dist/schema/_stubs/trigger.d.ts","browser":"./dist/browser/schema/_stubs/trigger.js","bun":"./dist/schema/_stubs/trigger.js","node":"./dist/node/schema/_stubs/trigger.js","default":"./dist/schema/_stubs/trigger.js"},"./schema/_stubs/verbosity":{"types":"./dist/schema/_stubs/verbosity.d.ts","browser":"./dist/browser/schema/_stubs/verbosity.js","bun":"./dist/schema/_stubs/verbosity.js","node":"./dist/node/schema/_stubs/verbosity.js","default":"./dist/schema/_stubs/verbosity.js"},"./schema/density":{"types":"./dist/schema/density.d.ts","browser":"./dist/browser/schema/density.js","bun":"./dist/schema/density.js","node":"./dist/node/schema/density.js","default":"./dist/schema/density.js"},"./schema/expansion":{"types":"./dist/schema/expansion.d.ts","browser":"./dist/browser/schema/expansion.js","bun":"./dist/schema/expansion.js","node":"./dist/node/schema/expansion.js","default":"./dist/schema/expansion.js"},"./use-personalized-variants":{"types":"./dist/use-personalized-variants.d.ts","browser":"./dist/browser/use-personalized-variants.js","bun":"./dist/use-personalized-variants.js","node":"./dist/node/use-personalized-variants.js","default":"./dist/use-personalized-variants.js"},"./variant-resolution":{"types":"./dist/variant-resolution.d.ts","browser":"./dist/browser/variant-resolution.js","bun":"./dist/variant-resolution.js","node":"./dist/node/variant-resolution.js","default":"./dist/variant-resolution.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.personalized-presentation","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./PersonalizedSurfaceProvider","importPath":"@lssm-tech/lib.personalized-presentation/PersonalizedSurfaceProvider","target":"./src/PersonalizedSurfaceProvider.tsx","targets":[{"conditions":[],"target":"./src/PersonalizedSurfaceProvider.tsx","sourcePath":"packages/platform/ui/personalized-presentation/src/PersonalizedSurfaceProvider.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/PersonalizedSurfaceProvider.tsx","sourceStatus":"verified source file"}]},{"subpath":"./schema-bridge","importPath":"@lssm-tech/lib.personalized-presentation/schema-bridge","target":"./src/schema-bridge.ts","targets":[{"conditions":[],"target":"./src/schema-bridge.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema-bridge.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema-bridge.ts","sourceStatus":"verified source file"}]},{"subpath":"./schema/_stubs/enrichedKinds","importPath":"@lssm-tech/lib.personalized-presentation/schema/_stubs/enrichedKinds","target":"./src/schema/_stubs/enrichedKinds.ts","targets":[{"conditions":[],"target":"./src/schema/_stubs/enrichedKinds.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema/_stubs/enrichedKinds.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema/_stubs/enrichedKinds.ts","sourceStatus":"verified source file"}]},{"subpath":"./schema/_stubs/panelMode","importPath":"@lssm-tech/lib.personalized-presentation/schema/_stubs/panelMode","target":"./src/schema/_stubs/panelMode.ts","targets":[{"conditions":[],"target":"./src/schema/_stubs/panelMode.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema/_stubs/panelMode.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema/_stubs/panelMode.ts","sourceStatus":"verified source file"}]},{"subpath":"./schema/_stubs/perKindOptOut","importPath":"@lssm-tech/lib.personalized-presentation/schema/_stubs/perKindOptOut","target":"./src/schema/_stubs/perKindOptOut.ts","targets":[{"conditions":[],"target":"./src/schema/_stubs/perKindOptOut.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema/_stubs/perKindOptOut.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema/_stubs/perKindOptOut.ts","sourceStatus":"verified source file"}]},{"subpath":"./schema/_stubs/trigger","importPath":"@lssm-tech/lib.personalized-presentation/schema/_stubs/trigger","target":"./src/schema/_stubs/trigger.ts","targets":[{"conditions":[],"target":"./src/schema/_stubs/trigger.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema/_stubs/trigger.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema/_stubs/trigger.ts","sourceStatus":"verified source file"}]},{"subpath":"./schema/_stubs/verbosity","importPath":"@lssm-tech/lib.personalized-presentation/schema/_stubs/verbosity","target":"./src/schema/_stubs/verbosity.ts","targets":[{"conditions":[],"target":"./src/schema/_stubs/verbosity.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema/_stubs/verbosity.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema/_stubs/verbosity.ts","sourceStatus":"verified source file"}]},{"subpath":"./schema/density","importPath":"@lssm-tech/lib.personalized-presentation/schema/density","target":"./src/schema/density.ts","targets":[{"conditions":[],"target":"./src/schema/density.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema/density.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema/density.ts","sourceStatus":"verified source file"}]},{"subpath":"./schema/expansion","importPath":"@lssm-tech/lib.personalized-presentation/schema/expansion","target":"./src/schema/expansion.ts","targets":[{"conditions":[],"target":"./src/schema/expansion.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/schema/expansion.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/schema/expansion.ts","sourceStatus":"verified source file"}]},{"subpath":"./use-personalized-variants","importPath":"@lssm-tech/lib.personalized-presentation/use-personalized-variants","target":"./src/use-personalized-variants.ts","targets":[{"conditions":[],"target":"./src/use-personalized-variants.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/use-personalized-variants.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/use-personalized-variants.ts","sourceStatus":"verified source file"}]},{"subpath":"./variant-resolution","importPath":"@lssm-tech/lib.personalized-presentation/variant-resolution","target":"./src/variant-resolution.ts","targets":[{"conditions":[],"target":"./src/variant-resolution.ts","sourcePath":"packages/platform/ui/personalized-presentation/src/variant-resolution.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/src/variant-resolution.ts","sourceStatus":"verified source file"}]}],"entryCount":12,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Personalized Presentation documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.personalized-presentation","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.personalized-presentation.txt"},"readme":{"status":"available","body":"# @lssm-tech/lib.personalized-presentation\n\nSchema bridge, React provider and hook that resolve `lib.personalization`\npreferences and authored role overrides into `lib.cockpit-kit` variant literals.\n\n## Status\n\n**Phase 3** — wired dimensions: `density`, `expansion`. `usePersonalizedVariants`\nresolves them per component through the schema bridge and role overrides.\n\n## Installation\n\nThis package is an internal workspace package. Add it as a peer or direct\ndependency from within the monorepo:\n\n```json\n\"@lssm-tech/lib.personalized-presentation\": \"workspace:*\"\n```\n\n## Peer dependencies\n\n- `@lssm-tech/lib.cockpit-kit` — provides `Density` and `Expansion` variant types\n- `@lssm-tech/lib.personalization` — provides `PreferenceDimensions`\n- `react` — for the provider and hook\n\n## Usage\n\n### Provider\n\n```tsx\nimport {\n  PersonalizedSurfaceProvider,\n  type PersonalizedRoleVariants,\n} from \"@lssm-tech/lib.personalized-presentation\";\n\nconst roleVariants: PersonalizedRoleVariants = {\n  operator: { components: { NavRail: { expansion: \"collapsed\" } } },\n  executive: {\n    surface: { expansion: \"collapsed\" },\n    components: { MetricPanel: { density: \"comfortable\" } },\n  },\n};\n\nfunction App() {\n  return (\n    <PersonalizedSurfaceProvider\n      role={viewerRole}\n      prefs={userPrefs}\n      roleVariants={roleVariants}\n    >\n      <MyCockpitSurface />\n    </PersonalizedSurfaceProvider>\n  );\n}\n```\n\n`roleVariants` is optional. Each role entry may override variants for the whole\nsurface (`surface`) and per component key (`components`).\n\n### Hook\n\n```tsx\nimport { usePersonalizedVariants } from \"@lssm-tech/lib.personalized-presentation\";\nimport { NavRail, type NavRailProps } from \"@lssm-tech/lib.cockpit-kit-web/ui/NavRail\";\n\nfunction PersonalizedNavRail(props: NavRailProps) {\n  const variants = usePersonalizedVariants(\"NavRail\"); // { density, expansion }\n  return <NavRail {...props} {...variants} />;\n}\n```\n\nResolution order, lowest precedence first:\n\n1. `prefs` through the schema bridge (`density` from `prefs.density`,\n   `expansion` from `prefs.dataDepth`).\n2. `roleVariants[role].surface`.\n3. `roleVariants[role].components[componentKey]`.\n\nOverride values outside the cockpit-kit literal unions are ignored, so untyped\nrole configuration falls back to the preference mapping. Outside a provider the\nhook returns the cockpit-kit defaults (`comfortable`, `expanded`). The optional\ntype argument narrows the result and accepts only wired variants:\n`usePersonalizedVariants<{ density: Density }>(\"Row\")` returns `{ density }`.\n\nUse `resolvePersonalizedVariants({ role, prefs, componentKey, roleVariants })`\nfrom `./variant-resolution` for the same resolution outside React.\n\n### Schema bridge (direct mapper access)\n\n```ts\nimport {\n  density,\n  expansion,\n  mapPreferencesToVariants,\n} from \"@lssm-tech/lib.personalized-presentation/schema-bridge\";\n\nconst cockpitDensity = density(\"compact\");   // → \"compact\"\nconst cockpitExpansion = expansion(\"detailed\"); // → \"expanded\"\nconst variants = mapPreferencesToVariants(userPrefs); // → { density, expansion }\n```\n\n## Dependency direction\n\n```\npersonalized-presentation → cockpit-kit\npersonalized-presentation → personalization\n```\n\n`cockpit-kit` and `personalization` must NOT depend on this package.\n\n## Wired dimensions\n\n| Dimension | Input type | Output type |\n|-----------|-----------|-------------|\n| density | `PreferenceDimensions[\"density\"]` | `Density` |\n| expansion | `PreferenceDimensions[\"dataDepth\"]` | `Expansion` |\n\nAll other dimensions (`verbosity`, `trigger`, `panelMode`, `enrichedKinds`,\n`perKindOptOut`) are stub-protected and will throw at runtime if called.\n","sourcePath":"packages/platform/ui/personalized-presentation/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/ui/personalized-presentation/README.md","blobSha":"baa47b4f2dcadc5a222687f127a39c710891348e","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.personalized-presentation","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.personalized-presentation/","contextUrl":"/docs/packages/lib.personalized-presentation.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}