How it works

Architecture

A clear split between the operator UI, the workflow engine, and the gateway that everything routes through.

Monorepo layout

PathWhat it is
apps/webThe operator UI — Next.js 15 / React 19 / Tailwind 4. Landing page, dashboard, and the incident war room.
apps/apiThe workflow engine — FastAPI + SQLModel/SQLite (Python 3.12). Runs the workflow, talks to the gateway, persists checkpoints.
infra/Deploy and live-setup config, including the documented real run.

Components

The product is reached only through MCP, and every model call goes through the TrueFoundry gateway. That single chokepoint is what makes routing, fallback, guardrails, and observability enforceable in one place.

  • Workflow engine — drives the staged incident workflow, mode transitions, checkpointing, and approvals.
  • Operator war room — renders Halo's read, the trace evidence (model, spans, guardrails, tools), the event timeline, and the approval gate.
  • MCP tool servers — two virtual servers: jaguar-observe (read) and jaguar-act (write). See Guardrails & safety.
  • Persistence — incidents, events, approvals, checkpoints, and trace links, so a run is durable and resumable.

The workflow

Every incident runs through an explicit workflow:

  • Detect & diagnose — gather live evidence through read tools, line it up against the deploy timeline, match a runbook.
  • Decide with a human — prepare a recovery action and hold it at the approval gate.
  • Execute — on approval, run the action through the write server.
  • Verify — re-check the product and report whether the fix actually held.

Checkpoints

Every stage persists a checkpoint, so the agent's state is durable: a run resumes from its current stage instead of restarting — which matters precisely when something failed mid-incident.

Nothing in Halo is Jaguar-specific. It reaches the product only through the MCP Gateway, so connecting a different product is configuration plus a thin action adapter — the mode ladder, approval gate, checkpoints, and self-verification all work unchanged.