Extensions

HTTP Monitor

Check any URL from a tool call: status, latency, and change detection against the last check in the session. Timeout is mount config.

Shadcn Icon

Install with shadcn

Drops the full extension into your Eve project — same CLI as UI blocks.

First time? Add the @evedirectory registry

Or paste the URL template into components.json under registries. See the install guide.

Raw item: /r/http-monitor.json

# HTTP Monitor

An eve extension that adds a single tool, `check_url`, for probing HTTP(S) endpoints. The target URL is a tool input; the request timeout is mount configuration. Results include status (`up`/`down`), the HTTP status code, latency, and whether the status changed since the last check of that URL in the current session (tracked with extension-scoped `defineState`).

## Layout

- `package/` — the publishable extension (`@eve-directory/http-monitor`)
- `test-consumer/` — a fixture agent that mounts the extension with a deterministic `mockModel` and proves it end to end with `eve eval`

## Mount

```ts
// agent/extensions/monitor.ts
import monitor from "@eve-directory/http-monitor";

export default monitor({ timeoutMs: 5000 });
```

The mount namespace comes from the filename, so the tool composes as `monitor__check_url`.

## Tool

`check_url({ url })` returns:

```json
{
  "url": "https://example.com/",
  "status": "up",
  "statusCode": 200,
  "latencyMs": 84,
  "error": null,
  "previousStatus": null,
  "changed": false,
  "checkedAt": "2026-07-21T00:00:00.000Z"
}
```

`previousStatus` and `changed` compare against the last check of the same URL in the session, so an agent can report transitions ("example.com went down") instead of raw snapshots.

## Config

| Key         | Type   | Default | Description                         |
| ----------- | ------ | ------- | ----------------------------------- |
| `timeoutMs` | number | `10000` | Per-request timeout in milliseconds |

## Testing

The evals are fully deterministic: the fixture agent uses `mockModel` (no model provider needed) and each eval spins up a throwaway local HTTP server whose response code it controls, covering the "up", "down", and status-change cases.

```bash
cd package && npm install && npm run build
cd ../test-consumer && npm install && npx eve eval --strict
```