Appearance
Runtime Dashboard Example
This example assumes you already have a bridge service exposing the OpenOrca runtime contract for a LiveKit Agents backend.
src/App.tsx
tsx
import { OpenOrcaDashboard, OpenOrcaProvider } from "@openorca-ui/theme";
export default function App() {
return (
<OpenOrcaProvider>
<OpenOrcaDashboard
mode="runtime"
runtimeConfig={{
snapshotUrl: "http://localhost:8000/openorca/snapshot",
eventsUrl: "http://localhost:8000/openorca/events",
resolveInterventionUrl:
"http://localhost:8000/openorca/interventions/resolve",
runtimeInfoUrl: "http://localhost:8000/openorca/runtime",
}}
/>
</OpenOrcaProvider>
);
}Expected runtimeConfig
Use these endpoints for a bridge-backed LiveKit deployment. runtimeInfoUrl is optional; the dashboard can still operate in runtime mode without it:
snapshotUrl: returns the currentOpenOrcaSnapshoteventsUrl: streamsOpenOrcaEventpayloads over SSEresolveInterventionUrl: acceptsapprove,deny, andlaterruntimeInfoUrl(optional): returns runtime metadata withruntime: "livekit-agents"
End-to-End Scenario
A typical operator flow looks like this:
- The dashboard loads a LiveKit-backed snapshot and shows
runtime: "livekit-agents". - A new task appears as the bridge emits
task.created. - Tool activity and workflow progress stream into the action log through
action.loggedandtask.updatedevents. - The bridge emits
intervention.createdwhen the runtime pauses for an operator decision. - The operator sends
approve,deny, orlaterthroughPOST /openorca/interventions/resolve. - The bridge resumes or terminates the underlying workflow and emits the follow-up task and intervention updates.
See Runtime Bridge Contract, LiveKit Agents, and LiveKit Intervention Lifecycle.