Control Plane

The AMOF Control Plane is a web-based management interface consisting of a FastAPI backend and a Next.js 15 frontend with real-time observability, AI agent interaction, and release control.

Starting the Control Plane

amof server start     # Start backend + frontend
amof server status    # Check if running
amof server restart   # Restart both services
amof server stop      # Shut down

This launches the Backend API at http://localhost:8000 (Swagger at /docs) and the Frontend UI at http://localhost:3000.

Backend API

PropertyDetails
FrameworkFastAPI with automatic OpenAPI documentation
Base path/api/v1
CORSAll origins allowed (development configuration)
Health checkGET /health returns {"status": "ok"}
ServerUvicorn on 127.0.0.1:8000 with hot reload

Ecosystem Router

MethodPathDescription
GET/ecosystems/List all ecosystems
POST/ecosystems/Create a new ecosystem
GET/ecosystems/{name}Get ecosystem details
DELETE/ecosystems/{name}Delete an ecosystem

Ecosystem Actions

All actions are POST /api/v1/ecosystems/{name}/actions/<action>:

ActionDescription
installBootstrap workspace
statusGet workspace status
syncSync all repositories
pushPush all branches
archiveArchive workspace
agentRun AI agent with a prompt
indexIndex the codebase
spin/deployProvision infrastructure
spin/destroyTear down infrastructure
ticket-startStart a ticket
ticket-switchSwitch active ticket

Release Router

MethodPathDescription
GET/release/statusCurrent version and available bumps
GET/release/logRelease history from audit trail
POST/release/validateValidate release readiness
POST/release/bumpBump version (patch/minor/major)
POST/release/promotePromote pre-release stage

SSE Streaming

# Per-run stream
GET /api/v1/runs/{run_id}/stream
Content-Type: text/event-stream

# Global log stream
GET /api/v1/logs/stream
Content-Type: text/event-stream

Frontend UI

LayerTechnology
FrameworkNext.js 15 with App Router
StylingTailwind CSS + tailwindcss-animate
ComponentsShadcn UI pattern (Radix + class-variance-authority)
IconsLucide React
Markdownreact-markdown for agent responses
Terminalansi-to-react for ANSI color rendering
ThemeDark-first with next-themes, HSL tokens

Dashboard (/)

  • Ecosystem Grid -- Cards showing each ecosystem status, running agents, and last indexed time
  • Orchestrator Log -- Real-time terminal output from all active runs via SSE
  • God Agent Chat -- Persistent chat panel for system-wide queries

Ecosystem Detail (/ecosystems/[name])

SectionActions
OverviewEcosystem metadata and status
BranchesTicket list, start, switch, end
WorkspaceInstall, Archive, Discard
Git & SyncStatus, Sync, Push, Create PRs
EnvironmentSpin Deploy, Spin Destroy, Validate
ReleaseStatus, Log, Bump, Promote
Agent ChatInteractive chat scoped to this ecosystem

Agent Chat Modes

ModeBehavior
AskRead-only questions; agent explores without modifying
PlanAnalysis mode; produces a structured execution plan
ExecuteFull mode; can read, write, and run commands

API Hooks

useAmofApi

ReturnTypePurpose
triggerTask()functionPOST to agent endpoint, then open SSE stream
logLinesstring[]Reactive buffer of log lines
chatMessagesChatMessage[]Parsed chat messages from stream
sendMessage()functionSend a user message
isStreamingbooleanWhether an SSE stream is active