open-index/open-npm huggingface dataset:
npm package: @opovid/core
Description: Core runtime for the Opovid testing library.
Latest version: 0.1.0

# `@opovid/core`

Minimal actor, task, question, and execution-report primitives for Opovid.

## Install

```bash
npm install @opovid/core
```

## Use

```ts
import { Actor, OpovidError, question, task, withRetry } from "@opovid/core";

const openDashboard = task("opens the dashboard", () => {});
const currentHeading = question("reads the heading", () => "Dashboard");

const ava = Actor.named("Ava");

await ava.attemptsTo(withRetry(2, openDashboard));
const heading = await ava.asksFor(currentHeading);
const report = ava.report();

try {
  await ava.attemptsTo(task("fails loudly", () => {
    throw new Error("boom");
  }));
} catch (error) {
  if (error instanceof OpovidError) {
    console.log(error.step.description);
  }
}
```

The full project guide lives in the repository root README.
npm package: @opovid/http
Description: Generic HTTP ability adapter for Opovid.
Latest version: 0.1.0

# `@opovid/http`

Thin HTTP ability for Opovid actors.

## Install

```bash
npm install @opovid/http @opovid/core
```

## Use

```ts
import { Actor } from "@opovid/core";
import { CallAnApi } from "@opovid/http";

const actor = Actor.named("Ari").can(
  CallAnApi.usingFetch(fetch, { baseUrl: "https://api.example.test" }),
);

const response = await actor.abilityTo(CallAnApi).get("/health");
```

See the root README for fuller API and test-flow examples.
npm package: @opovid/memory
Description: Actor memory ability for Opovid.
Latest version: 0.1.0

# `@opovid/memory`

In-memory state bag for actors.

## Install

```bash
npm install @opovid/memory @opovid/core
```

## Use

```ts
import { Actor } from "@opovid/core";
import { RememberTheState, rememberedBy } from "@opovid/memory";

const noa = Actor.named("Noa").can(RememberTheState.usingDefaults());

rememberedBy(noa).remember("token", "jwt-token");
rememberedBy(noa).clear();
```

See the root README for fuller usage patterns.
npm package: @opovid/playwright
Description: Thin Playwright ability adapter for Opovid.
Latest version: 0.1.0

# `@opovid/playwright`

Thin Playwright `Page` ability for Opovid actors.

## Install

```bash
npm install @opovid/playwright @opovid/core playwright
```

## Use

```ts
import { Actor } from "@opovid/core";
import { BrowseTheWeb } from "@opovid/playwright";

const actor = Actor.named("Ava").can(BrowseTheWeb.using(page));
```

See the root README for complete browser-flow examples.
npm package: @opovid/spec
Description: Use-case specification and compilation support for Opovid.
Latest version: 0.1.0

# `@opovid/spec`

Use-case authoring and compilation support for Opovid.

## Install

```bash
npm install @opovid/spec @opovid/core
```

## Use

```ts
import { compileUseCase, createRegistry, scenario, step, useCase, validateUseCase } from "@opovid/spec";
```

The root README and `docs/tdd-support.md` explain the intended workflow in detail.

Use `validateUseCase(...)` for a dry run when you want missing registry entries to fail fast at suite startup.