← All modules
tools

Pilot

Live

AI-assisted browser automation for provider dashboards.

event.type === "pilot:run" observe/modules/pilot
Overview

What Pilot does

Pilot captures AI-assisted browser automation runs as first-class Observe events. Provider login checks, dashboard walks, cost-puller sessions, and recovery attempts can all publish run status, failed step metadata, and captured artifacts.

The module is still preview-owned by the standalone Pilot product. Observe treats it as an event source and module surface while final ownership of the browser automation app stays separate.

Wire payload

Same shape, three syntaxes

The wire protocol is plain HTTP, plain JSON, HMAC-SHA256. The TypeScript tab uses the SDK; the cURL tab is the raw HTTP equivalent; the Python tab shows the preview SDK shape.

import { createCuittyClient } from "@cuitty/sdk";

const cuitty = createCuittyClient({
  observeUrl: "https://observe.cuitty.com",
  projectId: process.env.CUITTY_PROJECT_ID!,
  apiKey: process.env.CUITTY_API_KEY!,
});
cuitty.start();

await cuitty.emit({
  type: "pilot:run",
  timestamp: new Date().toISOString(),
  data: {
    runId: "run_01jz",
    playbookId: "aws-cost-puller",
    status: "completed",
    durationMs: 42100,
    provider: "aws",
  },
});
Storage

Database schema

Excerpt from observe/modules/pilot/schema.sql. One libSQL file per module — back it up with cp.

CREATE TABLE IF NOT EXISTS pilot_runs (
  id TEXT PRIMARY KEY,
  playbook_id TEXT NOT NULL,
  provider TEXT,
  status TEXT NOT NULL,
  failed_step_id TEXT,
  error_message TEXT,
  created_at INTEGER DEFAULT (unixepoch())
);

Related modules