{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "agent-start-button",
  "type": "registry:ui",
  "description": "Start/stop button for the agent session",
  "files": [
    {
      "path": "components/ui/AgentStartButton.tsx",
      "content": "import { useState } from \"react\";\nimport { useAgentState } from \"@deepgram/react\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface AgentStartButtonProps {\n  className?: string;\n  startLabel?: React.ReactNode;\n  connectingLabel?: React.ReactNode;\n  stopLabel?: React.ReactNode;\n  reconnectingLabel?: React.ReactNode;\n  onClick?: () => void;\n}\n\nexport function AgentStartButton({\n  className,\n  startLabel        = \"Start\",\n  connectingLabel   = \"Connecting…\",\n  stopLabel         = \"Stop\",\n  reconnectingLabel = \"Reconnecting…\",\n  onClick,\n}: AgentStartButtonProps) {\n  const { state, isActive, isConnecting, isReconnecting, start, stop } = useAgentState();\n  const [starting, setStarting] = useState(false);\n\n  async function handleClick() {\n    if (isActive || isReconnecting) {\n      stop();\n    } else {\n      setStarting(true);\n      try { await start(); } finally { setStarting(false); }\n    }\n    onClick?.();\n  }\n\n  const label = (starting || isConnecting)\n    ? connectingLabel\n    : isReconnecting\n    ? reconnectingLabel\n    : isActive\n    ? stopLabel\n    : startLabel;\n\n  // Ghost style when active/reconnecting; primary fill otherwise\n  const isGhost = isActive || isReconnecting;\n\n  return (\n    <Button\n      variant={isGhost ? \"outline\" : \"default\"}\n      data-agent-start-button\n      data-state={state}\n      disabled={starting || isConnecting}\n      aria-label={typeof label === \"string\" ? label : \"Start agent\"}\n      onClick={handleClick}\n      className={cn(\n        \"dg:w-full dg:font-semibold\",\n        !isGhost && \"dg:hover:bg-[var(--primary-hover)] dg:active:bg-[var(--primary-active)]\",\n        className\n      )}\n    >\n      {label}\n    </Button>\n  );\n}\n",
      "type": "registry:ui",
      "target": ""
    }
  ],
  "dependencies": [
    "@deepgram/react"
  ],
  "registryDependencies": [
    "utils",
    "button"
  ]
}
