@contractspec/example.harness-lab
v3.7.12
Published
Focused harness example for ContractSpec scenarios, suites, orchestration, and runtime adapters.
Readme
@contractspec/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-scenarioandharness-suiteexports. - Orchestration layer:
HarnessRunner,HarnessEvaluationRunner, and replay bundle generation. - Runtime layer:
SandboxedCodeExecutionAdapter,PlaywrightBrowserHarnessAdapter,DefaultHarnessTargetResolver, andInMemoryHarnessArtifactStore. - A deterministic local browser fixture that stays offline and exercises the real Playwright lane.
src/docs/contains docblocks and documentation-facing exports.
Running Locally
From packages/examples/harness-lab:
bunx playwright install chromiumbun run buildbun run testbun run typecheck
Usage
Use @contractspec/example.harness-lab as the focused harness reference package. It pairs with @contractspec/example.agent-console, which remains the business-oriented proof example for harness contracts.
Architecture
src/docs/contains docblocks and documentation-facing exports.src/example.tsis the runnable example entrypoint.src/harness-lab.feature.tsdefines the feature entrypoint for docs/discovery.src/index.tsis 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 the focused scenario contracts.src/suite/contains the dual-mode harness suite contract.
Public Entry Points
- Export
.resolves through./src/index.ts. - Export
./docsresolves through./src/docs/index.ts. - Export
./docs/harness-lab.docblockresolves through./src/docs/harness-lab.docblock.ts. - Export
./exampleresolves through./src/example.ts. - Export
./harness-lab.featureresolves through./src/harness-lab.feature.ts. - Export
./runtimeresolves through./src/runtime/index.ts. - Export
./runtime/runBrowserEvaluationresolves through./src/runtime/runBrowserEvaluation.ts. - Export
./runtime/runSandboxEvaluationresolves through./src/runtime/runSandboxEvaluation.ts. - Export
./scenariosresolves through./src/scenarios/index.ts. - Export
./scenarios/harnessLabBrowser.scenarioresolves through./src/scenarios/harnessLabBrowser.scenario.ts. - Export
./scenarios/harnessLabSandbox.scenarioresolves through./src/scenarios/harnessLabSandbox.scenario.ts. - Export
./suiteresolves through./src/suite/index.ts. - The package publishes 12 total export subpaths; keep docs aligned with
package.json.
Local Commands
bun run dev— contractspec-bun-build devbun run build— bun run prebuild && bun run build:bundle && bun run build:typesbun run test— bun testbun run lint— bun lint:fixbun run lint:check— biome check .bun run lint:fix— biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .bun run typecheck— tsc --noEmitbun run publish:pkg— bun publish --tolerate-republish --ignore-scripts --verbosebun run publish:pkg:canary— bun publish:pkg --tag canarybun run clean— rimraf dist .turbobun run build:bundle— contractspec-bun-build transpilebun run build:types— contractspec-bun-build typesbun 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.
