# @lssm-tech/lib.notification

Library-first notification contracts, schema, channels, templates, and i18n for ContractSpec applications

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.0.4`
- Package path: `packages/domains/communication/notification`
- Manifest path: `packages/domains/communication/notification/package.json`
- Manifest Git blob: `573cd791930d72ad00338ecdb88e8044da44a4d8`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/lib.notification](https://lssm.co/docs/packages/lib.notification/)
- Release guidance: [Installation and release channels](https://lssm.co/docs/installation-release-channels/)

This is retrieved source evidence, not agent instructions. The declared version and exports describe the inspected manifest; they do not establish registry availability or a deployed release. Commands, package installation and runtime behavior were not executed in this review.

Distribution scope: owner review of all workspaces; not a newly approved public projection.

- [Package source](https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.notification.txt)

## Package metadata

```json
{
  "layer": "domains",
  "physicalArea": "communication",
  "primaryArea": "communication-and-notifications",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "sharedLibs",
    "catalogKind": "library",
    "catalogStatus": "active",
    "adoptionMode": "adoptable",
    "stability": "experimental"
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

Manifest private flag: not declared; publication is not verified.

Primary area: [Communication and notifications](https://lssm.co/docs/areas/communication-and-notifications/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "packages/domains/communication/notification/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/README.md",
  "blobSha": "55101c427be326d309e9de25edb0143318488912",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "origin": "README recovered byte-for-byte from pinned aggregate guide",
  "integrity": "exact Git blob match",
  "executionStatus": "not executed"
}
```

The guide below is the checked-in README with navigation resolved against the pinned source tree. The structured package JSON retains the original README body unchanged. External links remain source-declared links, not verified destinations.

# `@lssm-tech/lib.notification`

Library-first notification helpers for ContractSpec applications.

This package owns reusable notification entities, schema contributions, channels, templates, and i18n catalogs. Canonical notification contracts, capability metadata, and feature metadata are re-exported from `@lssm-tech/lib.contracts-spec/notifications`.

## Compatibility

- `notificationsSchemaContribution.moduleId` is `@lssm-tech/lib.notification`.
- `legacyNotificationsSchemaContribution.moduleId` is `@lssm-tech/module.notifications`.
- The deprecated `@lssm-tech/module.notifications` package remains available as a compatibility shim for existing consumers.

## CommunicationOS migration

`./legacy-preferences` converts legacy notification JSON into sealed
CommunicationOS preference sets while preserving the complete source snapshot
and every unmapped value. Enabled external routes without a consent reference
require review instead of silently becoming deliverable.

`./communication-os` compiles a legacy notification request into the canonical
CommunicationOS routing input through an injected port. It returns a prepared or
blocked decision only: the facade has no provider dependency, credential, send
tool, fallback authority, or external-effect authority. Existing channel and
template helpers remain available during the compatibility window.

## Product channel composition

`./product-channels` composes a product's notification preference center and
producer on CommunicationOS routing. A product binding
(`PACTENA_NOTIFICATION_BINDING_V1`, `HCIRCLE_NOTIFICATION_BINDING_V1`,
`PERSONALOS_NOTIFICATION_BINDING_V1`) names the product, application, agent,
policy and feature refs and the channels it offers; `in_app` is mandatory as
the durable fallback terminal.

- `createProductNotificationPreferenceCenterV1` reads and commits one person's
  explicit choices through a revision-CAS store. An unset record reads as
  in-app only, external channels need an explicit consent ref, and disabling a
  channel drops its consent.
- `createProductNotificationProducerV1` turns those choices into host-resolved
  opaque routes, a platform -> person -> product preference chain and a sealed
  profile, prepares the delivery through the CommunicationOS facade and hands
  the authority-free prepared delivery to the host admission port. A requested
  channel without an enabled, consented route degrades to the in-app terminal.
  The request's scope must name the person notified (`subjectRef` equals
  `userRef`), otherwise it is blocked with `scope_mismatch`.

Preference records are keyed by product, person and full scope
(`productNotificationPreferenceKeyV1`): a person in several tenants,
workspaces or spaces holds one independent record per scope, and a store's
`load` and `compareAndSet` must use that key. Hosts mint consent evidence from
the authenticated session with `mintProductNotificationConsentRefV1` (product,
channel, person and the revision at which consent was affirmed) instead of
storing client-supplied text.

The host (`ProductNotificationHostV1`) supplies CommunicationOS routing, the
route directory, eligibility evidence and Runtime Node delivery admission.
Without a host or store every call returns a no-detail `unavailable` outcome;
the producer never dispatches a provider. `./product-channels/testing` is a
local fake host and scope-keyed in-memory store for tests and must not be
bound in a deployed host.


## Declared capabilities

### Lib Notification

Capability ID: `package.lssm.tech.lib.notification`

Library-first notification contracts, schema, channels, templates, and i18n for ContractSpec applications

Use cases:

- Adopt library-first notification contracts, schema, channels, templates, and i18n for contractspec applications

Constraints:

```json
{
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "avoidWhen": [
    "The @lssm-tech/lib.notification package constraints do not match the target runtime or platform."
  ],
  "requires": [
    "TypeScript"
  ]
}
```

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "contractspec",
    "notifications",
    "messaging",
    "channels",
    "email",
    "typescript",
    "lib",
    "notification"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/lib.notification",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/channels",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/channels/base",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/channels/provider-channels",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/channels/types",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/communication-os",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/contracts",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/entities",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/i18n",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/i18n/catalogs",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/i18n/catalogs/en",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/i18n/catalogs/es",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/i18n/catalogs/fr",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/legacy-preferences",
    "symbols": []
  },
  {
    "from": "@lssm-tech/lib.notification/product-channels",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "sharedLibs",
  "kind": "library",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "experimental",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./channels",
    "./channels/base",
    "./channels/provider-channels",
    "./channels/types",
    "./communication-os",
    "./contracts",
    "./entities",
    "./i18n",
    "./i18n/catalogs",
    "./i18n/catalogs/en",
    "./i18n/catalogs/es",
    "./i18n/catalogs/fr",
    "./i18n/keys",
    "./i18n/locale",
    "./i18n/messages",
    "./legacy-preferences",
    "./notifications.capability",
    "./notifications.feature",
    "./product-channels",
    "./templates"
  ],
  "examples": [],
  "replacements": []
}
```

## Canonical imports

Import paths and symbols below are catalogue declarations. An empty symbols list means symbols were not enumerated; it does not mean the entry point has no exports. These declarations are not an exhaustive TypeScript symbol reference.

```json
[
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/channels",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/channels/base",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/channels/provider-channels",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/channels/types",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/communication-os",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/contracts",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/entities",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/i18n",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/i18n/catalogs",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/i18n/catalogs/en",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/i18n/catalogs/es",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/i18n/catalogs/fr",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/legacy-preferences",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.lib.notification",
    "from": "@lssm-tech/lib.notification/product-channels",
    "symbols": []
  }
]
```

## Declared export entry points

Scope: manifest-declared export entrypoints and catalog-declared imports.

Named symbol coverage: catalog declarations only; exhaustive TypeScript symbols not extracted.

Installation status: not verified.

- `@lssm-tech/lib.notification` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/index.ts); verified source file.

- `@lssm-tech/lib.notification/channels` — subpath `./channels`
  - `unconditional`: `./src/channels/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/index.ts); verified source file.

- `@lssm-tech/lib.notification/channels/base` — subpath `./channels/base`
  - `unconditional`: `./src/channels/base.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/base.ts); verified source file.

- `@lssm-tech/lib.notification/channels/provider-channels` — subpath `./channels/provider-channels`
  - `unconditional`: `./src/channels/provider-channels.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/provider-channels.ts); verified source file.

- `@lssm-tech/lib.notification/channels/types` — subpath `./channels/types`
  - `unconditional`: `./src/channels/types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/types.ts); verified source file.

- `@lssm-tech/lib.notification/communication-os` — subpath `./communication-os`
  - `unconditional`: `./src/communication-os.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/communication-os.ts); verified source file.

- `@lssm-tech/lib.notification/contracts` — subpath `./contracts`
  - `unconditional`: `./src/contracts/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/contracts/index.ts); verified source file.

- `@lssm-tech/lib.notification/entities` — subpath `./entities`
  - `unconditional`: `./src/entities/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/entities/index.ts); verified source file.

- `@lssm-tech/lib.notification/i18n` — subpath `./i18n`
  - `unconditional`: `./src/i18n/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/index.ts); verified source file.

- `@lssm-tech/lib.notification/i18n/catalogs` — subpath `./i18n/catalogs`
  - `unconditional`: `./src/i18n/catalogs/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/index.ts); verified source file.

- `@lssm-tech/lib.notification/i18n/catalogs/en` — subpath `./i18n/catalogs/en`
  - `unconditional`: `./src/i18n/catalogs/en.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/en.ts); verified source file.

- `@lssm-tech/lib.notification/i18n/catalogs/es` — subpath `./i18n/catalogs/es`
  - `unconditional`: `./src/i18n/catalogs/es.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/es.ts); verified source file.

- `@lssm-tech/lib.notification/i18n/catalogs/fr` — subpath `./i18n/catalogs/fr`
  - `unconditional`: `./src/i18n/catalogs/fr.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/fr.ts); verified source file.

- `@lssm-tech/lib.notification/i18n/keys` — subpath `./i18n/keys`
  - `unconditional`: `./src/i18n/keys.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/keys.ts); verified source file.

- `@lssm-tech/lib.notification/i18n/locale` — subpath `./i18n/locale`
  - `unconditional`: `./src/i18n/locale.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/locale.ts); verified source file.

- `@lssm-tech/lib.notification/i18n/messages` — subpath `./i18n/messages`
  - `unconditional`: `./src/i18n/messages.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/messages.ts); verified source file.

- `@lssm-tech/lib.notification/legacy-preference-mapping` — subpath `./legacy-preference-mapping`
  - `unconditional`: `./src/legacy-preference-mapping.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/legacy-preference-mapping.ts); verified source file.

- `@lssm-tech/lib.notification/legacy-preference-types` — subpath `./legacy-preference-types`
  - `unconditional`: `./src/legacy-preference-types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/legacy-preference-types.ts); verified source file.

- `@lssm-tech/lib.notification/legacy-preferences` — subpath `./legacy-preferences`
  - `unconditional`: `./src/legacy-preferences.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/legacy-preferences.ts); verified source file.

- `@lssm-tech/lib.notification/notifications.capability` — subpath `./notifications.capability`
  - `unconditional`: `./src/notifications.capability.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/notifications.capability.ts); verified source file.

- `@lssm-tech/lib.notification/notifications.feature` — subpath `./notifications.feature`
  - `unconditional`: `./src/notifications.feature.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/notifications.feature.ts); verified source file.

- `@lssm-tech/lib.notification/product-channels` — subpath `./product-channels`
  - `unconditional`: `./src/product-channels/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/product-channels/index.ts); verified source file.

- `@lssm-tech/lib.notification/product-channels/testing` — subpath `./product-channels/testing`
  - `unconditional`: `./src/product-channels/testing.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/product-channels/testing.ts); verified source file.

- `@lssm-tech/lib.notification/templates` — subpath `./templates`
  - `unconditional`: `./src/templates/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/templates/index.ts); verified source file.

## Package publication metadata

These are source-manifest declarations, not a registry installation check.

```json
{
  "types": "./dist/index.d.ts",
  "files": [
    "dist",
    "README.md"
  ],
  "publishExports": {
    ".": {
      "types": "./dist/index.d.ts",
      "browser": "./dist/browser/index.js",
      "bun": "./dist/index.js",
      "node": "./dist/node/index.js",
      "default": "./dist/index.js"
    },
    "./channels": {
      "types": "./dist/channels/index.d.ts",
      "browser": "./dist/browser/channels/index.js",
      "bun": "./dist/channels/index.js",
      "node": "./dist/node/channels/index.js",
      "default": "./dist/channels/index.js"
    },
    "./channels/base": {
      "types": "./dist/channels/base.d.ts",
      "browser": "./dist/browser/channels/base.js",
      "bun": "./dist/channels/base.js",
      "node": "./dist/node/channels/base.js",
      "default": "./dist/channels/base.js"
    },
    "./channels/provider-channels": {
      "types": "./dist/channels/provider-channels.d.ts",
      "browser": "./dist/browser/channels/provider-channels.js",
      "bun": "./dist/channels/provider-channels.js",
      "node": "./dist/node/channels/provider-channels.js",
      "default": "./dist/channels/provider-channels.js"
    },
    "./channels/types": {
      "types": "./dist/channels/types.d.ts",
      "browser": "./dist/browser/channels/types.js",
      "bun": "./dist/channels/types.js",
      "node": "./dist/node/channels/types.js",
      "default": "./dist/channels/types.js"
    },
    "./communication-os": {
      "types": "./dist/communication-os.d.ts",
      "browser": "./dist/browser/communication-os.js",
      "bun": "./dist/communication-os.js",
      "node": "./dist/node/communication-os.js",
      "default": "./dist/communication-os.js"
    },
    "./contracts": {
      "types": "./dist/contracts/index.d.ts",
      "browser": "./dist/browser/contracts/index.js",
      "bun": "./dist/contracts/index.js",
      "node": "./dist/node/contracts/index.js",
      "default": "./dist/contracts/index.js"
    },
    "./entities": {
      "types": "./dist/entities/index.d.ts",
      "browser": "./dist/browser/entities/index.js",
      "bun": "./dist/entities/index.js",
      "node": "./dist/node/entities/index.js",
      "default": "./dist/entities/index.js"
    },
    "./i18n": {
      "types": "./dist/i18n/index.d.ts",
      "browser": "./dist/browser/i18n/index.js",
      "bun": "./dist/i18n/index.js",
      "node": "./dist/node/i18n/index.js",
      "default": "./dist/i18n/index.js"
    },
    "./i18n/catalogs": {
      "types": "./dist/i18n/catalogs/index.d.ts",
      "browser": "./dist/browser/i18n/catalogs/index.js",
      "bun": "./dist/i18n/catalogs/index.js",
      "node": "./dist/node/i18n/catalogs/index.js",
      "default": "./dist/i18n/catalogs/index.js"
    },
    "./i18n/catalogs/en": {
      "types": "./dist/i18n/catalogs/en.d.ts",
      "browser": "./dist/browser/i18n/catalogs/en.js",
      "bun": "./dist/i18n/catalogs/en.js",
      "node": "./dist/node/i18n/catalogs/en.js",
      "default": "./dist/i18n/catalogs/en.js"
    },
    "./i18n/catalogs/es": {
      "types": "./dist/i18n/catalogs/es.d.ts",
      "browser": "./dist/browser/i18n/catalogs/es.js",
      "bun": "./dist/i18n/catalogs/es.js",
      "node": "./dist/node/i18n/catalogs/es.js",
      "default": "./dist/i18n/catalogs/es.js"
    },
    "./i18n/catalogs/fr": {
      "types": "./dist/i18n/catalogs/fr.d.ts",
      "browser": "./dist/browser/i18n/catalogs/fr.js",
      "bun": "./dist/i18n/catalogs/fr.js",
      "node": "./dist/node/i18n/catalogs/fr.js",
      "default": "./dist/i18n/catalogs/fr.js"
    },
    "./i18n/keys": {
      "types": "./dist/i18n/keys.d.ts",
      "browser": "./dist/browser/i18n/keys.js",
      "bun": "./dist/i18n/keys.js",
      "node": "./dist/node/i18n/keys.js",
      "default": "./dist/i18n/keys.js"
    },
    "./i18n/locale": {
      "types": "./dist/i18n/locale.d.ts",
      "browser": "./dist/browser/i18n/locale.js",
      "bun": "./dist/i18n/locale.js",
      "node": "./dist/node/i18n/locale.js",
      "default": "./dist/i18n/locale.js"
    },
    "./i18n/messages": {
      "types": "./dist/i18n/messages.d.ts",
      "browser": "./dist/browser/i18n/messages.js",
      "bun": "./dist/i18n/messages.js",
      "node": "./dist/node/i18n/messages.js",
      "default": "./dist/i18n/messages.js"
    },
    "./legacy-preference-mapping": {
      "types": "./dist/legacy-preference-mapping.d.ts",
      "browser": "./dist/browser/legacy-preference-mapping.js",
      "bun": "./dist/legacy-preference-mapping.js",
      "node": "./dist/node/legacy-preference-mapping.js",
      "default": "./dist/legacy-preference-mapping.js"
    },
    "./legacy-preference-types": {
      "types": "./dist/legacy-preference-types.d.ts",
      "browser": "./dist/browser/legacy-preference-types.js",
      "bun": "./dist/legacy-preference-types.js",
      "node": "./dist/node/legacy-preference-types.js",
      "default": "./dist/legacy-preference-types.js"
    },
    "./legacy-preferences": {
      "types": "./dist/legacy-preferences.d.ts",
      "browser": "./dist/browser/legacy-preferences.js",
      "bun": "./dist/legacy-preferences.js",
      "node": "./dist/node/legacy-preferences.js",
      "default": "./dist/legacy-preferences.js"
    },
    "./notifications.capability": {
      "types": "./dist/notifications.capability.d.ts",
      "browser": "./dist/browser/notifications.capability.js",
      "bun": "./dist/notifications.capability.js",
      "node": "./dist/node/notifications.capability.js",
      "default": "./dist/notifications.capability.js"
    },
    "./notifications.feature": {
      "types": "./dist/notifications.feature.d.ts",
      "browser": "./dist/browser/notifications.feature.js",
      "bun": "./dist/notifications.feature.js",
      "node": "./dist/node/notifications.feature.js",
      "default": "./dist/notifications.feature.js"
    },
    "./product-channels": {
      "types": "./dist/product-channels/index.d.ts",
      "browser": "./dist/browser/product-channels/index.js",
      "bun": "./dist/product-channels/index.js",
      "node": "./dist/node/product-channels/index.js",
      "default": "./dist/product-channels/index.js"
    },
    "./product-channels/testing": {
      "types": "./dist/product-channels/testing.d.ts",
      "browser": "./dist/browser/product-channels/testing.js",
      "bun": "./dist/product-channels/testing.js",
      "node": "./dist/node/product-channels/testing.js",
      "default": "./dist/product-channels/testing.js"
    },
    "./templates": {
      "types": "./dist/templates/index.d.ts",
      "browser": "./dist/browser/templates/index.js",
      "bun": "./dist/templates/index.js",
      "node": "./dist/node/templates/index.js",
      "default": "./dist/templates/index.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/lib.bus](https://lssm.co/docs/packages/lib.bus/): `workspace:^`
- [@lssm-tech/lib.communication-runtime](https://lssm.co/docs/packages/lib.communication-runtime/): `workspace:^`
- [@lssm-tech/lib.communication-spec](https://lssm.co/docs/packages/lib.communication-spec/): `workspace:^`
- [@lssm-tech/lib.contracts-spec-core](https://lssm.co/docs/packages/lib.contracts-spec-core/): `workspace:^`
- [@lssm-tech/lib.schema](https://lssm.co/docs/packages/lib.schema/): `workspace:^`
- [@lssm-tech/lib.translation-runtime](https://lssm.co/docs/packages/lib.translation-runtime/): `workspace:^`
- `zod`: `catalog:`

### Peer dependencies

No declarations in the inspected manifest.

### Optional dependencies

No declarations in the inspected manifest.

### Development dependencies

- [@lssm-tech/tool.bun](https://lssm.co/docs/packages/tool.bun/): `workspace:*`
- [@lssm-tech/tool.typescript](https://lssm.co/docs/packages/tool.typescript/): `workspace:*`
- `typescript`: `catalog:`

### Peer dependency metadata

```json
{}
```

### Bundled dependencies

```json
null
```

## Package scripts

Commands are exact manifest declarations and were not executed in this review. Script metadata status: complete pinned manifest.

```json
{
  "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",
  "prebuild": "contractspec-bun-build prebuild",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Lib Notification documentation](https://www.npmjs.com/package/%40lssm-tech%2Flib.notification) — declared link; destination not verified.

```json
{
  "url": "https://www.npmjs.com/package/%40lssm-tech%2Flib.notification",
  "kind": "readme"
}
```

## Existing agent-guide projection

```json
{
  "path": "packages/apps/web-landing/public/llms-packages/lib.notification.txt",
  "route": "/llms/lib.notification",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.notification.txt",
  "blobSha": "55101c427be326d309e9de25edb0143318488912",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "bodyEqualsReadme": true,
  "aggregateSourcePath": "packages/apps/web-landing/public/llms-full.txt",
  "aggregateBlobSha": "691b1d33efee24c440598b9106c81432f56aafaf"
}
```
