# @lssm-tech/integration.harness-runtime

Runtime adapters for the ContractSpec harness system.

## Source and release context

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

## Package metadata

```json
{
  "layer": "integrations",
  "physicalArea": null,
  "primaryArea": "agents-and-context",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "runtime",
    "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: [Agents, execution and context](https://lssm.co/docs/areas/agents-and-context/)

## Package guide

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

Website: https://contractspec.io

**Runtime adapters that bridge the ContractSpec harness core into browser, sandbox, artifact, and MCP-backed execution targets.**

## What It Provides

- Provides concrete adapters for deterministic Playwright browser automation, optional `agent-browser` visual computer-use runs, sandboxed execution, and artifact storage.
- Exposes MCP helpers and default target resolution on top of the mode-agnostic harness core.
- Keeps higher-cost runtime integrations optional so consumers can opt into heavier execution targets deliberately.
- Enforces browser navigation and request-domain allowlists at runtime, emits
  sanitized network/trace and accessibility evidence, and keeps visual
  baseline updates manual and permit-bound.
- Requires an injected container, process, or remote
  `IsolatedCodeSandboxPort` for code execution. Node `vm` is not represented as
  a security boundary; missing isolation fails closed.
- `src/adapters/` contains runtime, provider, or environment-specific adapters.
- `src/mcp/` contains MCP handlers, tools, prompts, and resources.

## Playwright keyed reads

`PlaywrightBrowserHarnessAdapter` implements structured output for browser
`get` actions that declare a non-empty `key`. It validates the complete keyed
read set before creating a run session or navigating, then evaluates valid
reads in authored order after the other actions complete.

| Target | Selector | Result |
| --- | --- | --- |
| `text` | required | `string \| null` from `textContent` |
| `html` | required | `string` from `innerHTML` |
| `value` | required | `string` from `inputValue` |
| `title` | forbidden | `string` from `title()` |
| `url` | forbidden | `string` from `url()` |

Unkeyed reads remain legacy no-ops. Duplicate/empty keys, invalid selectors,
and unavailable page methods fail the step without returning partial output;
existing screenshot, DOM, and console capture remains unchanged.

## Deterministic browser admission

The Playwright adapter checks all requested interactions and keyed-read methods
before navigation. Missing methods fail instead of silently skipping a step;
double-click and typing keep their exact semantics. Text waits require visible
matching text. A requested viewport also requires runtime support.

Restricted targets require a fresh context with HTTP and WebSocket routing and
service workers blocked. Page-only custom browser factories cannot claim this
coverage. Setup failures close partially created pages and contexts. Host-level
egress restrictions are still required: browser routing alone does not isolate
DNS, redirect destinations or other network protocols.

Run `bun run test:browser` with the pinned Playwright peer and its Chromium binary
installed. This opt-in real-browser suite exercises actual local HTTP, popup,
WebSocket and service-worker behavior. Missing browser support fails the suite;
skipped live tests in ordinary unit runs are not qualification evidence.

Low-level factory types are exported from `./adapters/playwright-types`;
`./adapters/playwright-actions` exports exact action validation/execution helpers.
Use the full adapter for session lifecycle, network guards and evidence capture.
The helpers do not authorize actions or establish an isolated browser context.

## Installation

`npm install @lssm-tech/integration.harness-runtime`

or

`bun add @lssm-tech/integration.harness-runtime`

## Usage

Import the root entrypoint from `@lssm-tech/integration.harness-runtime`, or choose a documented subpath when you only need one part of the package surface.

## Architecture

- `src/adapters/` contains Playwright, agent-browser, sandbox, and visual harness adapters.
- `src/artifacts/` contains filesystem and in-memory artifact-store implementations.
- `src/mcp/` exposes harness execution surfaces to MCP-aware runtimes.
- `src/targets/` contains target resolution helpers and target-selection logic.
- `src/types.ts` exposes shared runtime-facing harness types.
- `src/index.ts` is the root public barrel and package entrypoint.

## Public Entry Points

- Exports runtime adapters, artifact stores, MCP exposure helpers, target resolution, and shared types.
- Export `.` resolves through `./src/index.ts`.
- Export `./adapters/agentBrowserHarnessAdapter` resolves through `./src/adapters/agentBrowserHarnessAdapter.ts`.
- Export `./adapters/playwrightBrowserHarnessAdapter` resolves through `./src/adapters/playwrightBrowserHarnessAdapter.ts`.
- Export `./adapters/sandboxedCodeExecutionAdapter` resolves through `./src/adapters/sandboxedCodeExecutionAdapter.ts`.
- Export `./adapters/visualHarnessAdapter` resolves through `./src/adapters/visualHarnessAdapter.ts`.
- Export `./artifacts/filesystemArtifactStore` resolves through `./src/artifacts/filesystemArtifactStore.ts`.
- Export `./artifacts/inMemoryArtifactStore` resolves through `./src/artifacts/inMemoryArtifactStore.ts`.
- Export `./mcp/exposure` resolves through `./src/mcp/exposure.ts`.
- Export `./targets/defaultTargetResolver` resolves through `./src/targets/defaultTargetResolver.ts`.
- Export `./types` resolves through `./src/types.ts`.

## Local Commands

- `bun run dev` — contractspec-bun-build dev
- `bun run build` — contractspec-bun-build build
- `bun run test` — bun test --pass-with-no-tests
- `bun run lint` — bun run lint:fix
- `bun run lint:check` — biome check .
- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
- `bun run typecheck` — tsgo --noEmit
- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
- `bun run publish:pkg:canary` — bun publish:pkg --tag canary
- `bun run clean` — rimraf dist .turbo
- `bun run build:bundle` — contractspec-bun-build transpile
- `bun run build:types` — contractspec-bun-build types
- `bun run prebuild` — contractspec-bun-build prebuild

## Recent Updates

- Replace eslint+prettier by biomejs to optimize speed.
- Add a first-class harness system for controlled inspection, testing, evaluation, and proof generation.
- Add OSS full-app verification adapters for Playwright and `agent-browser`, including auth profile refs, visual diff evidence, and replay-friendly browser artifacts.

## Notes

- Works alongside `@lssm-tech/lib.contracts-spec`, `@lssm-tech/lib.harness`, `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.
- Authenticated browser runs should use named storage-state, browser-profile, session-name, or headers-env refs. Do not embed raw credentials, cookies, or bearer tokens in scenario specs or replay bundles.


## Declared capabilities

### Integration Harness Runtime

Capability ID: `package.lssm.tech.integration.harness.runtime`

Runtime adapters for the ContractSpec harness system.

Use cases:

- Adopt runtime adapters for the contractspec harness system

Constraints:

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

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "integration",
    "harness",
    "runtime"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "from": "@lssm-tech/integration.harness-runtime",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/adapters/agentBrowserHarnessAdapter",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/adapters/playwrightBrowserHarnessAdapter",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/adapters/sandboxedCodeExecutionAdapter",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/adapters/visualHarnessAdapter",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/artifacts/filesystemArtifactStore",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/artifacts/inMemoryArtifactStore",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/integration",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/mcp/exposure",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/targets/defaultTargetResolver",
    "symbols": []
  },
  {
    "from": "@lssm-tech/integration.harness-runtime/types",
    "symbols": []
  }
]
```

## Catalogue metadata

```json
{
  "family": "runtime",
  "kind": "integration",
  "status": "active",
  "adoptionMode": "adoptable",
  "stability": "experimental",
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "entrypoints": [
    ".",
    "./adapters/agentBrowserHarnessAdapter",
    "./adapters/playwright-actions",
    "./adapters/playwright-types",
    "./adapters/playwrightBrowserHarnessAdapter",
    "./adapters/sandboxedCodeExecutionAdapter",
    "./adapters/visualHarnessAdapter",
    "./artifacts/filesystemArtifactStore",
    "./artifacts/inMemoryArtifactStore",
    "./integration",
    "./mcp/exposure",
    "./targets/defaultTargetResolver",
    "./types"
  ],
  "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.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/adapters/agentBrowserHarnessAdapter",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/adapters/playwrightBrowserHarnessAdapter",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/adapters/sandboxedCodeExecutionAdapter",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/adapters/visualHarnessAdapter",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/artifacts/filesystemArtifactStore",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/artifacts/inMemoryArtifactStore",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/integration",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/mcp/exposure",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/targets/defaultTargetResolver",
    "symbols": []
  },
  {
    "capabilityId": "package.lssm.tech.integration.harness.runtime",
    "from": "@lssm-tech/integration.harness-runtime/types",
    "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.harness-runtime` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/harness-runtime/src/index.ts); verified source file.

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

- `@lssm-tech/integration.harness-runtime/adapters/playwright-actions` — subpath `./adapters/playwright-actions`
  - `unconditional`: `./src/adapters/playwright-actions.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/harness-runtime/src/adapters/playwright-actions.ts); verified source file.

- `@lssm-tech/integration.harness-runtime/adapters/playwright-types` — subpath `./adapters/playwright-types`
  - `unconditional`: `./src/adapters/playwright-types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/harness-runtime/src/adapters/playwright-types.ts); verified source file.

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

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

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

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

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

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

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

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

- `@lssm-tech/integration.harness-runtime/types` — subpath `./types`
  - `unconditional`: `./src/types.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/harness-runtime/src/types.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"
    },
    "./adapters/agentBrowserHarnessAdapter": {
      "types": "./dist/adapters/agentBrowserHarnessAdapter.d.ts",
      "bun": "./dist/adapters/agentBrowserHarnessAdapter.js",
      "node": "./dist/node/adapters/agentBrowserHarnessAdapter.js",
      "default": "./dist/adapters/agentBrowserHarnessAdapter.js"
    },
    "./adapters/playwright-actions": {
      "types": "./dist/adapters/playwright-actions.d.ts",
      "bun": "./dist/adapters/playwright-actions.js",
      "node": "./dist/node/adapters/playwright-actions.js",
      "default": "./dist/adapters/playwright-actions.js"
    },
    "./adapters/playwright-types": {
      "types": "./dist/adapters/playwright-types.d.ts",
      "bun": "./dist/adapters/playwright-types.js",
      "node": "./dist/node/adapters/playwright-types.js",
      "default": "./dist/adapters/playwright-types.js"
    },
    "./adapters/playwrightBrowserHarnessAdapter": {
      "types": "./dist/adapters/playwrightBrowserHarnessAdapter.d.ts",
      "bun": "./dist/adapters/playwrightBrowserHarnessAdapter.js",
      "node": "./dist/node/adapters/playwrightBrowserHarnessAdapter.js",
      "default": "./dist/adapters/playwrightBrowserHarnessAdapter.js"
    },
    "./adapters/sandboxedCodeExecutionAdapter": {
      "types": "./dist/adapters/sandboxedCodeExecutionAdapter.d.ts",
      "bun": "./dist/adapters/sandboxedCodeExecutionAdapter.js",
      "node": "./dist/node/adapters/sandboxedCodeExecutionAdapter.js",
      "default": "./dist/adapters/sandboxedCodeExecutionAdapter.js"
    },
    "./adapters/visualHarnessAdapter": {
      "types": "./dist/adapters/visualHarnessAdapter.d.ts",
      "bun": "./dist/adapters/visualHarnessAdapter.js",
      "node": "./dist/node/adapters/visualHarnessAdapter.js",
      "default": "./dist/adapters/visualHarnessAdapter.js"
    },
    "./artifacts/filesystemArtifactStore": {
      "types": "./dist/artifacts/filesystemArtifactStore.d.ts",
      "bun": "./dist/artifacts/filesystemArtifactStore.js",
      "node": "./dist/node/artifacts/filesystemArtifactStore.js",
      "default": "./dist/artifacts/filesystemArtifactStore.js"
    },
    "./artifacts/inMemoryArtifactStore": {
      "types": "./dist/artifacts/inMemoryArtifactStore.d.ts",
      "bun": "./dist/artifacts/inMemoryArtifactStore.js",
      "node": "./dist/node/artifacts/inMemoryArtifactStore.js",
      "default": "./dist/artifacts/inMemoryArtifactStore.js"
    },
    "./integration": {
      "types": "./dist/integration.d.ts",
      "bun": "./dist/integration.js",
      "node": "./dist/node/integration.js",
      "default": "./dist/integration.js"
    },
    "./mcp/exposure": {
      "types": "./dist/mcp/exposure.d.ts",
      "bun": "./dist/mcp/exposure.js",
      "node": "./dist/node/mcp/exposure.js",
      "default": "./dist/mcp/exposure.js"
    },
    "./targets/defaultTargetResolver": {
      "types": "./dist/targets/defaultTargetResolver.d.ts",
      "bun": "./dist/targets/defaultTargetResolver.js",
      "node": "./dist/node/targets/defaultTargetResolver.js",
      "default": "./dist/targets/defaultTargetResolver.js"
    },
    "./types": {
      "types": "./dist/types.d.ts",
      "bun": "./dist/types.js",
      "node": "./dist/node/types.js",
      "default": "./dist/types.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/lib.assurance-spec](https://lssm.co/docs/packages/lib.assurance-spec/): `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:^`
- [@lssm-tech/lib.harness](https://lssm.co/docs/packages/lib.harness/): `workspace:^`
- [@lssm-tech/lib.schema](https://lssm.co/docs/packages/lib.schema/): `workspace:^`

### Peer dependencies

- `playwright`: `^1.63.0`

### 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:*`
- `playwright`: `catalog:testing`
- `typescript`: `catalog:`

### Peer dependency metadata

```json
{
  "playwright": {
    "optional": true
  }
}
```

### 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 run lint:fix",
  "lint:fix": "node ../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../scripts/biome.cjs check --write .",
  "lint:check": "node ../../../scripts/biome.cjs check .",
  "test": "bun test --pass-with-no-tests",
  "test:browser": "HARNESS_BROWSER_LIVE_TESTS=1 bun test src/adapters/playwright-browser.live.test.ts",
  "prebuild": "contractspec-bun-build prebuild",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Integration Harness Runtime documentation](https://www.npmjs.com/package/%40lssm-tech%2Fintegration.harness-runtime) — declared link; destination not verified.

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

## Existing agent-guide projection

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