{
 "system": "agent-pitstop",
 "install": "npx shadcn@latest add https://agent-pitstop.vercel.app/r/<n>.json",
 "deps": [
  "react",
  "tailwind",
  "motion"
 ],
 "guarantees": [
  "state is never communicated by color alone",
  "failures keep their inputs visible",
  "stopping preserves partial work",
  "nothing irreversible without explicit consent",
  "confidence renders as bands, never decimals"
 ],
 "components": [
  {
   "n": "agent-inbox",
   "c": "AgentInbox",
   "d": "The review queue for background agents.",
   "pr": [
    "Delegation contracts"
   ],
   "p": [
    "items:InboxItem[]",
    "onOpen?:(id: string) => void // Called when the human opens a run for review",
    "label?:string",
    "className?:string // Extra classes merged onto the root element"
   ]
  },
  {
   "n": "agent-roster",
   "c": "AgentRoster",
   "d": "The team sheet for multi-agent runs: who's working, who's waiting, who's blocked, and on what.",
   "pr": [
    "Legible thinking"
   ],
   "p": [
    "agents:RosterAgent[]",
    "label?:string",
    "className?:string // Extra classes merged onto the root element"
   ]
  },
  {
   "n": "agent-task-list",
   "c": "AgentTaskList",
   "d": "The agent's plan, made visible: what it will do, what it's doing, what's done, and what broke.",
   "pr": [
    "Legible thinking",
    "Latency choreography",
    "Graceful failure"
   ],
   "p": [
    "label?:string // Short label for the overall plan, e.g. \"Booking your trip\"",
    "tasks:AgentTask[]",
    "className?:string // Extra classes merged onto the root element"
   ]
  },
  {
   "n": "approval-gate",
   "c": "ApprovalGate",
   "d": "An inline permission request: the agent states what it wants to do, shows the exact scope, and waits.",
   "pr": [
    "Delegation contracts",
    "Calibrated trust",
    "Interruptibility",
    "Legible thinking"
   ],
   "p": [
    "title:string // Plain-language request, e.g. \"Send the Q3 summary email?\"",
    "reason?:string // Why the agent wants to do this",
    "scope:ScopeItem[]",
    "state?:ApprovalState // Controlled state; omit to let the component manage it",
    "onApprove?:() => void",
    "onDeny?:() => void",
    "approveLabel?:string",
    "denyLabel?:string",
    "className?:string // Extra classes merged onto the root element"
   ]
  },
  {
   "n": "confidence-meter",
   "c": "ConfidenceMeter",
   "d": "Honest uncertainty display: confidence as coarse bands, never decimal theater, paired with a verification affordance exactly when doubt is warranted.",
   "pr": [
    "Calibrated trust"
   ],
   "p": [
    "claim:string // The claim being qualified, e.g. \"This invoice matches PO #4412\"",
    "confidence:number // Model confidence 0..1; rendered as a band, not a number",
    "basis?:string // What the confidence is based on, e.g. \"3 matching fields, 1 OCR gap\"",
    "threshold?:number // Below this, the verify affordance becomes prominent (default 0.75)",
    "onVerify?:() => void",
    "verifyLabel?:string",
    "className?:string // Extra classes merged onto the root element"
   ]
  },
  {
   "n": "context-budget",
   "c": "ContextBudget",
   "d": "A delegation contract's limits, made visible: tokens, spend, or time against their caps.",
   "pr": [
    "Delegation contracts"
   ],
   "p": [
    "lines:BudgetLine[]",
    "label?:string",
    "onRaise?:(label: string) => void // Called when the human raises a cap after one is hit",
    "className?:string // Extra classes merged onto the root element"
   ]
  },
  {
   "n": "interrupt-bar",
   "c": "InterruptBar",
   "d": "The steering wheel and the brake for a running agent.",
   "pr": [
    "Interruptibility"
   ],
   "p": [
    "activity:string // What the agent is doing right now, e.g. \"Comparing 14 flights\"",
    "elapsed?:number // Seconds elapsed in the run",
    "state?:InterruptBarState",
    "keptOnStop?:string // What was kept when stopped, e.g. \"Search results saved\"",
    "onStop?:() => void",
    "onSteer?:(message: string) => void // Called with the user's mid-run redirect",
    "acknowledgment?:string // The agent's acknowledgment of the last steer, shown inline",
    "className?:string // Extra classes merged onto the root element"
   ]
  },
  {
   "n": "tool-call-card",
   "c": "ToolCallCard",
   "d": "Shows an agent's tool call with legible, progressive disclosure.",
   "pr": [
    "Legible thinking",
    "Calibrated trust",
    "Graceful failure"
   ],
   "p": [
    "name:string // Machine name of the tool, e.g. \"search_flights\"",
    "intent:string // One-line human intent, e.g. \"Searching SFO → JFK for Aug 12\"",
    "state:ToolCallState",
    "args?:string // Pretty-printed arguments (JSON string or plain text)",
    "detail?:string // Result or error detail",
    "elapsed?:number // Seconds elapsed while running (optional)",
    "className?:string // Extra classes merged onto the root element"
   ]
  }
 ]
}