APPLICATION

AbstractObserver

Gateway-only observability UI for AbstractFramework. A web-based monitoring dashboard that connects to AbstractGateway to discover workflows, launch and schedule runs, replay and stream durable ledgers, and control execution in real time.

npx --yes --package @abstractframework/observer -- abstractobserver

# Open http://localhost:3001
# Configure Gateway URL in Settings

Gateway-Only Observability

AbstractObserver is a browser SPA and tiny Node.js CLI that connects to an AbstractGateway HTTP API. It does not execute workflows — it renders state by fetching and streaming a durable run ledger from the gateway.

UI-Only Architecture

The browser talks to the gateway via HTTP fetch and SSE streaming. The CLI serves built static assets from dist/ with SPA fallback. No proxy, no execution engine — pure observation.

Replay-First Design

The UI pages through ledger history first, then opens an SSE stream to append new records. This ensures you see the full run history even when connecting mid-execution.

Durable Commands

Submit durable commands (pause, resume, cancel) back to the gateway. Commands are persistent and survive network interruptions — the gateway ensures delivery.

Ecosystem Integration

Part of the AbstractFramework ecosystem. Connects to AbstractGateway, which is backed by AbstractRuntime (durable runs + ledger) and AbstractCore (LLM + tools).

Observe, Launch, Control

A complete monitoring dashboard for your AbstractGateway workflows with real-time observability across every stage of execution.

Ledger Viewer

Inspect the durable, append-only ledger of step records for any run. Replay history via paged HTTP, then stream new steps live via SSE for real-time monitoring.

Flow Graph

Visualize workflow structure with an interactive flow graph rendered from bundle and workflow flow data. See the execution path and node connections at a glance.

Run Launcher

Start runs on-demand or schedule them with cron-style recurrence. Select workflows from discovered gateway bundles, configure inputs, and launch with a single click.

Digest & Stats

Derived statistics and summary views per run, including per-subflow breakdowns. Generate and regenerate summaries with an outdated indicator when data changes.

Voice Chat

Built-in run-scoped chat with optional voice: push-to-talk recording with gateway transcription and text-to-speech audio playback for hands-free interaction.

Knowledge Mindmap

Query and visualize the knowledge graph with an interactive node layout. Adjust algorithm, spread, and force simulation for optimal graph exploration.

Process Manager

High-trust process controls for start, stop, restart, and redeploy operations. Tail logs in real time and manage environment variables on managed services.

PWA Support

Installable as a Progressive Web App with service worker caching for faster reloads. Run data still streams from the gateway — the shell is cached locally.

Up and Running in Minutes

AbstractObserver requires Node.js ≥18 and a running AbstractGateway instance.

Install & Run

# Run with npx (no install needed)
npx --yes --package @abstractframework/observer -- abstractobserver

# Or install globally
npm install -g @abstractframework/observer
abstractobserver

# Custom port and host
PORT=8080 HOST=127.0.0.1 abstractobserver

Connect to Gateway

Open http://localhost:3001, go to Settings → Gateway and configure:

Gateway URL

Set to your gateway base URL (e.g. http://localhost:8081). Leave blank only for same-origin deployments behind a reverse proxy.

Auth Token

Optional bearer token sent as Authorization: Bearer <token> to authenticate with the gateway.

Development from Source

git clone https://github.com/lpalbou/abstractobserver
cd abstractobserver
npm install
npm run dev     # Vite dev server on port 3001
npm test       # Run unit tests (Vitest)
npm run build   # Production build to dist/

Gateway Endpoints

AbstractObserver calls these AbstractGateway HTTP endpoints. The source of truth for paths and request shapes is src/lib/gateway_client.ts.

Core Endpoints (Observe + Launch)

# Workflow discovery
GET  /api/gateway/bundles
GET  /api/gateway/bundles/{bundle_id}
GET  /api/gateway/bundles/{bundle_id}/flows/{flow_id}

# Run management
GET  /api/gateway/runs
GET  /api/gateway/runs/{run_id}
POST /api/gateway/runs/start
POST /api/gateway/runs/schedule

# Ledger (durable source of truth)
GET  /api/gateway/runs/{run_id}/ledger         # paged replay
GET  /api/gateway/runs/{run_id}/ledger/stream  # SSE stream

# Run control (durable commands)
POST /api/gateway/commands  # pause, resume, cancel

CLI Configuration

# Environment variables
PORT                              # HTTP port (default: 3001)
HOST                              # Bind address (default: 0.0.0.0)
ABSTRACTOBSERVER_MONITOR_GPU      # Enable GPU widget (on/off)
ABSTRACTOBSERVER_ENABLE_BACKLOG   # Enable Backlog + Process Manager

# CLI flag
abstractobserver --monitor-gpu