Agent Run Timeline
motiq/agent-run-timelineFreeComponent
A presentation-only timeline for a multi-step agent / automation run: an ordered rail of steps with tool calls, outputs, errors, retry attempts, optional nested sub-stages, human approval checkpoints, and run-level lifecycle controls (cancel / resume). The app owns the run and every status; the component never executes an agent, generates reasoning, invents confidence, or claims a step succeeded on its own.
Live preview
live · rendered by the registry
Rendered by motiq on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://www.motiq.dev/r/agent-run-timeline.jsonSource
1"use client";23import * as React from "react";4import { motion, AnimatePresence, type Transition } from "motion/react";56import { cn } from "@/lib/utils";7import {8 getStatusMeta,9 statusVars,10 formatTimestamp as defaultFormatTimestamp,11 useReducedMotion,12 useDisclosure,13 useCopy,14 useControllableState,15 scrollIntoViewWithin,16 streamItemVariants,17 type StatusTone,18} from "@/lib/motiq";1920/**21 * AgentRunTimeline — a run-level view of a multi-step agent / automation run.22 * Where a flat "tool call" list shows *what was invoked*, this shows *how a run23 * unfolds*: an ordered rail of steps, each with an optional tool call, output,24 * error, retry attempts, nested sub-stages, and a summary — plus human approval25 * checkpoints and run-level lifecycle controls (cancel / resume).26 *27 * It is strictly a *presentation* component. The application owns the run and28 * every status; the component never executes an agent, never generates29 * reasoning, never reveals chain-of-thought, never invents confidence or a30 * verification result, and never claims a step succeeded unless the supplied31 * `status` says so. It renders exactly the `run` you give it and reports user32 * intent back through callbacks.33 *34 * Accessibility: run + step status are conveyed with an icon AND a text label35 * AND a border — never colour alone — so they survive forced-colors. Steps are a36 * semantic ordered list; each step header is a real disclosure <button> with37 * `aria-expanded`; Approve / Reject / Retry / Cancel / Resume / Copy are real38 * <button>s with accessible names. A single polite `role="status"` region39 * announces lifecycle transitions (run + step) — never on every render. Under40 * `prefers-reduced-motion` everything renders in its final state with no motion41 * and no perpetual pulse after a step resolves. Focus is preserved on the42 * relevant step after Retry / Approve / Reject. Clean-room original.43 */4445/* -------------------------------------------------------------------------- */46/* Types */47/* -------------------------------------------------------------------------- */4849export type RunStatus =50 | "queued"51 | "running"52 | "waiting"53 | "completed"54 | "failed"55 | "cancelled"56 | "paused";5758export type StepStatus =59 | "pending"60 | "active"61 | "completed"62 | "failed"63 | "skipped"64 | "waiting_approval"65 | "cancelled";6667export interface ToolCall {68// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from motiq
All 100 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Activity Streamactivity-stream | motiq | Components | Free | 1 dep | |
| Adaptive Safe-Zone Gridadaptive-safe-zone-grid | motiq | Components | Free | no deps | |
| AI Response Streamai-response-stream | motiq | Components | Free | 1 dep | |
| Animated Accordionanimated-accordion | motiq | Components | Free | 2 deps | |
| Animated Buttonanimated-button | motiq | Components | Free | 1 dep | |
| Animated Dialoganimated-dialog | motiq | Components | Free | 2 deps | |
| Animated Gridanimated-grid | motiq | Components | Free | 2 deps | |
| Animated Iconsanimated-icons | motiq | Components | Free | 1 dep |
