# @lssm-tech/example.harness-lab

Focused harness example for ContractSpec scenarios, suites, orchestration, and runtime adapters.

## Source and release context

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

## Package metadata

```json
{
  "layer": "examples",
  "physicalArea": null,
  "primaryArea": "examples-and-patterns",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "runtime",
    "catalogKind": "example",
    "catalogStatus": "active",
    "adoptionMode": "reference-only",
    "stability": "stable"
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

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

Primary area: [Examples and implementation patterns](https://lssm.co/docs/areas/examples-and-patterns/)

## Package guide

```json
{
  "status": "available",
  "sourcePath": "examples/harness-lab/README.md",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/README.md",
  "blobSha": "6a6e7b4684ca2c6d85bcd0f3e98ca3746da34fb3",
  "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/example.harness-lab

Website: https://contractspec.io

**Focused harness example for scenario contracts, suites, orchestration, and real runtime adapters.**

## What This Demonstrates

- Contract layer: canonical `harness-scenario` and `harness-suite` exports.
- Orchestration layer: `HarnessRunner`, `HarnessEvaluationRunner`, and replay bundle generation.
- Runtime layer: `SandboxedCodeExecutionAdapter`, `PlaywrightBrowserHarnessAdapter`, optional `AgentBrowserHarnessAdapter`, `DefaultHarnessTargetResolver`, and `InMemoryHarnessArtifactStore`.
- A deterministic local browser fixture that stays offline and exercises Playwright, auth profile refs, visual diff evidence, and optional agent-browser evidence.
- `src/docs/` contains docblocks and documentation-facing exports.

## Running Locally

From `examples/harness-lab`:
- `bunx playwright install chromium`
- `bun run build`
- `bun run test`
- `bun run typecheck`

## Sandbox Provider

Pass an `IsolatedCodeSandboxPort` as `sandbox` to
`runHarnessLabSandboxEvaluation({ sandbox })` or
`createHarnessLabEvaluationTools({ sandbox })`. Without a provider, code execution
is blocked. Choose a container, process, or remote provider with isolation suitable
for your workload. The tests execute only the checked-in fixture scripts in a
separate process; that fixture is not a sandbox for untrusted code.

## Usage

Use `@lssm-tech/example.harness-lab` as the focused harness reference package. It pairs with `@lssm-tech/example.agent-console`, which remains the business-oriented proof example for harness contracts.

## Architecture

- `src/docs/` contains docblocks and documentation-facing exports.
- `src/example.ts` is the runnable example entrypoint.
- `src/harness-lab.feature.ts` defines the feature entrypoint for docs/discovery.
- `src/index.ts` is the root public barrel and package entrypoint.
- `src/runtime/` contains the runnable sandbox and browser evaluation helpers plus the local browser fixture.
- `src/scenarios/` contains sandbox, Playwright browser, authenticated browser, visual baseline, and optional agent-browser scenario contracts.
- `src/suite/` contains the dual-mode harness suite contract.

## Public Entry Points

- Export `.` resolves through `./src/index.ts`.
- Export `./docs` resolves through `./src/docs/index.ts`.
- Export `./docs/harness-lab.docblock` is an alias of `./docs` and resolves through `./src/docs/index.ts`.
- Export `./example` resolves through `./src/example.ts`.
- Export `./harness-lab.feature` resolves through `./src/harness-lab.feature.ts`.
- Export `./runtime` resolves through `./src/runtime/index.ts`.
- Export `./runtime/runAgentBrowserEvaluation` resolves through `./src/runtime/runAgentBrowserEvaluation.ts`.
- Export `./runtime/runAuthenticatedBrowserEvaluation` resolves through `./src/runtime/runAuthenticatedBrowserEvaluation.ts`.
- Export `./runtime/runBrowserEvaluation` resolves through `./src/runtime/runBrowserEvaluation.ts`.
- Export `./runtime/runSandboxEvaluation` resolves through `./src/runtime/runSandboxEvaluation.ts`.
- Export `./runtime/runVisualEvaluation` resolves through `./src/runtime/runVisualEvaluation.ts`.
- Export `./scenarios` resolves through `./src/scenarios/index.ts`.
- Export `./scenarios/harnessLabAgentBrowser.scenario` resolves through `./src/scenarios/harnessLabAgentBrowser.scenario.ts`.
- Export `./scenarios/harnessLabAuthenticatedBrowser.scenario` resolves through `./src/scenarios/harnessLabAuthenticatedBrowser.scenario.ts`.
- Export `./scenarios/harnessLabBrowser.scenario` resolves through `./src/scenarios/harnessLabBrowser.scenario.ts`.
- Export `./scenarios/harnessLabSandbox.scenario` resolves through `./src/scenarios/harnessLabSandbox.scenario.ts`.
- Export `./scenarios/harnessLabVisual.scenario` resolves through `./src/scenarios/harnessLabVisual.scenario.ts`.
- Export `./suite` resolves through `./src/suite/index.ts`.
- The package publishes 21 total export subpaths; keep docs aligned with `package.json`.

## Local Commands

- `bun run dev` — contractspec-bun-build dev
- `bun run build` — contractspec-bun-build build
- `bun run test` — bun test
- `bun run lint` — bun 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

## Notes

- Browser tests use a real local Playwright run against an in-package HTTP fixture. Install Chromium locally before running `bun run test`.
- Agent-browser tests are optional and skip automatically when the `agent-browser` CLI is unavailable.
- Authenticated scenarios use named auth profile refs; storage state is created by the test harness and credentials are not embedded in scenario specs.


## Declared capabilities

This manifest does not declare a capability catalogue. Assess the package using its guide, import map and source.

## Catalogue metadata

```json
{
  "family": "runtime",
  "kind": "example",
  "status": "active",
  "adoptionMode": "reference-only",
  "stability": "stable",
  "platforms": [
    "web"
  ],
  "runtimes": [
    "browser"
  ],
  "entrypoints": [
    ".",
    "./docs",
    "./docs/harness-lab.docblock",
    "./example",
    "./harness-lab.feature",
    "./runtime",
    "./runtime/browserFixtureServer",
    "./runtime/createHarnessLabEvaluationTools",
    "./runtime/runAgentBrowserEvaluation",
    "./runtime/runAuthenticatedBrowserEvaluation",
    "./runtime/runBrowserEvaluation",
    "./runtime/runSandboxEvaluation",
    "./runtime/runVisualEvaluation",
    "./scenarios",
    "./scenarios/harnessLabAgentBrowser.scenario",
    "./scenarios/harnessLabAuthenticatedBrowser.scenario",
    "./scenarios/harnessLabBrowser.scenario",
    "./scenarios/harnessLabSandbox.scenario",
    "./scenarios/harnessLabVisual.scenario",
    "./suite",
    "./suite/harnessLabDualMode.suite"
  ],
  "examples": [],
  "replacements": [],
  "nonAdoptableRationale": "This example is published for reference and learning, not as a reusable library dependency."
}
```

## 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
[]
```

## 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/example.harness-lab` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/index.ts); verified source file.

- `@lssm-tech/example.harness-lab/docs` — subpath `./docs`
  - `unconditional`: `./src/docs/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/docs/index.ts); verified source file.

- `@lssm-tech/example.harness-lab/docs/harness-lab.docblock` — subpath `./docs/harness-lab.docblock`
  - `unconditional`: `./src/docs/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/docs/index.ts); verified source file.

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

- `@lssm-tech/example.harness-lab/harness-lab.feature` — subpath `./harness-lab.feature`
  - `unconditional`: `./src/harness-lab.feature.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/harness-lab.feature.ts); verified source file.

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

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

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

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

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

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

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

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

- `@lssm-tech/example.harness-lab/scenarios` — subpath `./scenarios`
  - `unconditional`: `./src/scenarios/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/scenarios/index.ts); verified source file.

- `@lssm-tech/example.harness-lab/scenarios/harnessLabAgentBrowser.scenario` — subpath `./scenarios/harnessLabAgentBrowser.scenario`
  - `unconditional`: `./src/scenarios/harnessLabAgentBrowser.scenario.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/scenarios/harnessLabAgentBrowser.scenario.ts); verified source file.

- `@lssm-tech/example.harness-lab/scenarios/harnessLabAuthenticatedBrowser.scenario` — subpath `./scenarios/harnessLabAuthenticatedBrowser.scenario`
  - `unconditional`: `./src/scenarios/harnessLabAuthenticatedBrowser.scenario.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/scenarios/harnessLabAuthenticatedBrowser.scenario.ts); verified source file.

- `@lssm-tech/example.harness-lab/scenarios/harnessLabBrowser.scenario` — subpath `./scenarios/harnessLabBrowser.scenario`
  - `unconditional`: `./src/scenarios/harnessLabBrowser.scenario.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/scenarios/harnessLabBrowser.scenario.ts); verified source file.

- `@lssm-tech/example.harness-lab/scenarios/harnessLabSandbox.scenario` — subpath `./scenarios/harnessLabSandbox.scenario`
  - `unconditional`: `./src/scenarios/harnessLabSandbox.scenario.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/scenarios/harnessLabSandbox.scenario.ts); verified source file.

- `@lssm-tech/example.harness-lab/scenarios/harnessLabVisual.scenario` — subpath `./scenarios/harnessLabVisual.scenario`
  - `unconditional`: `./src/scenarios/harnessLabVisual.scenario.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/scenarios/harnessLabVisual.scenario.ts); verified source file.

- `@lssm-tech/example.harness-lab/suite` — subpath `./suite`
  - `unconditional`: `./src/suite/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/suite/index.ts); verified source file.

- `@lssm-tech/example.harness-lab/suite/harnessLabDualMode.suite` — subpath `./suite/harnessLabDualMode.suite`
  - `unconditional`: `./src/suite/harnessLabDualMode.suite.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/examples/harness-lab/src/suite/harnessLabDualMode.suite.ts); verified source file.

## Package publication metadata

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

```json
{
  "types": "./dist/index.d.ts",
  "files": [
    "LICENSE",
    "README.md",
    "dist",
    "!**/*.test.*",
    "!**/*.spec.*",
    "!**/*.tsbuildinfo"
  ],
  "publishExports": {
    ".": {
      "types": "./dist/index.d.ts",
      "bun": "./dist/index.js",
      "node": "./dist/node/index.js",
      "default": "./dist/index.js"
    },
    "./docs": {
      "types": "./dist/docs/index.d.ts",
      "bun": "./dist/docs/index.js",
      "node": "./dist/node/docs/index.js",
      "default": "./dist/docs/index.js"
    },
    "./docs/harness-lab.docblock": {
      "types": "./dist/docs/index.d.ts",
      "bun": "./dist/docs/index.js",
      "node": "./dist/node/docs/index.js",
      "default": "./dist/docs/index.js"
    },
    "./example": {
      "types": "./dist/example.d.ts",
      "bun": "./dist/example.js",
      "node": "./dist/node/example.js",
      "default": "./dist/example.js"
    },
    "./harness-lab.feature": {
      "types": "./dist/harness-lab.feature.d.ts",
      "bun": "./dist/harness-lab.feature.js",
      "node": "./dist/node/harness-lab.feature.js",
      "default": "./dist/harness-lab.feature.js"
    },
    "./runtime": {
      "types": "./dist/runtime/index.d.ts",
      "bun": "./dist/runtime/index.js",
      "node": "./dist/node/runtime/index.js",
      "default": "./dist/runtime/index.js"
    },
    "./runtime/browserFixtureServer": {
      "types": "./dist/runtime/browserFixtureServer.d.ts",
      "bun": "./dist/runtime/browserFixtureServer.js",
      "node": "./dist/node/runtime/browserFixtureServer.js",
      "default": "./dist/runtime/browserFixtureServer.js"
    },
    "./runtime/createHarnessLabEvaluationTools": {
      "types": "./dist/runtime/createHarnessLabEvaluationTools.d.ts",
      "bun": "./dist/runtime/createHarnessLabEvaluationTools.js",
      "node": "./dist/node/runtime/createHarnessLabEvaluationTools.js",
      "default": "./dist/runtime/createHarnessLabEvaluationTools.js"
    },
    "./runtime/runAgentBrowserEvaluation": {
      "types": "./dist/runtime/runAgentBrowserEvaluation.d.ts",
      "bun": "./dist/runtime/runAgentBrowserEvaluation.js",
      "node": "./dist/node/runtime/runAgentBrowserEvaluation.js",
      "default": "./dist/runtime/runAgentBrowserEvaluation.js"
    },
    "./runtime/runAuthenticatedBrowserEvaluation": {
      "types": "./dist/runtime/runAuthenticatedBrowserEvaluation.d.ts",
      "bun": "./dist/runtime/runAuthenticatedBrowserEvaluation.js",
      "node": "./dist/node/runtime/runAuthenticatedBrowserEvaluation.js",
      "default": "./dist/runtime/runAuthenticatedBrowserEvaluation.js"
    },
    "./runtime/runBrowserEvaluation": {
      "types": "./dist/runtime/runBrowserEvaluation.d.ts",
      "bun": "./dist/runtime/runBrowserEvaluation.js",
      "node": "./dist/node/runtime/runBrowserEvaluation.js",
      "default": "./dist/runtime/runBrowserEvaluation.js"
    },
    "./runtime/runSandboxEvaluation": {
      "types": "./dist/runtime/runSandboxEvaluation.d.ts",
      "bun": "./dist/runtime/runSandboxEvaluation.js",
      "node": "./dist/node/runtime/runSandboxEvaluation.js",
      "default": "./dist/runtime/runSandboxEvaluation.js"
    },
    "./runtime/runVisualEvaluation": {
      "types": "./dist/runtime/runVisualEvaluation.d.ts",
      "bun": "./dist/runtime/runVisualEvaluation.js",
      "node": "./dist/node/runtime/runVisualEvaluation.js",
      "default": "./dist/runtime/runVisualEvaluation.js"
    },
    "./scenarios": {
      "types": "./dist/scenarios/index.d.ts",
      "bun": "./dist/scenarios/index.js",
      "node": "./dist/node/scenarios/index.js",
      "default": "./dist/scenarios/index.js"
    },
    "./scenarios/harnessLabAgentBrowser.scenario": {
      "types": "./dist/scenarios/harnessLabAgentBrowser.scenario.d.ts",
      "bun": "./dist/scenarios/harnessLabAgentBrowser.scenario.js",
      "node": "./dist/node/scenarios/harnessLabAgentBrowser.scenario.js",
      "default": "./dist/scenarios/harnessLabAgentBrowser.scenario.js"
    },
    "./scenarios/harnessLabAuthenticatedBrowser.scenario": {
      "types": "./dist/scenarios/harnessLabAuthenticatedBrowser.scenario.d.ts",
      "bun": "./dist/scenarios/harnessLabAuthenticatedBrowser.scenario.js",
      "node": "./dist/node/scenarios/harnessLabAuthenticatedBrowser.scenario.js",
      "default": "./dist/scenarios/harnessLabAuthenticatedBrowser.scenario.js"
    },
    "./scenarios/harnessLabBrowser.scenario": {
      "types": "./dist/scenarios/harnessLabBrowser.scenario.d.ts",
      "bun": "./dist/scenarios/harnessLabBrowser.scenario.js",
      "node": "./dist/node/scenarios/harnessLabBrowser.scenario.js",
      "default": "./dist/scenarios/harnessLabBrowser.scenario.js"
    },
    "./scenarios/harnessLabSandbox.scenario": {
      "types": "./dist/scenarios/harnessLabSandbox.scenario.d.ts",
      "bun": "./dist/scenarios/harnessLabSandbox.scenario.js",
      "node": "./dist/node/scenarios/harnessLabSandbox.scenario.js",
      "default": "./dist/scenarios/harnessLabSandbox.scenario.js"
    },
    "./scenarios/harnessLabVisual.scenario": {
      "types": "./dist/scenarios/harnessLabVisual.scenario.d.ts",
      "bun": "./dist/scenarios/harnessLabVisual.scenario.js",
      "node": "./dist/node/scenarios/harnessLabVisual.scenario.js",
      "default": "./dist/scenarios/harnessLabVisual.scenario.js"
    },
    "./suite": {
      "types": "./dist/suite/index.d.ts",
      "bun": "./dist/suite/index.js",
      "node": "./dist/node/suite/index.js",
      "default": "./dist/suite/index.js"
    },
    "./suite/harnessLabDualMode.suite": {
      "types": "./dist/suite/harnessLabDualMode.suite.d.ts",
      "bun": "./dist/suite/harnessLabDualMode.suite.js",
      "node": "./dist/node/suite/harnessLabDualMode.suite.js",
      "default": "./dist/suite/harnessLabDualMode.suite.js"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/integration.harness-runtime](https://lssm.co/docs/packages/integration.harness-runtime/): `workspace:^`
- [@lssm-tech/lib.contracts-spec](https://lssm.co/docs/packages/lib.contracts-spec/): `workspace:^`
- [@lssm-tech/lib.harness](https://lssm.co/docs/packages/lib.harness/): `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`: `^1.63.0`
- `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 lint:fix",
  "lint:fix": "node ../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../scripts/biome.cjs check --write .",
  "lint:check": "node ../../scripts/biome.cjs check .",
  "test": "bun test",
  "prebuild": "contractspec-bun-build prebuild",
  "typecheck": "tsgo --noEmit"
}
```

## Declared documentation links

- [Example Harness Lab documentation](https://www.npmjs.com/package/%40lssm-tech%2Fexample.harness-lab) — declared link; destination not verified.

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

## Existing agent-guide projection

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