Staging
Ambient admin · design system

Quiet light

A calm instrument panel. Warm paper and ink, one deep-teal accent for primary actions, amber for Replying and Running, red only for failures and destructive actions, green kept for Awake, Active, Connected, Healthy and Published. Agent status is outlined; run status is filled, so the two never look alike.

Color tokens

Semantic names; every screen reads these, never raw hex.
--surfacePage background
--surface-raisedCards, tables, drawers, dialogs
--surface-sunkenHover, wells, read-only fields
--surface-selectedSelected rows, neutral pills
--borderHairlines
--border-strongInputs, dividers
--textPrimary ink
--text-mutedSecondary text
--text-subtleCaptions, hints (AA)
--code-bgJSON, prompts, logs
--prodEnvironment label when it says Production
--accentPrimary actions, focus, links
--accent-pressedHover and pressed primary
--accent-softSelected nav, chips
--attentionReplying, Running, Draft
--attention-softAttention pills, banners
--dangerFailures, destructive
--danger-softDanger pills, banners
--successAwake, Healthy, Published
--success-softSuccess pills
--infoQuestions, scheduled, notes
--info-softInfo pills, banners

Type scale

page-title 22/28 600Presets
metric 24/30 5001,284
section 16/24 600Lifecycle
card-title 14/20 600Needs attention
body 14/20 400The workflow is ended and started again with the same id.
table 13/18 400Lena Fischer · Plus · last reply 2 min ago
label 12/16 500Heartbeat timeout
mono 13/20 400ambient:inbox:guide:trier-demo
mono-sm 12/16 400{"heartbeat_timeout_s": 5}

Space, radius, elevation

4
8
12
16
20
24
32
40
48
4 · kbd, code
8 · default
999 · pills
--shadow-pop

Elevation has two levels: flat with a hairline (everything on the page) and --shadow-pop for what floats (menus, palette, drawers, dialogs, toasts). No cards inside cards.

Motion

--motion-fastHover, press, switch120 ms
--motion-baseMenus, tooltips, tabs200 ms
--motion-slowDrawers, dialogs280 ms
--motion-chartChart transitions400 ms
--ease-standardDefault curvecubic-bezier(.2,0,0,1)
--pulse-replyingReplying dots loop1200 ms

With reduced motion, durations drop to 0 and the Replying pulse becomes a static icon.

Chart palette

Fixed order, never cycled. Single-series charts use slot 1. Status colors are never reused as series colors.

1 · Completed--chart-1
2 · Aborted--chart-2
3 · Silent--chart-3
4 · Failed--chart-4
v1 · shared components

Components

StatusPill

Agent status is outlined. Run status is filled. Every pill has an icon and a word, never color alone.

AgentActiveIdle
RunAsleepAwakeReplyingFailedEnded
MCP serverConnectedErrorNot checked
WorkerHealthyDown
Preset versionDraftPublishedCurrent
Tool resultOKInvalid argumentsTimeout
PlaygroundIdleRunningError
Webhook deliveryAcceptedRejected
RoleAdminRead-only

Buttons and RoleLock

Primary, secondary and danger. With the Read-only role, actions stay visible but locked, with the reason.

Read-only role

SecretField

Shows Set or Not set. The value is never shown again; it can only be replaced.

Setwhsec_••••••3f9a
Not setNo value

ReadOnlyPanel

Settings owned by the deployment. Recessed, with a lock and the way to change them.

Provider · OpenRouterRead-only
https://openrouter.ai/api/v1 · timeout 60 s
Change by redeploying the worker.

JSONViewer

Mono on the code surface. Used for settings JSON, snapshots, schemas and results.

{
  "preset": "trier-tour-guide",
  "preset_version": 2,
  "model": "openrouter/free",
  "max_rounds": 8,
  "mcp_servers": [
    {
      "id": "github-mcp",
      "tools": [
        "list_issues"
      ]
    }
  ],
  "skills": [
    {
      "id": "trier-history",
      "hash": "sha256:9f2c1a…"
    }
  ]
}

DisabledSection

Only in the preset editor, for sections that are not in v1. Recessed one step below the page surface.

MemoryNot in v1PR9Not available in the first version. · PR9

ConfirmDialog

Destructive and irreversible actions ask for the exact name to be typed. The button stays locked until it matches.

Delete agent

Terminates its open runs first, then removes runs, sessions, conversations and mailboxes.

TranscriptEntry and EmptyState

Read-only run entries, collapsed tool rows, and the empty state for a new agent.

USERIs the audio guide app known to stop?
AIYes, it is a known issue on Android 15.▸ 1 tool call · list_issues ok
EVENTmuseum-eventsBasilica closes early today.
System Tool loop exceeded the round limit.
No runs yet. Runs start when someone chats with this agent.