# @lssm-tech/integration.provider-meeting-recorder

Meeting recorder provider implementations for ContractSpec.

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.1.4`
- Package path: `packages/integrations/provider-meeting-recorder`
- Manifest path: `packages/integrations/provider-meeting-recorder/package.json`
- Manifest Git blob: `c30d36697c874be68488cbe344f6934f2ece802f`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/integration.provider-meeting-recorder](https://lssm.co/docs/packages/integration.provider-meeting-recorder/)
- 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/integrations/provider-meeting-recorder)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.provider-meeting-recorder.txt)

## Package metadata

```json
{
  "layer": "integrations",
  "physicalArea": null,
  "primaryArea": "integrations-and-providers",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "integrations",
    "catalogKind": "integration",
    "catalogStatus": "active",
    "adoptionMode": "adoptable",
    "stability": "experimental"
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

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

Primary area: [Integrations and provider selection](https://lssm.co/docs/areas/integrations-and-providers/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "packages/integrations/provider-meeting-recorder/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/README.md",
  "blobSha": "c1913d20c7e3ca14ea73afbb813056af3a643d30",
  "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/integration.provider-meeting-recorder

Website: https://contractspec.io

Meeting recorder provider implementations for ContractSpec.

## Authorized bot capture

`AttendeeMeetingCaptureProvider` supports Google Meet and Microsoft Teams through
either a managed or customer-operated Attendee origin. Configure `baseUrl` before
the `/api/v1` suffix, a server-only secret callback, the webhook URL, licensing
and EU-processing references, and a mandatory current-authority callback. These
references are configuration, not proof of commercial or residency approval.

The adapter supports start/read/pause/resume/stop, transcript retrieval, media
deletion and deduplication-key reconciliation. It never retries a POST. An
ambiguous create requires reconciliation; a null lookup is not proof of absence.
Callbacks use `verifyAttendeeCaptureWebhook`; hosts must persist event IDs and
digests and verify the provider/capture mapping before changing domain state.

No native client, provider account or production capture host is enabled by
importing this adapter. Keep returned provider identifiers and transcript text
out of public logs and analytics.

## Usage

Import the root entrypoint for the domain surface, or import a concrete implementation from the `./impls/*` subpaths.

## Governed meeting intake

Granola and Fireflies are concrete reviewed sources. Fireflies requires a
non-empty server credential, HTTPS GraphQL endpoint, bounded page size, and an
optional signed webhook secret. Its fetch injection exists for server adapters
and deterministic tests; browser code must never construct provider clients.

`./meeting-intake-binding` composes any `CalendarProvider` with any
`MeetingRecorderProvider`. It reads a bounded time window, hydrates recorder
summaries, matches only digested calendar/participant evidence, and invokes a
host-owned governed recorder-binding operation only for one unambiguous match
at or above the automatic confidence threshold. Weak, tied, and missing matches
must be durably routed through the required review port; they never bind by
default.

The binding caps windows, pages, and candidates, rejects repeated provider
cursors, prevents one recorder meeting from binding twice in a cycle, and emits
content-free counters. Hosts still own selected-calendar authority, consent,
credential resolution, durable occurrence lookup, review persistence, and the
`opa.recording.source_bind` authority/transaction boundary.

## Granola notes and transcripts

`GranolaMeetingRecorderProvider` reads the public API or MCP with exact note
identity: `get_meetings` is called with `meeting_ids`, and a payload that does
not contain the requested ID yields `granola_not_found` (no substring or
first-result fallback). Requests have a deadline (`timeoutMs`, default 20s) and
response bodies are validated. Failures are `GranolaProviderError` codes
without provider bodies (`granola_entitlement_denied`,
`granola_transcript_unavailable`, `granola_rate_limited`, ...).

Set `transcriptRoute: 'paged'` for durable ingestion: the adapter traverses the
note's transcript pages and holds a repeated cursor, missing page, foreign note
or oversized transcript as an explicit error instead of returning a partial
transcript. `speaker.source` is the audio channel (`metadata.audioChannel`),
never a person; invitees come only from the calendar event; Granola attendee
metadata is `metadata.knownParticipants` (attendance unverified); absent times
stay absent. The paged route shape and webhook signing scheme are fixture
contracts until live Granola qualification passes.

## Shared recorder behavior

All four recorder providers (Fathom, Fireflies, Granola, tl;dv) work the same way in three areas:

- **Transcripts.** `getTranscript()` returns normalized segments: `startMs`/`endMs` in milliseconds from the start of the transcript, or `null` when unknown, plus `speaker { providerSpeakerId, displayName, email, channel }`. The legacy `speaker*` and `start/endTimeMs` fields hold the same values.
- **Webhooks.** `verifyMeetingRecorderWebhook(provider, { request, secret })` returns `{ ok: true, event } | { ok: false, reason }`. Fathom uses Standard Webhooks and Fireflies uses a hex HMAC. Granola and tl;dv are polling-only (`webhook_unsupported`; see `meetingRecorderCapabilities`). A verified event only names a record to re-fetch.
- **Retries.** `withRecorderRetry` retries idempotent reads on 429/503, with at most 3 attempts and Retry-After or jittered backoff. A final 429 becomes `MeetingRecorderRateLimitedError` (`recorder_rate_limited`).

## Meeting evidence ingestion

`./meeting-evidence-ingestion` stores calendar events, provider notes, provider
summaries and transcripts as separate account-scoped evidence records
(`authority: 'evidence_only'`) through `MeetingEvidenceStorePort`. Each record
carries tenant, connector account, context, workspace, entitlement and exact
external ID. Runs are incremental (cursor plus 24h overlap, 31-day window cap),
idempotent (content-digest revisions) and record explicit freshness; use
`evaluateMeetingSourceFreshness` to report `fresh`, `stale`, `failing`,
`disconnected` or `never_synced`. A transcript-disabled plan is recorded as an
`unavailable` transcript; an earlier complete transcript is held, not replaced.

`./meeting-evidence-webhook` verifies signed recorder hooks and accepts them
through a durable receipt port before reconciling the one exact note. Hooks are
hints, never evidence; periodic ingestion covers missed deliveries.

## Compatibility

This package owns the meeting-recorder implementation slice split out of `@lssm-tech/integration.providers-impls`. The legacy package continues to re-export these subpaths for existing consumers.


Bot capture authority receives the exact attempted request: start includes its immutable meeting URL/media/schedule intent; existing-bot actions include providerCaptureId; reconciliation includes the durable idempotencyKey. The host must compare these supplied values with its owner-scoped persisted capture ledger before invoking the effect. Supplied values are evidence to verify, never authority. Attendee snapshots start/reconcile inputs before asynchronous authorization. This contract does not install a permissive default or constitute deployment qualification.


Attendee transcript normalization accepts both the upstream README's plain-string transcription field and structured transcript envelopes, retaining validated timing/speaker fields and rejecting malformed non-text values. Ended calls remain processing until recording and transcription are complete; deleted calls never advertise either readiness flag. These are adapter semantics, not proof of deployed processing completion.


Attendee webhook canonicalization serializes sorted keys directly using Unicode code-point order. It does not rebuild a JavaScript object, which would reorder integer-like keys before signing. A Python-generated fixture covers accented text, numeric keys and supplementary Unicode ordering. Numeric lexemes are preserved from the raw delivered JSON, including Python float/exponent/negative-zero forms; duplicate keys and unsafe decoded integers are rejected. Deployed-version callback compatibility still requires qualification; hosts must persist replay IDs and validate capture mappings.

Attendee HTTP failures map to closed codes: `401` is `meeting_capture_unauthorized` (revoked or wrong API key; hosts must alert and retry, never treat it as "already gone"), other `4xx` are `meeting_capture_rejected`, `429`/`5xx` are `meeting_capture_unavailable`, and a failed `POST` is `meeting_capture_ambiguous`.


Bot reconciliation provider reads default to a 30-second deadline (maximum 60 seconds), shorter than the job lease. The worker passes an AbortSignal and rejects late results even if a provider ignores it. Shutdown before claim consumes no attempt; cancellation during finalization prevents apply. Attendee get accepts the optional signal, combines it with its transport timeout, and checks cancellation before and after secret resolution. Host read adapters must forward the worker signal.


Attendee transport deadlines now bound secret lookup, network response and body consumption even when injected operations ignore cancellation. Body cancellation is best-effort and never awaited. Late responses are discarded; successful POSTs with unusable bodies remain ambiguous and must be reconciled rather than blindly repeated. The transport cannot guarantee an ignored network abort prevented a bot from starting.


## Declared capabilities

### Integration Provider Meeting Recorder

Capability ID: `package.lssm.tech.integration.provider.meeting.recorder`

Meeting recorder provider implementations for ContractSpec.

Use cases:

- Adopt meeting recorder provider implementations for contractspec

Constraints:

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

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "integration",
    "provider",
    "meeting",
    "recorder"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.mapper",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.types",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.utils",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.webhooks",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.queries",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.types",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.utils",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "integrations",
  "kind": "integration",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "experimental",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./impls",
    "./impls/fathom-meeting-recorder",
    "./impls/fathom-meeting-recorder.mapper",
    "./impls/fathom-meeting-recorder.types",
    "./impls/fathom-meeting-recorder.utils",
    "./impls/fathom-meeting-recorder.webhooks",
    "./impls/fireflies-meeting-recorder",
    "./impls/fireflies-meeting-recorder.queries",
    "./impls/fireflies-meeting-recorder.types",
    "./impls/fireflies-meeting-recorder.utils",
    "./impls/granola-meeting-recorder",
    "./impls/granola-meeting-recorder.mcp",
    "./impls/granola-meeting-recorder.types",
    "./impls/tldv-meeting-recorder",
    "./meeting-recorder",
    "./meeting-intake-binding",
    "./meeting-recorder-binding",
    "./meeting-evidence",
    "./meeting-evidence-ingestion",
    "./meeting-evidence-webhook"
  ],
  "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.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.mapper",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.types",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.utils",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.webhooks",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.queries",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.types",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.utils",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.provider.meeting.recorder",
    "from": "@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder",
    "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/integration.provider-meeting-recorder` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/index.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls` — subpath `./impls`
  - `unconditional`: `./src/impls/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/index.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-canonical-json` — subpath `./impls/attendee-canonical-json`
  - `unconditional`: `./src/impls/attendee-canonical-json.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-canonical-json.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-capture-cancellation` — subpath `./impls/attendee-capture-cancellation`
  - `unconditional`: `./src/impls/attendee-capture-cancellation.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-capture-cancellation.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-capture-mappers` — subpath `./impls/attendee-capture-mappers`
  - `unconditional`: `./src/impls/attendee-capture-mappers.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-capture-mappers.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-capture-recording` — subpath `./impls/attendee-capture-recording`
  - `unconditional`: `./src/impls/attendee-capture-recording.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-capture-recording.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-capture-transport` — subpath `./impls/attendee-capture-transport`
  - `unconditional`: `./src/impls/attendee-capture-transport.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-capture-transport.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-capture-webhook` — subpath `./impls/attendee-capture-webhook`
  - `unconditional`: `./src/impls/attendee-capture-webhook.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-capture-webhook.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-meeting-capture` — subpath `./impls/attendee-meeting-capture`
  - `unconditional`: `./src/impls/attendee-meeting-capture.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-meeting-capture.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/attendee-recorded-fixtures` — subpath `./impls/attendee-recorded-fixtures`
  - `unconditional`: `./src/impls/attendee-recorded-fixtures.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/attendee-recorded-fixtures.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder` — subpath `./impls/fathom-meeting-recorder`
  - `unconditional`: `./src/impls/fathom-meeting-recorder.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fathom-meeting-recorder.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.mapper` — subpath `./impls/fathom-meeting-recorder.mapper`
  - `unconditional`: `./src/impls/fathom-meeting-recorder.mapper.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fathom-meeting-recorder.mapper.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.types` — subpath `./impls/fathom-meeting-recorder.types`
  - `unconditional`: `./src/impls/fathom-meeting-recorder.types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fathom-meeting-recorder.types.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.utils` — subpath `./impls/fathom-meeting-recorder.utils`
  - `unconditional`: `./src/impls/fathom-meeting-recorder.utils.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fathom-meeting-recorder.utils.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.webhook-verify` — subpath `./impls/fathom-meeting-recorder.webhook-verify`
  - `unconditional`: `./src/impls/fathom-meeting-recorder.webhook-verify.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fathom-meeting-recorder.webhook-verify.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fathom-meeting-recorder.webhooks` — subpath `./impls/fathom-meeting-recorder.webhooks`
  - `unconditional`: `./src/impls/fathom-meeting-recorder.webhooks.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fathom-meeting-recorder.webhooks.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder` — subpath `./impls/fireflies-meeting-recorder`
  - `unconditional`: `./src/impls/fireflies-meeting-recorder.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fireflies-meeting-recorder.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.mapper` — subpath `./impls/fireflies-meeting-recorder.mapper`
  - `unconditional`: `./src/impls/fireflies-meeting-recorder.mapper.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fireflies-meeting-recorder.mapper.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.queries` — subpath `./impls/fireflies-meeting-recorder.queries`
  - `unconditional`: `./src/impls/fireflies-meeting-recorder.queries.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fireflies-meeting-recorder.queries.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.types` — subpath `./impls/fireflies-meeting-recorder.types`
  - `unconditional`: `./src/impls/fireflies-meeting-recorder.types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fireflies-meeting-recorder.types.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.utils` — subpath `./impls/fireflies-meeting-recorder.utils`
  - `unconditional`: `./src/impls/fireflies-meeting-recorder.utils.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fireflies-meeting-recorder.utils.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/fireflies-meeting-recorder.webhook-verify` — subpath `./impls/fireflies-meeting-recorder.webhook-verify`
  - `unconditional`: `./src/impls/fireflies-meeting-recorder.webhook-verify.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/fireflies-meeting-recorder.webhook-verify.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder` — subpath `./impls/granola-meeting-recorder`
  - `unconditional`: `./src/impls/granola-meeting-recorder.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.http` — subpath `./impls/granola-meeting-recorder.http`
  - `unconditional`: `./src/impls/granola-meeting-recorder.http.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.http.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.mapper` — subpath `./impls/granola-meeting-recorder.mapper`
  - `unconditional`: `./src/impls/granola-meeting-recorder.mapper.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.mapper.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.mcp` — subpath `./impls/granola-meeting-recorder.mcp`
  - `unconditional`: `./src/impls/granola-meeting-recorder.mcp.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.mcp.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.mcp-normalize` — subpath `./impls/granola-meeting-recorder.mcp-normalize`
  - `unconditional`: `./src/impls/granola-meeting-recorder.mcp-normalize.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.mcp-normalize.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.mcp-reads` — subpath `./impls/granola-meeting-recorder.mcp-reads`
  - `unconditional`: `./src/impls/granola-meeting-recorder.mcp-reads.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.mcp-reads.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.transcript` — subpath `./impls/granola-meeting-recorder.transcript`
  - `unconditional`: `./src/impls/granola-meeting-recorder.transcript.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.transcript.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.types` — subpath `./impls/granola-meeting-recorder.types`
  - `unconditional`: `./src/impls/granola-meeting-recorder.types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.types.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/granola-meeting-recorder.validate` — subpath `./impls/granola-meeting-recorder.validate`
  - `unconditional`: `./src/impls/granola-meeting-recorder.validate.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/granola-meeting-recorder.validate.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/tldv-meeting-recorder` — subpath `./impls/tldv-meeting-recorder`
  - `unconditional`: `./src/impls/tldv-meeting-recorder.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/tldv-meeting-recorder.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/impls/tldv-meeting-recorder.types` — subpath `./impls/tldv-meeting-recorder.types`
  - `unconditional`: `./src/impls/tldv-meeting-recorder.types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/impls/tldv-meeting-recorder.types.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence` — subpath `./meeting-evidence`
  - `unconditional`: `./src/meeting-evidence.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence-errors` — subpath `./meeting-evidence-errors`
  - `unconditional`: `./src/meeting-evidence-errors.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence-errors.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence-freshness` — subpath `./meeting-evidence-freshness`
  - `unconditional`: `./src/meeting-evidence-freshness.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence-freshness.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence-ingestion` — subpath `./meeting-evidence-ingestion`
  - `unconditional`: `./src/meeting-evidence-ingestion.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence-ingestion.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence-memory-store` — subpath `./meeting-evidence-memory-store`
  - `unconditional`: `./src/meeting-evidence-memory-store.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence-memory-store.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence-records` — subpath `./meeting-evidence-records`
  - `unconditional`: `./src/meeting-evidence-records.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence-records.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence-webhook` — subpath `./meeting-evidence-webhook`
  - `unconditional`: `./src/meeting-evidence-webhook.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence-webhook.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-evidence-window` — subpath `./meeting-evidence-window`
  - `unconditional`: `./src/meeting-evidence-window.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-evidence-window.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-intake-binding` — subpath `./meeting-intake-binding`
  - `unconditional`: `./src/meeting-intake-binding.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-intake-binding.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-intake-pagination` — subpath `./meeting-intake-pagination`
  - `unconditional`: `./src/meeting-intake-pagination.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-intake-pagination.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-recorder` — subpath `./meeting-recorder`
  - `unconditional`: `./src/meeting-recorder.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-recorder.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-recorder-binding` — subpath `./meeting-recorder-binding`
  - `unconditional`: `./src/meeting-recorder-binding.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-recorder-binding.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-recorder-capabilities` — subpath `./meeting-recorder-capabilities`
  - `unconditional`: `./src/meeting-recorder-capabilities.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-recorder-capabilities.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-recorder-retry` — subpath `./meeting-recorder-retry`
  - `unconditional`: `./src/meeting-recorder-retry.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-recorder-retry.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-recorder-transcript` — subpath `./meeting-recorder-transcript`
  - `unconditional`: `./src/meeting-recorder-transcript.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-recorder-transcript.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-recorder-transcript-time` — subpath `./meeting-recorder-transcript-time`
  - `unconditional`: `./src/meeting-recorder-transcript-time.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-recorder-transcript-time.ts); verified source file.

- `@lssm-tech/integration.provider-meeting-recorder/meeting-recorder-webhook-verification` — subpath `./meeting-recorder-webhook-verification`
  - `unconditional`: `./src/meeting-recorder-webhook-verification.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-meeting-recorder/src/meeting-recorder-webhook-verification.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",
      "bun": "./dist/index.js",
      "node": "./dist/node/index.js",
      "default": "./dist/index.js"
    },
    "./impls": {
      "types": "./dist/impls/index.d.ts",
      "bun": "./dist/impls/index.js",
      "node": "./dist/node/impls/index.js",
      "default": "./dist/impls/index.js"
    },
    "./impls/attendee-canonical-json": {
      "types": "./dist/impls/attendee-canonical-json.d.ts",
      "bun": "./dist/impls/attendee-canonical-json.js",
      "node": "./dist/node/impls/attendee-canonical-json.js",
      "default": "./dist/impls/attendee-canonical-json.js"
    },
    "./impls/attendee-capture-cancellation": {
      "types": "./dist/impls/attendee-capture-cancellation.d.ts",
      "bun": "./dist/impls/attendee-capture-cancellation.js",
      "node": "./dist/node/impls/attendee-capture-cancellation.js",
      "default": "./dist/impls/attendee-capture-cancellation.js"
    },
    "./impls/attendee-capture-mappers": {
      "types": "./dist/impls/attendee-capture-mappers.d.ts",
      "bun": "./dist/impls/attendee-capture-mappers.js",
      "node": "./dist/node/impls/attendee-capture-mappers.js",
      "default": "./dist/impls/attendee-capture-mappers.js"
    },
    "./impls/attendee-capture-recording": {
      "types": "./dist/impls/attendee-capture-recording.d.ts",
      "bun": "./dist/impls/attendee-capture-recording.js",
      "node": "./dist/node/impls/attendee-capture-recording.js",
      "default": "./dist/impls/attendee-capture-recording.js"
    },
    "./impls/attendee-capture-transport": {
      "types": "./dist/impls/attendee-capture-transport.d.ts",
      "bun": "./dist/impls/attendee-capture-transport.js",
      "node": "./dist/node/impls/attendee-capture-transport.js",
      "default": "./dist/impls/attendee-capture-transport.js"
    },
    "./impls/attendee-capture-webhook": {
      "types": "./dist/impls/attendee-capture-webhook.d.ts",
      "bun": "./dist/impls/attendee-capture-webhook.js",
      "node": "./dist/node/impls/attendee-capture-webhook.js",
      "default": "./dist/impls/attendee-capture-webhook.js"
    },
    "./impls/attendee-meeting-capture": {
      "types": "./dist/impls/attendee-meeting-capture.d.ts",
      "bun": "./dist/impls/attendee-meeting-capture.js",
      "node": "./dist/node/impls/attendee-meeting-capture.js",
      "default": "./dist/impls/attendee-meeting-capture.js"
    },
    "./impls/attendee-recorded-fixtures": {
      "types": "./dist/impls/attendee-recorded-fixtures.d.ts",
      "bun": "./dist/impls/attendee-recorded-fixtures.js",
      "node": "./dist/node/impls/attendee-recorded-fixtures.js",
      "default": "./dist/impls/attendee-recorded-fixtures.js"
    },
    "./impls/fathom-meeting-recorder": {
      "types": "./dist/impls/fathom-meeting-recorder.d.ts",
      "bun": "./dist/impls/fathom-meeting-recorder.js",
      "node": "./dist/node/impls/fathom-meeting-recorder.js",
      "default": "./dist/impls/fathom-meeting-recorder.js"
    },
    "./impls/fathom-meeting-recorder.mapper": {
      "types": "./dist/impls/fathom-meeting-recorder.mapper.d.ts",
      "bun": "./dist/impls/fathom-meeting-recorder.mapper.js",
      "node": "./dist/node/impls/fathom-meeting-recorder.mapper.js",
      "default": "./dist/impls/fathom-meeting-recorder.mapper.js"
    },
    "./impls/fathom-meeting-recorder.types": {
      "types": "./dist/impls/fathom-meeting-recorder.types.d.ts",
      "bun": "./dist/impls/fathom-meeting-recorder.types.js",
      "node": "./dist/node/impls/fathom-meeting-recorder.types.js",
      "default": "./dist/impls/fathom-meeting-recorder.types.js"
    },
    "./impls/fathom-meeting-recorder.utils": {
      "types": "./dist/impls/fathom-meeting-recorder.utils.d.ts",
      "bun": "./dist/impls/fathom-meeting-recorder.utils.js",
      "node": "./dist/node/impls/fathom-meeting-recorder.utils.js",
      "default": "./dist/impls/fathom-meeting-recorder.utils.js"
    },
    "./impls/fathom-meeting-recorder.webhook-verify": {
      "types": "./dist/impls/fathom-meeting-recorder.webhook-verify.d.ts",
      "bun": "./dist/impls/fathom-meeting-recorder.webhook-verify.js",
      "node": "./dist/node/impls/fathom-meeting-recorder.webhook-verify.js",
      "default": "./dist/impls/fathom-meeting-recorder.webhook-verify.js"
    },
    "./impls/fathom-meeting-recorder.webhooks": {
      "types": "./dist/impls/fathom-meeting-recorder.webhooks.d.ts",
      "bun": "./dist/impls/fathom-meeting-recorder.webhooks.js",
      "node": "./dist/node/impls/fathom-meeting-recorder.webhooks.js",
      "default": "./dist/impls/fathom-meeting-recorder.webhooks.js"
    },
    "./impls/fireflies-meeting-recorder": {
      "types": "./dist/impls/fireflies-meeting-recorder.d.ts",
      "bun": "./dist/impls/fireflies-meeting-recorder.js",
      "node": "./dist/node/impls/fireflies-meeting-recorder.js",
      "default": "./dist/impls/fireflies-meeting-recorder.js"
    },
    "./impls/fireflies-meeting-recorder.mapper": {
      "types": "./dist/impls/fireflies-meeting-recorder.mapper.d.ts",
      "bun": "./dist/impls/fireflies-meeting-recorder.mapper.js",
      "node": "./dist/node/impls/fireflies-meeting-recorder.mapper.js",
      "default": "./dist/impls/fireflies-meeting-recorder.mapper.js"
    },
    "./impls/fireflies-meeting-recorder.queries": {
      "types": "./dist/impls/fireflies-meeting-recorder.queries.d.ts",
      "bun": "./dist/impls/fireflies-meeting-recorder.queries.js",
      "node": "./dist/node/impls/fireflies-meeting-recorder.queries.js",
      "default": "./dist/impls/fireflies-meeting-recorder.queries.js"
    },
    "./impls/fireflies-meeting-recorder.types": {
      "types": "./dist/impls/fireflies-meeting-recorder.types.d.ts",
      "bun": "./dist/impls/fireflies-meeting-recorder.types.js",
      "node": "./dist/node/impls/fireflies-meeting-recorder.types.js",
      "default": "./dist/impls/fireflies-meeting-recorder.types.js"
    },
    "./impls/fireflies-meeting-recorder.utils": {
      "types": "./dist/impls/fireflies-meeting-recorder.utils.d.ts",
      "bun": "./dist/impls/fireflies-meeting-recorder.utils.js",
      "node": "./dist/node/impls/fireflies-meeting-recorder.utils.js",
      "default": "./dist/impls/fireflies-meeting-recorder.utils.js"
    },
    "./impls/fireflies-meeting-recorder.webhook-verify": {
      "types": "./dist/impls/fireflies-meeting-recorder.webhook-verify.d.ts",
      "bun": "./dist/impls/fireflies-meeting-recorder.webhook-verify.js",
      "node": "./dist/node/impls/fireflies-meeting-recorder.webhook-verify.js",
      "default": "./dist/impls/fireflies-meeting-recorder.webhook-verify.js"
    },
    "./impls/granola-meeting-recorder": {
      "types": "./dist/impls/granola-meeting-recorder.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.js",
      "node": "./dist/node/impls/granola-meeting-recorder.js",
      "default": "./dist/impls/granola-meeting-recorder.js"
    },
    "./impls/granola-meeting-recorder.http": {
      "types": "./dist/impls/granola-meeting-recorder.http.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.http.js",
      "node": "./dist/node/impls/granola-meeting-recorder.http.js",
      "default": "./dist/impls/granola-meeting-recorder.http.js"
    },
    "./impls/granola-meeting-recorder.mapper": {
      "types": "./dist/impls/granola-meeting-recorder.mapper.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.mapper.js",
      "node": "./dist/node/impls/granola-meeting-recorder.mapper.js",
      "default": "./dist/impls/granola-meeting-recorder.mapper.js"
    },
    "./impls/granola-meeting-recorder.mcp": {
      "types": "./dist/impls/granola-meeting-recorder.mcp.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.mcp.js",
      "node": "./dist/node/impls/granola-meeting-recorder.mcp.js",
      "default": "./dist/impls/granola-meeting-recorder.mcp.js"
    },
    "./impls/granola-meeting-recorder.mcp-normalize": {
      "types": "./dist/impls/granola-meeting-recorder.mcp-normalize.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.mcp-normalize.js",
      "node": "./dist/node/impls/granola-meeting-recorder.mcp-normalize.js",
      "default": "./dist/impls/granola-meeting-recorder.mcp-normalize.js"
    },
    "./impls/granola-meeting-recorder.mcp-reads": {
      "types": "./dist/impls/granola-meeting-recorder.mcp-reads.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.mcp-reads.js",
      "node": "./dist/node/impls/granola-meeting-recorder.mcp-reads.js",
      "default": "./dist/impls/granola-meeting-recorder.mcp-reads.js"
    },
    "./impls/granola-meeting-recorder.transcript": {
      "types": "./dist/impls/granola-meeting-recorder.transcript.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.transcript.js",
      "node": "./dist/node/impls/granola-meeting-recorder.transcript.js",
      "default": "./dist/impls/granola-meeting-recorder.transcript.js"
    },
    "./impls/granola-meeting-recorder.types": {
      "types": "./dist/impls/granola-meeting-recorder.types.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.types.js",
      "node": "./dist/node/impls/granola-meeting-recorder.types.js",
      "default": "./dist/impls/granola-meeting-recorder.types.js"
    },
    "./impls/granola-meeting-recorder.validate": {
      "types": "./dist/impls/granola-meeting-recorder.validate.d.ts",
      "bun": "./dist/impls/granola-meeting-recorder.validate.js",
      "node": "./dist/node/impls/granola-meeting-recorder.validate.js",
      "default": "./dist/impls/granola-meeting-recorder.validate.js"
    },
    "./impls/tldv-meeting-recorder": {
      "types": "./dist/impls/tldv-meeting-recorder.d.ts",
      "bun": "./dist/impls/tldv-meeting-recorder.js",
      "node": "./dist/node/impls/tldv-meeting-recorder.js",
      "default": "./dist/impls/tldv-meeting-recorder.js"
    },
    "./impls/tldv-meeting-recorder.types": {
      "types": "./dist/impls/tldv-meeting-recorder.types.d.ts",
      "bun": "./dist/impls/tldv-meeting-recorder.types.js",
      "node": "./dist/node/impls/tldv-meeting-recorder.types.js",
      "default": "./dist/impls/tldv-meeting-recorder.types.js"
    },
    "./meeting-evidence": {
      "types": "./dist/meeting-evidence.d.ts",
      "bun": "./dist/meeting-evidence.js",
      "node": "./dist/node/meeting-evidence.js",
      "default": "./dist/meeting-evidence.js"
    },
    "./meeting-evidence-errors": {
      "types": "./dist/meeting-evidence-errors.d.ts",
      "bun": "./dist/meeting-evidence-errors.js",
      "node": "./dist/node/meeting-evidence-errors.js",
      "default": "./dist/meeting-evidence-errors.js"
    },
    "./meeting-evidence-freshness": {
      "types": "./dist/meeting-evidence-freshness.d.ts",
      "bun": "./dist/meeting-evidence-freshness.js",
      "node": "./dist/node/meeting-evidence-freshness.js",
      "default": "./dist/meeting-evidence-freshness.js"
    },
    "./meeting-evidence-ingestion": {
      "types": "./dist/meeting-evidence-ingestion.d.ts",
      "bun": "./dist/meeting-evidence-ingestion.js",
      "node": "./dist/node/meeting-evidence-ingestion.js",
      "default": "./dist/meeting-evidence-ingestion.js"
    },
    "./meeting-evidence-memory-store": {
      "types": "./dist/meeting-evidence-memory-store.d.ts",
      "bun": "./dist/meeting-evidence-memory-store.js",
      "node": "./dist/node/meeting-evidence-memory-store.js",
      "default": "./dist/meeting-evidence-memory-store.js"
    },
    "./meeting-evidence-records": {
      "types": "./dist/meeting-evidence-records.d.ts",
      "bun": "./dist/meeting-evidence-records.js",
      "node": "./dist/node/meeting-evidence-records.js",
      "default": "./dist/meeting-evidence-records.js"
    },
    "./meeting-evidence-webhook": {
      "types": "./dist/meeting-evidence-webhook.d.ts",
      "bun": "./dist/meeting-evidence-webhook.js",
      "node": "./dist/node/meeting-evidence-webhook.js",
      "default": "./dist/meeting-evidence-webhook.js"
    },
    "./meeting-evidence-window": {
      "types": "./dist/meeting-evidence-window.d.ts",
      "bun": "./dist/meeting-evidence-window.js",
      "node": "./dist/node/meeting-evidence-window.js",
      "default": "./dist/meeting-evidence-window.js"
    },
    "./meeting-intake-binding": {
      "types": "./dist/meeting-intake-binding.d.ts",
      "bun": "./dist/meeting-intake-binding.js",
      "node": "./dist/node/meeting-intake-binding.js",
      "default": "./dist/meeting-intake-binding.js"
    },
    "./meeting-intake-pagination": {
      "types": "./dist/meeting-intake-pagination.d.ts",
      "bun": "./dist/meeting-intake-pagination.js",
      "node": "./dist/node/meeting-intake-pagination.js",
      "default": "./dist/meeting-intake-pagination.js"
    },
    "./meeting-recorder": {
      "types": "./dist/meeting-recorder.d.ts",
      "bun": "./dist/meeting-recorder.js",
      "node": "./dist/node/meeting-recorder.js",
      "default": "./dist/meeting-recorder.js"
    },
    "./meeting-recorder-binding": {
      "types": "./dist/meeting-recorder-binding.d.ts",
      "bun": "./dist/meeting-recorder-binding.js",
      "node": "./dist/node/meeting-recorder-binding.js",
      "default": "./dist/meeting-recorder-binding.js"
    },
    "./meeting-recorder-capabilities": {
      "types": "./dist/meeting-recorder-capabilities.d.ts",
      "bun": "./dist/meeting-recorder-capabilities.js",
      "node": "./dist/node/meeting-recorder-capabilities.js",
      "default": "./dist/meeting-recorder-capabilities.js"
    },
    "./meeting-recorder-retry": {
      "types": "./dist/meeting-recorder-retry.d.ts",
      "bun": "./dist/meeting-recorder-retry.js",
      "node": "./dist/node/meeting-recorder-retry.js",
      "default": "./dist/meeting-recorder-retry.js"
    },
    "./meeting-recorder-transcript": {
      "types": "./dist/meeting-recorder-transcript.d.ts",
      "bun": "./dist/meeting-recorder-transcript.js",
      "node": "./dist/node/meeting-recorder-transcript.js",
      "default": "./dist/meeting-recorder-transcript.js"
    },
    "./meeting-recorder-transcript-time": {
      "types": "./dist/meeting-recorder-transcript-time.d.ts",
      "bun": "./dist/meeting-recorder-transcript-time.js",
      "node": "./dist/node/meeting-recorder-transcript-time.js",
      "default": "./dist/meeting-recorder-transcript-time.js"
    },
    "./meeting-recorder-webhook-verification": {
      "types": "./dist/meeting-recorder-webhook-verification.d.ts",
      "bun": "./dist/meeting-recorder-webhook-verification.js",
      "node": "./dist/node/meeting-recorder-webhook-verification.js",
      "default": "./dist/meeting-recorder-webhook-verification.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/integration.runtime](https://lssm.co/docs/packages/integration.runtime/): `workspace:^`
- [@lssm-tech/lib.contracts-integrations](https://lssm.co/docs/packages/lib.contracts-integrations/): `workspace:^`
- [@lssm-tech/lib.crypto-utils](https://lssm.co/docs/packages/lib.crypto-utils/): `workspace:^`
- `fathom-typescript`: `catalog:integrations`

### 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:*`
- `@types/bun`: `catalog:types`
- `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
{
  "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:check": "node ../../../scripts/biome.cjs check .",
  "lint:fix": "node ../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../scripts/biome.cjs check --write .",
  "test": "bun test",
  "prebuild": "contractspec-bun-build prebuild",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Integration Provider Meeting Recorder documentation](https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-meeting-recorder) — declared link; destination not verified.

```json
{
  "url": "https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-meeting-recorder",
  "kind": "readme"
}
```

## Existing agent-guide projection

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