> ## Documentation Index
> Fetch the complete documentation index at: https://docs.obversa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# First run

> Run one offline process from a local checkout, then one programmatic job.

From an Obversa checkout, after you install and build, run:

```bash theme={null}
pnpm example:offline
```

That command runs `examples/production-lines/offline-review.line.ts`. It does
not use a model or a network service.

The result is:

```json theme={null}
{
  "status": "pass",
  "attempts": 2,
  "summary": "config is complete"
}
```

The pipeline form, the review loop, and the callback gate have their own
commands:

```bash theme={null}
pnpm example:pipeline
pnpm example:review-loop
pnpm example:callback-gate
```

## Programmatic API

This program runs one agent job through a scripted engine. The scripted engine
does not make a network call.

```ts theme={null}
import { agentJob, run } from '@obversa/runtime';
import { MockEngine } from '@obversa/runtime/testing';

const engine = new MockEngine(() => 'ready');

const job = agentJob({
  label: 'prepare-item',
  engine: 'offline',
  prompt: 'Prepare the item.',
});

const result = await run(job, {
  engine: 'offline',
  engines: { offline: engine },
});

console.log(result.outcome.status);
```

The result is:

```text theme={null}
pass
```

`agentJob` creates one unit of work. `run` supplies the run context and starts
the job. `MockEngine` follows the public engine contract with fixed responses.

The runtime package does not expose a command. Use the programmatic API or the
workspace example scripts above.
