Create Omni/Agents/Web.hs - main agents web surface

t-694.2·WorkTask·
·
·
·Omni/Agents/Web.hs
Parent:t-694·Created1 month ago·Updated1 week ago·pipeline runs →

Description

Edit

Create Omni/Agents/Web.hs — the main agents web surface. This is the WAI app that handles /agents/* routes.

Routes

  • GET /agents → Dashboard (active agents, recent agents, stats)
  • GET /agents/:id → Agent detail page
  • GET /agents/new → Spawn form
  • POST /agents/spawn → Spawn agent (calls Agentd daemon API)
  • POST /agents/:id/send → Send message (calls daemon API)
  • POST /agents/:id/stop → Stop agent (calls daemon API)
  • GET /agents/:id/events → HTMX partial for live event polling
  • GET /agents/:id/diff → Show git diff for agent's worktree
  • GET /agents/:id/files → File browser for worktree
  • Subnav: "interactive" (active, default), "pipeline" (links to existing pipeline page)

Architecture

  • WAI app similar to Omni/Pipeline/Web.hs
  • Calls Agentd daemon HTTP API (localhost:8400) for agent management
  • Reads event logs from daemon's log directory for display
  • Uses Omni.Web.Style.sharedShellWithSubnav for layout
  • Uses htmx for live updates and form submissions

Design

  • Use the shared Omni.Web.Style design system (ef-dream theme)
  • Dashboard: stats bar (running, idle, completed, total cost), then list of agents
  • Agent cards show: run ID, status badge, prompt preview, cost, elapsed time
  • Full-width, information-dense, mobile-friendly (like pipeline page)

Dependencies

  • Omni.Web.Style for shell/nav/CSS
  • http-conduit or http-client to call daemon API
  • aeson for JSON parsing
  • lucid for HTML
  • wai for request handling

Timeline (5)

🔄[human]Open → InProgress1 month ago
🔄[human]InProgress → Review1 month ago
💬[human]1 week ago

Ava verified: shipped as part of commit b05c4976 'agents web ui: interactive agent interface'. /agents endpoint live on beryllium and returns 200. Moving to Verified.

🔄[human]Review → Verified1 week ago