# @lssm-tech/integration.opa-meeting-context-bridge

Governed bridges from existing knowledge providers to OPA MeetingContextSourcePort.

## Source and release context

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

## Package metadata

```json
{
  "layer": "integrations",
  "physicalArea": null,
  "primaryArea": "company-and-work",
  "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: [Company, work and service operations](https://lssm.co/docs/areas/company-and-work/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "packages/integrations/opa-meeting-context-bridge/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/opa-meeting-context-bridge/README.md",
  "blobSha": "909a3814be368cb1172983d514c410badaa0ff3f",
  "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.

# OPA Meeting Context Bridge

Server-side, provider-neutral bridges from existing Notion, Slack, email,
Drive/document, CRM, and governed-web read surfaces to OPA's
`MeetingContextSourcePort`.

Every factory is bound to one exact OPA owner scope, applies explicit item and
content bounds, emits hashed provenance/citation references, and propagates
provider or contract failures. Shared sensitive material requires a configured
consent reference.

Hosts inject already-authorized provider instances and meeting-specific
query/match functions. The included Google Drive v3 REST provider resolves a
fresh bearer through a server-only token port, supports shared-drive listing,
and streams bounded blob or Google Docs text into the governed Drive bridge.
The included HubSpot CRM provider uses the official date-versioned `2026-03`
read endpoints for contacts, companies, and deals. It resolves fresh bearer
authority server-side, requests only allowlisted properties, binds pagination
to the exact tenant/workspace/entity-kind scope with a host-supplied HMAC key,
and requires a durable evidence receipt for every projected object. Salesforce
remains contract-backed only.
The read-only Notion (`createNotionRestSearchProvider`, `POST /v1/search`) and
Slack (`createSlackRestSearchProvider`, `search.messages`, user token with
`search:read`) providers implement the Notion/Slack meeting search ports, and
`createHubSpotContactDirectory` resolves attendee e-mails to HubSpot contacts as
an OPA `MeetingParticipantDirectoryPort`. All of them time out (default 8 s),
cap JSON at 1 MiB, map 401/403 to `*_grant_rejected`, and never put tokens or
provider text in errors.
`./personalos-meeting-context` is the CompanyOS side of the PersonalOS
`companyos_meeting_context` consumer: `createPersonalOsMeetingContextClient`
reads a consented projection or writes a private meeting memory entry through
an injected transport, parses every answer with the PersonalOS contract, binds
it to its request or entry id and uses a projection only inside its consent and
retention window. `createPersonalOsMeetingContextHttpTransport` posts to the
PersonalOS consumer routes over HTTPS (loopback HTTP for rehearsals) with a
service bearer of at least 32 bytes, 5 s timeout, no redirects and stable
`personalos_meeting_context_*` error codes.
CompanyOS company intelligence is intentionally not duplicated here because its
existing Work Graph meeting source owns that boundary.


## Declared capabilities

### Integration Opa Meeting Context Bridge

Capability ID: `package.lssm.tech.integration.opa.meeting.context.bridge`

Governed server-side bridges from authorized knowledge providers into OPA meeting context sources with scope, bounds, consent, provenance, and citation enforcement.

Use cases:

- Inject bounded, cited Notion, Slack, email, document, CRM, and governed-web context into meeting preparation

Constraints:

```json
{
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "avoidWhen": [
    "Authorized provider clients, meeting scope, content bounds, or required consent cannot be supplied."
  ],
  "requires": [
    "TypeScript",
    "Authorized provider adapters"
  ]
}
```

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "integration",
    "opa",
    "meeting",
    "context",
    "bridge"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/crm",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/documents",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/google-drive-rest",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/governance",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/hubspot-contact-directory",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/hubspot-crm-rest",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/notion-rest",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/notion-slack",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/slack-rest",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/web",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "integrations",
  "kind": "integration",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "experimental",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./crm",
    "./documents",
    "./google-drive-rest",
    "./governance",
    "./hubspot-contact-directory",
    "./hubspot-crm-rest",
    "./notion-rest",
    "./notion-slack",
    "./slack-rest",
    "./web"
  ],
  "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.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/crm",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/documents",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/google-drive-rest",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/governance",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/hubspot-contact-directory",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/hubspot-crm-rest",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/notion-rest",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/notion-slack",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/slack-rest",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.opa.meeting.context.bridge",
    "from": "@lssm-tech/integration.opa-meeting-context-bridge/web",
    "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.opa-meeting-context-bridge` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/opa-meeting-context-bridge/src/index.ts); verified source file.

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

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

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

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

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

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

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

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

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

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

- `@lssm-tech/integration.opa-meeting-context-bridge/web` — subpath `./web`
  - `unconditional`: `./src/web.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/opa-meeting-context-bridge/src/web.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"
    },
    "./crm": {
      "types": "./dist/crm.d.ts",
      "bun": "./dist/crm.js",
      "node": "./dist/node/crm.js",
      "default": "./dist/crm.js"
    },
    "./documents": {
      "types": "./dist/documents.d.ts",
      "bun": "./dist/documents.js",
      "node": "./dist/node/documents.js",
      "default": "./dist/documents.js"
    },
    "./google-drive-rest": {
      "types": "./dist/google-drive-rest.d.ts",
      "bun": "./dist/google-drive-rest.js",
      "node": "./dist/node/google-drive-rest.js",
      "default": "./dist/google-drive-rest.js"
    },
    "./governance": {
      "types": "./dist/governance.d.ts",
      "bun": "./dist/governance.js",
      "node": "./dist/node/governance.js",
      "default": "./dist/governance.js"
    },
    "./hubspot-contact-directory": {
      "types": "./dist/hubspot-contact-directory.d.ts",
      "bun": "./dist/hubspot-contact-directory.js",
      "node": "./dist/node/hubspot-contact-directory.js",
      "default": "./dist/hubspot-contact-directory.js"
    },
    "./hubspot-crm-rest": {
      "types": "./dist/hubspot-crm-rest.d.ts",
      "bun": "./dist/hubspot-crm-rest.js",
      "node": "./dist/node/hubspot-crm-rest.js",
      "default": "./dist/hubspot-crm-rest.js"
    },
    "./notion-rest": {
      "types": "./dist/notion-rest.d.ts",
      "bun": "./dist/notion-rest.js",
      "node": "./dist/node/notion-rest.js",
      "default": "./dist/notion-rest.js"
    },
    "./notion-slack": {
      "types": "./dist/notion-slack.d.ts",
      "bun": "./dist/notion-slack.js",
      "node": "./dist/node/notion-slack.js",
      "default": "./dist/notion-slack.js"
    },
    "./personalos-meeting-context": {
      "types": "./dist/personalos-meeting-context.d.ts",
      "bun": "./dist/personalos-meeting-context.js",
      "node": "./dist/node/personalos-meeting-context.js",
      "default": "./dist/personalos-meeting-context.js"
    },
    "./slack-rest": {
      "types": "./dist/slack-rest.d.ts",
      "bun": "./dist/slack-rest.js",
      "node": "./dist/node/slack-rest.js",
      "default": "./dist/slack-rest.js"
    },
    "./web": {
      "types": "./dist/web.d.ts",
      "bun": "./dist/web.js",
      "node": "./dist/node/web.js",
      "default": "./dist/web.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/lib.contracts-integrations](https://lssm.co/docs/packages/lib.contracts-integrations/): `workspace:^`
- [@lssm-tech/lib.organization-planning-spec](https://lssm.co/docs/packages/lib.organization-planning-spec/): `workspace:^`
- [@lssm-tech/lib.personal-os-spec](https://lssm.co/docs/packages/lib.personal-os-spec/): `workspace:^`

### Peer dependencies

No declarations in the inspected manifest.

### Optional dependencies

No declarations in the inspected manifest.

### Development dependencies

- [@lssm-tech/integration.provider-email](https://lssm.co/docs/packages/integration.provider-email/): `workspace:*`
- [@lssm-tech/integration.provider-messaging](https://lssm.co/docs/packages/integration.provider-messaging/): `workspace:*`
- [@lssm-tech/integration.provider-project-management](https://lssm.co/docs/packages/integration.provider-project-management/): `workspace:*`
- [@lssm-tech/integration.provider-web-access](https://lssm.co/docs/packages/integration.provider-web-access/): `workspace:*`
- [@lssm-tech/lib.personal-os-runtime](https://lssm.co/docs/packages/lib.personal-os-runtime/): `workspace:*`
- [@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",
  "clean": "rimraf dist .turbo",
  "lint:check": "node ../../../scripts/biome.cjs check .",
  "lint:fix": "node ../../../scripts/biome.cjs check --write .",
  "test": "bun test",
  "prebuild": "contractspec-bun-build prebuild",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Integration Opa Meeting Context Bridge documentation](https://www.npmjs.com/package/%40lssm-tech%2Fintegration.opa-meeting-context-bridge) — declared link; destination not verified.

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

## Existing agent-guide projection

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