{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "agentic-craft",
  "homepage": "https://agentic-craft.vercel.app",
  "items": [
    {
      "name": "composer",
      "type": "registry:ui",
      "title": "Composer",
      "description": "A composable AI chat input with stacked island panels, file attachments, suggestion chips, and context usage visualization.",
      "dependencies": [
        "@hugeicons/react",
        "@hugeicons/core-free-icons",
        "@base-ui/react"
      ],
      "registryDependencies": ["dropdown-menu", "textarea", "tooltip"],
      "files": [
        {
          "path": "registry/base-nova/ui/composer.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/base-nova/ui/composer-input.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/base-nova/ui/composer-toolbar.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/base-nova/ui/composer-islands.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/base-nova/ui/composer-attachments.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/base-nova/ui/composer-suggestions.tsx",
          "type": "registry:ui"
        }
      ],
      "css": {
        "@keyframes composer-send-press": {
          "0%": {
            "transform": "scale(1)"
          },
          "40%": {
            "transform": "scale(0.82)"
          },
          "100%": {
            "transform": "scale(1)"
          }
        },
        "@keyframes composer-island-enter": {
          "from": {
            "opacity": "0",
            "transform": "translateY(16px)"
          },
          "to": {
            "opacity": "1",
            "transform": "translateY(0)"
          }
        },
        "@keyframes composer-arrow-up": {
          "0%": {
            "transform": "translateY(0)",
            "opacity": "1"
          },
          "50%": {
            "transform": "translateY(-6px)",
            "opacity": "0"
          },
          "51%": {
            "transform": "translateY(6px)",
            "opacity": "0"
          },
          "100%": {
            "transform": "translateY(0)",
            "opacity": "1"
          }
        },
        "@keyframes composer-chip-fill": {
          "0%": {
            "background-color": "transparent"
          },
          "30%": {
            "background-color": "var(--color-muted)"
          },
          "100%": {
            "background-color": "transparent"
          }
        },
        "@keyframes composer-slide-in": {
          "from": {
            "opacity": "0",
            "transform": "translateY(4px)"
          },
          "to": {
            "opacity": "1",
            "transform": "translateY(0)"
          }
        },
        "@utility animate-composer-send": {
          "animation": "composer-send-press 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)"
        },
        "@utility animate-composer-island": {
          "animation": "composer-island-enter 0.35s cubic-bezier(0.22, 1, 0.36, 1) forwards"
        },
        "@utility animate-composer-arrow": {
          "animation": "composer-arrow-up 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)"
        },
        "@utility animate-composer-chip": {
          "animation": "composer-chip-fill 0.4s ease"
        },
        "@utility animate-composer-slide": {
          "animation": "composer-slide-in 0.2s cubic-bezier(0.22, 1, 0.36, 1) forwards"
        },
        "[data-slot=\"tool-tree-item\"] [data-spine-mask]": {
          "display": "none"
        },
        "[data-slot=\"tool-tree-item\"]:last-child [data-spine-mask]": {
          "display": "block"
        },
        "[data-compact-touch]": {
          "position": "relative"
        },
        "[data-compact-touch]::after": {
          "content": "\"\"",
          "position": "absolute",
          "left": "50%",
          "top": "50%",
          "width": "44px",
          "height": "44px",
          "transform": "translate(-50%, -50%)"
        }
      }
    },
    {
      "name": "tool-call",
      "type": "registry:ui",
      "title": "Tool Call",
      "description": "Universal tool call component with running/completed/failed status states. Works standalone for sequential calls or inside ToolTree for parallel execution.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "files": [
        {
          "path": "registry/base-nova/ui/tool-call.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tool-tree",
      "type": "registry:ui",
      "title": "Tool Tree",
      "description": "A composable tree visualization for parallel tool calls with L-connectors, expandable children, and hover timestamps. Wraps ToolCall children.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": ["arielconti10/agentic-craft/tool-call"],
      "files": [
        {
          "path": "registry/base-nova/ui/tool-tree.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "reference-item",
      "type": "registry:ui",
      "title": "Reference Item",
      "description": "A composable item row for sources, memories, findings, files, tasks, and agent activity with media, metadata, and action slots.",
      "files": [
        {
          "path": "registry/base-nova/ui/reference-item.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "status-indicator",
      "type": "registry:ui",
      "title": "Status Indicator",
      "description": "The product-wide status vocabulary: one shape per state — check for complete, spinner for active, dashed circle for pending, clock for blocked, alert for warning and error — with sr-only labels.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "files": [
        {
          "path": "registry/base-nova/ui/status-indicator.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "observable-work",
      "type": "registry:ui",
      "title": "Observable Work",
      "description": "A step disclosure pattern for showing visible agent work, touched sources, state, and completion without exposing hidden reasoning traces.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": ["arielconti10/agentic-craft/status-indicator"],
      "files": [
        {
          "path": "registry/base-nova/ui/observable-work.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "decision-surface",
      "type": "registry:ui",
      "title": "Decision Surface",
      "description": "A composable confirmation surface for approvals, risky actions, clarifying interruptions, and rollback decisions.",
      "registryDependencies": ["button", "dialog"],
      "files": [
        {
          "path": "registry/base-nova/ui/decision-surface.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "file-lifecycle",
      "type": "registry:ui",
      "title": "File Lifecycle",
      "description": "A file attachment lifecycle pattern for drag states, validation, upload progress, rejection, retry, and removal.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": ["badge", "button", "progress"],
      "files": [
        {
          "path": "registry/base-nova/ui/file-lifecycle.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "agent-status-table",
      "type": "registry:ui",
      "title": "Agent Status Table",
      "description": "A rich operational table for multiple agents with status, active task, progress, confidence, cost, and last activity.",
      "registryDependencies": [
        "progress",
        "arielconti10/agentic-craft/status-indicator",
        "table"
      ],
      "files": [
        {
          "path": "registry/base-nova/ui/agent-status-table.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "clarifying-questions",
      "type": "registry:ui",
      "title": "Clarifying Questions",
      "description": "A controlled question group for collecting missing requirements through text, single-choice, and multiple-choice prompts.",
      "registryDependencies": [
        "button",
        "field",
        "input-group",
        "toggle-group"
      ],
      "files": [
        {
          "path": "registry/base-nova/ui/clarifying-questions.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "action-preview",
      "type": "registry:ui",
      "title": "Action Preview",
      "description": "A locked consequence preview for approvals, external actions, document changes, and rollback-aware agent work.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "files": [
        {
          "path": "registry/base-nova/ui/action-preview.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "source-preview",
      "type": "registry:ui",
      "title": "Source Preview",
      "description": "A citation and provenance preview card with source title, excerpt, location, navigation, and open-source action.",
      "dependencies": [
        "@base-ui/react",
        "@hugeicons/react",
        "@hugeicons/core-free-icons"
      ],
      "registryDependencies": ["button"],
      "files": [
        {
          "path": "registry/base-nova/ui/source-preview.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "artifact-document",
      "type": "registry:ui",
      "title": "Artifact Document",
      "description": "A source-backed output document surface with cited sections, missing-source states, version metadata, and review status.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": ["badge", "button"],
      "files": [
        {
          "path": "registry/base-nova/ui/artifact-document.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "usage-meter",
      "type": "registry:ui",
      "title": "Usage Meter",
      "description": "A compact token, cost, limit, and coverage meter for visible agent run budgets.",
      "registryDependencies": ["progress"],
      "files": [
        {
          "path": "registry/base-nova/ui/usage-meter.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "contextual-workbench",
      "type": "registry:ui",
      "title": "Contextual Workbench",
      "description": "A responsive agent workbench that keeps chat visible while opening an inspectable browser, source, diff, or artifact surface beside it.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": ["button", "resizable", "tabs", "toggle-group"],
      "files": [
        {
          "path": "registry/base-nova/ui/contextual-workbench.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "effective-policy-preview",
      "type": "registry:ui",
      "title": "Effective Policy Preview",
      "description": "A compact settings summary showing the agent policy currently produced by autonomy, approval, notification, and memory controls.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": ["arielconti10/agentic-craft/status-indicator"],
      "files": [
        {
          "path": "registry/base-nova/ui/effective-policy-preview.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "memory-ledger-item",
      "type": "registry:ui",
      "title": "Memory Ledger Item",
      "description": "A provenance-rich memory row with scope, expiry, last-used metadata, source inspection, edit, and removal actions.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": [
        "badge",
        "button",
        "arielconti10/agentic-craft/reference-item"
      ],
      "files": [
        {
          "path": "registry/base-nova/ui/memory-ledger-item.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "run-trace",
      "type": "registry:ui",
      "title": "Run Trace",
      "description": "A dense operational trace for background runs with source touches, status, warnings, timing metadata, and expandable recovery detail.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "files": [
        {
          "path": "registry/base-nova/ui/run-trace.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "handoff-packet",
      "type": "registry:ui",
      "title": "Handoff Packet",
      "description": "An ownership-transfer surface for multi-agent workflows with sender, receiver, payload, source basis, receiver action, and recovery path.",
      "dependencies": ["@hugeicons/react", "@hugeicons/core-free-icons"],
      "registryDependencies": [
        "button",
        "arielconti10/agentic-craft/status-indicator"
      ],
      "files": [
        {
          "path": "registry/base-nova/ui/handoff-packet.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "review-workflow",
      "type": "registry:block",
      "title": "Review Workflow",
      "description": "An end-to-end agentic review workflow block with observable work, source-scope clarification, locked action preview, and approval.",
      "registryDependencies": [
        "arielconti10/agentic-craft/action-preview",
        "badge",
        "button",
        "arielconti10/agentic-craft/clarifying-questions",
        "arielconti10/agentic-craft/decision-surface",
        "arielconti10/agentic-craft/observable-work",
        "arielconti10/agentic-craft/reference-item"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/review-workflow.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "approval-workflow",
      "type": "registry:block",
      "title": "Approval Workflow",
      "description": "A human-in-the-loop approval block with observable preparation, locked action preview, policy reason, expiry, and decision surface.",
      "registryDependencies": [
        "arielconti10/agentic-craft/action-preview",
        "badge",
        "button",
        "arielconti10/agentic-craft/decision-surface",
        "arielconti10/agentic-craft/observable-work"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/approval-workflow.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "clarifying-workflow",
      "type": "registry:block",
      "title": "Clarifying Workflow",
      "description": "A missing-decision collection block with structured answer options and a paused observable-work trace.",
      "registryDependencies": [
        "badge",
        "arielconti10/agentic-craft/clarifying-questions",
        "arielconti10/agentic-craft/observable-work"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/clarifying-workflow.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "source-backed-artifact",
      "type": "registry:block",
      "title": "Source-Backed Artifact",
      "description": "A provenance workflow block that pairs a source-backed output document with source previews and usage budget.",
      "dependencies": ["@hugeicons/core-free-icons"],
      "registryDependencies": [
        "arielconti10/agentic-craft/artifact-document",
        "arielconti10/agentic-craft/source-preview",
        "arielconti10/agentic-craft/usage-meter"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/source-backed-artifact.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "memory-review",
      "type": "registry:block",
      "title": "Memory Review",
      "description": "A memory review queue block with provenance, scope, expiry, source preview, and save/reject decision.",
      "registryDependencies": [
        "badge",
        "button",
        "arielconti10/agentic-craft/decision-surface",
        "arielconti10/agentic-craft/memory-ledger-item",
        "arielconti10/agentic-craft/source-preview"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/memory-review.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "run-monitor",
      "type": "registry:block",
      "title": "Background Run Monitor",
      "description": "A background run monitoring block with an operational trace, visible run budget, agent status table, warnings, and blocked recovery path.",
      "registryDependencies": [
        "arielconti10/agentic-craft/agent-status-table",
        "badge",
        "arielconti10/agentic-craft/run-trace",
        "arielconti10/agentic-craft/usage-meter"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/run-monitor.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "multi-agent-handoff",
      "type": "registry:block",
      "title": "Multi-Agent Handoff",
      "description": "A multi-agent ownership transfer block with handoff packet, sender/receiver state, source basis, recovery path, trace, and agent status table.",
      "registryDependencies": [
        "arielconti10/agentic-craft/agent-status-table",
        "badge",
        "arielconti10/agentic-craft/handoff-packet",
        "arielconti10/agentic-craft/run-trace"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/multi-agent-handoff.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "agent-settings",
      "type": "registry:block",
      "title": "Agent Settings",
      "description": "A durable agent policy settings block with clickable switch labels and effective policy preview.",
      "registryDependencies": [
        "badge",
        "arielconti10/agentic-craft/effective-policy-preview",
        "field",
        "switch"
      ],
      "files": [
        {
          "path": "registry/base-nova/blocks/agent-settings.tsx",
          "type": "registry:block"
        }
      ]
    }
  ]
}
