{
  "$id": "/graph.json",
  "generated": "2026-04-18T01:34:36.367Z",
  "root": {
    "type": "monorepo",
    "name": "Crucible",
    "scope": "@fourfoldlabs"
  },
  "counts": {
    "packages": 27,
    "blocks": 43,
    "categories": 8,
    "plugins": 6,
    "nodes": 124,
    "edges": 295
  },
  "nodes": [
    {
      "id": "pkg:ai",
      "type": "package",
      "scope": "@fourfoldlabs/ai",
      "slug": "ai",
      "description": "Anthropic client wrapper, streaming chat, context registry, insight cache",
      "version": "0.22.2",
      "href": "/packages/ai",
      "json": "/packages/ai.json"
    },
    {
      "id": "doc:consumer:ai",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/ai",
      "plugin": "fourfoldlabs-ai-layer",
      "json": "/packages/ai.json#consumerGuide"
    },
    {
      "id": "doc:spec:ai",
      "type": "builder-spec",
      "package": "@fourfoldlabs/ai",
      "json": "/packages/ai.json#builderSpec"
    },
    {
      "id": "pkg:api-core",
      "type": "package",
      "scope": "@fourfoldlabs/api-core",
      "slug": "api-core",
      "description": "Hono middleware factories, response helpers, logger, and AppEnv type",
      "version": "0.22.2",
      "href": "/packages/api-core",
      "json": "/packages/api-core.json"
    },
    {
      "id": "doc:consumer:api-core",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/api-core",
      "plugin": "fourfoldlabs-foundation",
      "json": "/packages/api-core.json#consumerGuide"
    },
    {
      "id": "doc:spec:api-core",
      "type": "builder-spec",
      "package": "@fourfoldlabs/api-core",
      "json": "/packages/api-core.json#builderSpec"
    },
    {
      "id": "pkg:audit",
      "type": "package",
      "scope": "@fourfoldlabs/audit",
      "slug": "audit",
      "description": "Audit logging: Drizzle schema, write service, and shared types",
      "version": "0.22.2",
      "href": "/packages/audit",
      "json": "/packages/audit.json"
    },
    {
      "id": "doc:consumer:audit",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/audit",
      "plugin": "fourfoldlabs-content-comms",
      "json": "/packages/audit.json#consumerGuide"
    },
    {
      "id": "doc:spec:audit",
      "type": "builder-spec",
      "package": "@fourfoldlabs/audit",
      "json": "/packages/audit.json#builderSpec"
    },
    {
      "id": "pkg:audit-ui",
      "type": "package",
      "scope": "@fourfoldlabs/audit-ui",
      "slug": "audit-ui",
      "description": "Audit UI: AuditLogTable component, API client, and Zustand store",
      "version": "0.22.2",
      "href": "/packages/audit-ui",
      "json": "/packages/audit-ui.json"
    },
    {
      "id": "pkg:auth",
      "type": "package",
      "scope": "@fourfoldlabs/auth",
      "slug": "auth",
      "description": "Pluggable auth strategy with bcrypt + JWT, DI-based middleware factories",
      "version": "0.22.2",
      "href": "/packages/auth",
      "json": "/packages/auth.json"
    },
    {
      "id": "doc:consumer:auth",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/auth",
      "plugin": "fourfoldlabs-foundation",
      "json": "/packages/auth.json#consumerGuide"
    },
    {
      "id": "doc:spec:auth",
      "type": "builder-spec",
      "package": "@fourfoldlabs/auth",
      "json": "/packages/auth.json#builderSpec"
    },
    {
      "id": "pkg:blocks",
      "type": "package",
      "scope": "@fourfoldlabs/blocks",
      "slug": "blocks",
      "description": "34 reusable React building blocks — charts, KPIs, tables, shells, forms, indicators",
      "version": "0.22.2",
      "href": "/packages/blocks",
      "json": "/packages/blocks.json"
    },
    {
      "id": "doc:consumer:blocks",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/blocks",
      "plugin": "fourfoldlabs-foundation",
      "json": "/packages/blocks.json#consumerGuide"
    },
    {
      "id": "doc:spec:blocks",
      "type": "builder-spec",
      "package": "@fourfoldlabs/blocks",
      "json": "/packages/blocks.json#builderSpec"
    },
    {
      "id": "pkg:chat",
      "type": "package",
      "scope": "@fourfoldlabs/chat",
      "slug": "chat",
      "description": "React chat panel, SSE streaming client, Zustand store with composable slice",
      "version": "0.22.2",
      "href": "/packages/chat",
      "json": "/packages/chat.json"
    },
    {
      "id": "doc:consumer:chat",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/chat",
      "plugin": "fourfoldlabs-ai-layer",
      "json": "/packages/chat.json#consumerGuide"
    },
    {
      "id": "doc:spec:chat",
      "type": "builder-spec",
      "package": "@fourfoldlabs/chat",
      "json": "/packages/chat.json#builderSpec"
    },
    {
      "id": "pkg:cms",
      "type": "package",
      "scope": "@fourfoldlabs/cms",
      "slug": "cms",
      "description": "Content management: media library, newsletters, calendar events, announcements, and campaigns — Drizzle schema, services, and shared types",
      "version": "0.22.2",
      "href": "/packages/cms",
      "json": "/packages/cms.json"
    },
    {
      "id": "doc:consumer:cms",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/cms",
      "plugin": "fourfoldlabs-content-comms",
      "json": "/packages/cms.json#consumerGuide"
    },
    {
      "id": "doc:spec:cms",
      "type": "builder-spec",
      "package": "@fourfoldlabs/cms",
      "json": "/packages/cms.json#builderSpec"
    },
    {
      "id": "pkg:cms-ui",
      "type": "package",
      "scope": "@fourfoldlabs/cms-ui",
      "slug": "cms-ui",
      "description": "CMS React components, API client, and Zustand store",
      "version": "0.22.2",
      "href": "/packages/cms-ui",
      "json": "/packages/cms-ui.json"
    },
    {
      "id": "pkg:email",
      "type": "package",
      "scope": "@fourfoldlabs/email",
      "slug": "email",
      "description": "Transport-agnostic email sender with Resend implementation and dev-mode fallback",
      "version": "0.22.2",
      "href": "/packages/email",
      "json": "/packages/email.json"
    },
    {
      "id": "doc:consumer:email",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/email",
      "plugin": "fourfoldlabs-content-comms",
      "json": "/packages/email.json#consumerGuide"
    },
    {
      "id": "doc:spec:email",
      "type": "builder-spec",
      "package": "@fourfoldlabs/email",
      "json": "/packages/email.json#builderSpec"
    },
    {
      "id": "pkg:events",
      "type": "package",
      "scope": "@fourfoldlabs/events",
      "slug": "events",
      "description": "SSE event bus: in-memory pub/sub, Redis adapter, Hono SSE route factory, and React hook",
      "version": "0.22.2",
      "href": "/packages/events",
      "json": "/packages/events.json"
    },
    {
      "id": "doc:consumer:events",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/events",
      "plugin": "fourfoldlabs-infra",
      "json": "/packages/events.json#consumerGuide"
    },
    {
      "id": "doc:spec:events",
      "type": "builder-spec",
      "package": "@fourfoldlabs/events",
      "json": "/packages/events.json#builderSpec"
    },
    {
      "id": "pkg:export",
      "type": "package",
      "scope": "@fourfoldlabs/export",
      "slug": "export",
      "description": "Data export engine: streaming CSV, PDF via background jobs, column formatters, Hono route factory, and ExportButton component",
      "version": "0.22.2",
      "href": "/packages/export",
      "json": "/packages/export.json"
    },
    {
      "id": "doc:consumer:export",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/export",
      "plugin": "fourfoldlabs-infra",
      "json": "/packages/export.json#consumerGuide"
    },
    {
      "id": "doc:spec:export",
      "type": "builder-spec",
      "package": "@fourfoldlabs/export",
      "json": "/packages/export.json#builderSpec"
    },
    {
      "id": "pkg:forms",
      "type": "package",
      "scope": "@fourfoldlabs/forms",
      "slug": "forms",
      "description": "Dynamic form builder: Drizzle schema, runtime Zod validation, conditional logic, and shared types",
      "version": "0.22.2",
      "href": "/packages/forms",
      "json": "/packages/forms.json"
    },
    {
      "id": "doc:consumer:forms",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/forms",
      "plugin": "fourfoldlabs-features",
      "json": "/packages/forms.json#consumerGuide"
    },
    {
      "id": "doc:spec:forms",
      "type": "builder-spec",
      "package": "@fourfoldlabs/forms",
      "json": "/packages/forms.json#builderSpec"
    },
    {
      "id": "pkg:forms-ui",
      "type": "package",
      "scope": "@fourfoldlabs/forms-ui",
      "slug": "forms-ui",
      "description": "Forms UI: FormRenderer, FormBuilder, FormManager, SubmissionTable, API client, and Zustand store",
      "version": "0.22.2",
      "href": "/packages/forms-ui",
      "json": "/packages/forms-ui.json"
    },
    {
      "id": "pkg:iam",
      "type": "package",
      "scope": "@fourfoldlabs/iam",
      "slug": "iam",
      "description": "Identity and access management: groups, memberships, role helpers, Drizzle schema, services, and Hono middleware",
      "version": "0.22.2",
      "href": "/packages/iam",
      "json": "/packages/iam.json"
    },
    {
      "id": "doc:consumer:iam",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/iam",
      "plugin": "fourfoldlabs-auth-access",
      "json": "/packages/iam.json#consumerGuide"
    },
    {
      "id": "doc:spec:iam",
      "type": "builder-spec",
      "package": "@fourfoldlabs/iam",
      "json": "/packages/iam.json#builderSpec"
    },
    {
      "id": "pkg:iam-ui",
      "type": "package",
      "scope": "@fourfoldlabs/iam-ui",
      "slug": "iam-ui",
      "description": "IAM React components, API client, and Zustand store",
      "version": "0.22.2",
      "href": "/packages/iam-ui",
      "json": "/packages/iam-ui.json"
    },
    {
      "id": "pkg:integrations",
      "type": "package",
      "scope": "@fourfoldlabs/integrations",
      "slug": "integrations",
      "description": "Third-party integration framework: encrypted credentials, provider interface, sync runner via background jobs, and shared types",
      "version": "0.22.2",
      "href": "/packages/integrations",
      "json": "/packages/integrations.json"
    },
    {
      "id": "doc:consumer:integrations",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/integrations",
      "plugin": "fourfoldlabs-features",
      "json": "/packages/integrations.json#consumerGuide"
    },
    {
      "id": "doc:spec:integrations",
      "type": "builder-spec",
      "package": "@fourfoldlabs/integrations",
      "json": "/packages/integrations.json#builderSpec"
    },
    {
      "id": "pkg:integrations-ui",
      "type": "package",
      "scope": "@fourfoldlabs/integrations-ui",
      "slug": "integrations-ui",
      "description": "Integrations UI: IntegrationManager, ConnectionForm, IntegrationCard, SyncHistory, API client, and Zustand store",
      "version": "0.22.2",
      "href": "/packages/integrations-ui",
      "json": "/packages/integrations-ui.json"
    },
    {
      "id": "pkg:jobs",
      "type": "package",
      "scope": "@fourfoldlabs/jobs",
      "slug": "jobs",
      "description": "Background job queue: Drizzle schema, polling worker, cron scheduler, and service functions",
      "version": "0.22.2",
      "href": "/packages/jobs",
      "json": "/packages/jobs.json"
    },
    {
      "id": "doc:consumer:jobs",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/jobs",
      "plugin": "fourfoldlabs-infra",
      "json": "/packages/jobs.json#consumerGuide"
    },
    {
      "id": "doc:spec:jobs",
      "type": "builder-spec",
      "package": "@fourfoldlabs/jobs",
      "json": "/packages/jobs.json#builderSpec"
    },
    {
      "id": "pkg:mcp",
      "type": "package",
      "scope": "@fourfoldlabs/mcp",
      "slug": "mcp",
      "description": "MCP server factory, HTTP transport for Hono, token generation utilities",
      "version": "0.22.2",
      "href": "/packages/mcp",
      "json": "/packages/mcp.json"
    },
    {
      "id": "doc:consumer:mcp",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/mcp",
      "plugin": "fourfoldlabs-ai-layer",
      "json": "/packages/mcp.json#consumerGuide"
    },
    {
      "id": "doc:spec:mcp",
      "type": "builder-spec",
      "package": "@fourfoldlabs/mcp",
      "json": "/packages/mcp.json#builderSpec"
    },
    {
      "id": "pkg:notifications",
      "type": "package",
      "scope": "@fourfoldlabs/notifications",
      "slug": "notifications",
      "description": "React notification bell/panel, HTTP client factory, Zustand store",
      "version": "0.22.2",
      "href": "/packages/notifications",
      "json": "/packages/notifications.json"
    },
    {
      "id": "doc:consumer:notifications",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/notifications",
      "plugin": "fourfoldlabs-content-comms",
      "json": "/packages/notifications.json#consumerGuide"
    },
    {
      "id": "doc:spec:notifications",
      "type": "builder-spec",
      "package": "@fourfoldlabs/notifications",
      "json": "/packages/notifications.json#builderSpec"
    },
    {
      "id": "pkg:shared",
      "type": "package",
      "scope": "@fourfoldlabs/shared",
      "slug": "shared",
      "description": "Zero-dependency utilities — cn(), formatters, Zod schemas, and API response types",
      "version": "0.22.2",
      "href": "/packages/shared",
      "json": "/packages/shared.json"
    },
    {
      "id": "doc:consumer:shared",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/shared",
      "plugin": "fourfoldlabs-foundation",
      "json": "/packages/shared.json#consumerGuide"
    },
    {
      "id": "doc:spec:shared",
      "type": "builder-spec",
      "package": "@fourfoldlabs/shared",
      "json": "/packages/shared.json#builderSpec"
    },
    {
      "id": "pkg:ui",
      "type": "package",
      "scope": "@fourfoldlabs/ui",
      "slug": "ui",
      "description": "shadcn/radix UI primitives — single source of truth for all FourFoldLabs apps",
      "version": "0.22.2",
      "href": "/packages/ui",
      "json": "/packages/ui.json"
    },
    {
      "id": "doc:consumer:ui",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/ui",
      "plugin": "fourfoldlabs-foundation",
      "json": "/packages/ui.json#consumerGuide"
    },
    {
      "id": "doc:spec:ui",
      "type": "builder-spec",
      "package": "@fourfoldlabs/ui",
      "json": "/packages/ui.json#builderSpec"
    },
    {
      "id": "pkg:webhooks",
      "type": "package",
      "scope": "@fourfoldlabs/webhooks",
      "slug": "webhooks",
      "description": "Outbound event system: webhook endpoints, HMAC-SHA256 signed delivery via background jobs, retry with exponential backoff",
      "version": "0.22.2",
      "href": "/packages/webhooks",
      "json": "/packages/webhooks.json"
    },
    {
      "id": "doc:consumer:webhooks",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/webhooks",
      "plugin": "fourfoldlabs-features",
      "json": "/packages/webhooks.json#consumerGuide"
    },
    {
      "id": "doc:spec:webhooks",
      "type": "builder-spec",
      "package": "@fourfoldlabs/webhooks",
      "json": "/packages/webhooks.json#builderSpec"
    },
    {
      "id": "pkg:webhooks-ui",
      "type": "package",
      "scope": "@fourfoldlabs/webhooks-ui",
      "slug": "webhooks-ui",
      "description": "Webhooks UI: WebhookManager, WebhookForm, API client, and Zustand store",
      "version": "0.22.2",
      "href": "/packages/webhooks-ui",
      "json": "/packages/webhooks-ui.json"
    },
    {
      "id": "pkg:workflows",
      "type": "package",
      "scope": "@fourfoldlabs/workflows",
      "slug": "workflows",
      "description": "Multi-step approval workflows: Drizzle schema, state machine engine with guards and effects, and shared types",
      "version": "0.22.2",
      "href": "/packages/workflows",
      "json": "/packages/workflows.json"
    },
    {
      "id": "doc:consumer:workflows",
      "type": "consumer-guide",
      "package": "@fourfoldlabs/workflows",
      "plugin": "fourfoldlabs-features",
      "json": "/packages/workflows.json#consumerGuide"
    },
    {
      "id": "doc:spec:workflows",
      "type": "builder-spec",
      "package": "@fourfoldlabs/workflows",
      "json": "/packages/workflows.json#builderSpec"
    },
    {
      "id": "pkg:workflows-ui",
      "type": "package",
      "scope": "@fourfoldlabs/workflows-ui",
      "slug": "workflows-ui",
      "description": "Workflows UI: WorkflowActions, WorkflowStatusBadge, WorkflowTimeline, API client, and Zustand store",
      "version": "0.22.2",
      "href": "/packages/workflows-ui",
      "json": "/packages/workflows-ui.json"
    },
    {
      "id": "cat:kpis",
      "type": "category",
      "slug": "kpis",
      "label": "KPIs & Metrics",
      "description": "Single-value metric displays — numbers, trends, and comparisons.",
      "href": "/blocks/kpis"
    },
    {
      "id": "cat:charts",
      "type": "category",
      "slug": "charts",
      "label": "Charts",
      "description": "Visualizations powered by Recharts — line, bar, area, donut, and more.",
      "href": "/blocks/charts"
    },
    {
      "id": "cat:lists",
      "type": "category",
      "slug": "lists",
      "label": "Lists & Views",
      "description": "Tables, feeds, grids, timelines, calendars, and collection views.",
      "href": "/blocks/lists"
    },
    {
      "id": "cat:page-shells",
      "type": "category",
      "slug": "page-shells",
      "label": "Page Shells",
      "description": "App shells and page-level structural blocks — sidebars, top navs, headers.",
      "href": "/blocks/page-shells"
    },
    {
      "id": "cat:feedback",
      "type": "category",
      "slug": "feedback",
      "label": "Feedback",
      "description": "Dialogs, callouts, empty states, and guided flows.",
      "href": "/blocks/feedback"
    },
    {
      "id": "cat:indicators",
      "type": "category",
      "slug": "indicators",
      "label": "Indicators",
      "description": "Inline status badges, trend arrows, progress markers, and tags.",
      "href": "/blocks/indicators"
    },
    {
      "id": "cat:inputs",
      "type": "category",
      "slug": "inputs",
      "label": "Inputs & Controls",
      "description": "File uploads, filter bars, and action grids.",
      "href": "/blocks/inputs"
    },
    {
      "id": "cat:content",
      "type": "category",
      "slug": "content",
      "label": "Content",
      "description": "CMS content primitives — cards, images, and quotes. Editable wrappers live in @fourfoldlabs/cms-ui.",
      "href": "/blocks/content"
    },
    {
      "id": "block:kpi-card",
      "type": "block",
      "slug": "kpi-card",
      "name": "KpiCard",
      "description": "KPI metric card with default, simple, icon, comparison, progress, and with-link variants.",
      "tier": "display",
      "since": "0.2.0",
      "category": "kpis",
      "href": "/blocks/kpis/kpi-card",
      "json": "/blocks/kpis/kpi-card.json"
    },
    {
      "id": "block:bar-chart",
      "type": "block",
      "slug": "bar-chart",
      "name": "BarChartBlock",
      "description": "Bar chart with default, stacked, horizontal, grouped, and comparison toggle variants.",
      "tier": "interactive",
      "since": "0.1.0",
      "category": "charts",
      "href": "/blocks/charts/bar-chart",
      "json": "/blocks/charts/bar-chart.json"
    },
    {
      "id": "block:area-chart",
      "type": "block",
      "slug": "area-chart",
      "name": "AreaChartBlock",
      "description": "Area chart with gradient fill, stacked, step, and comparison variants with change badge.",
      "tier": "interactive",
      "since": "0.1.0",
      "category": "charts",
      "href": "/blocks/charts/area-chart",
      "json": "/blocks/charts/area-chart.json"
    },
    {
      "id": "block:line-chart",
      "type": "block",
      "slug": "line-chart",
      "name": "LineChartBlock",
      "description": "Line chart with default, dotted, step, and comparison variants with change badge and summary stats.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "charts",
      "href": "/blocks/charts/line-chart",
      "json": "/blocks/charts/line-chart.json"
    },
    {
      "id": "block:donut-chart",
      "type": "block",
      "slug": "donut-chart",
      "name": "DonutChartBlock",
      "description": "Donut/pie chart with center label, legend, tooltip, and active segment selection.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "charts",
      "href": "/blocks/charts/donut-chart",
      "json": "/blocks/charts/donut-chart.json"
    },
    {
      "id": "block:sparkline",
      "type": "block",
      "slug": "sparkline",
      "name": "SparklineBlock",
      "description": "Compact area sparkline with optional vertical time-boundary and horizontal goal reference lines.",
      "tier": "display",
      "since": "0.2.0",
      "category": "charts",
      "href": "/blocks/charts/sparkline",
      "json": "/blocks/charts/sparkline.json"
    },
    {
      "id": "block:health-meter",
      "type": "block",
      "slug": "health-meter",
      "name": "HealthMeter",
      "description": "Health/status monitor with default (progress bars), tracker (uptime segment bars), status-list (platform status page), and compact (summary indicators) variants.",
      "tier": "display",
      "since": "0.1.0",
      "category": "charts",
      "href": "/blocks/charts/health-meter",
      "json": "/blocks/charts/health-meter.json"
    },
    {
      "id": "block:data-table",
      "type": "block",
      "slug": "data-table",
      "name": "DataTable",
      "description": "Typed table with column definitions and optional per-row chat context.",
      "tier": "display",
      "since": "0.1.0",
      "category": "lists",
      "href": "/blocks/lists/data-table",
      "json": "/blocks/lists/data-table.json"
    },
    {
      "id": "block:data-table-full",
      "type": "block",
      "slug": "data-table-full",
      "name": "DataTableFull",
      "description": "Full-featured data table with sorting, pagination, row selection, bulk actions, row action menus, and sort style variants.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "lists",
      "href": "/blocks/lists/data-table-full",
      "json": "/blocks/lists/data-table-full.json"
    },
    {
      "id": "block:activity-feed",
      "type": "block",
      "slug": "activity-feed",
      "name": "ActivityFeed",
      "description": "Timestamped action feed with avatars.",
      "tier": "display",
      "since": "0.1.0",
      "category": "lists",
      "href": "/blocks/lists/activity-feed",
      "json": "/blocks/lists/activity-feed.json"
    },
    {
      "id": "block:comment-block",
      "type": "block",
      "slug": "comment-block",
      "name": "CommentBlock",
      "description": "Comment thread with thread, activity (timeline + system events), and compact (bubble) variants. Input, reactions, privacy labels.",
      "tier": "controlled",
      "since": "0.4.0",
      "category": "lists",
      "href": "/blocks/lists/comment-block",
      "json": "/blocks/lists/comment-block.json"
    },
    {
      "id": "block:timeline",
      "type": "block",
      "slug": "timeline",
      "name": "Timeline",
      "description": "Vertical timeline of events with timestamps, icons, and connecting lines.",
      "tier": "display",
      "since": "0.3.0",
      "category": "lists",
      "href": "/blocks/lists/timeline",
      "json": "/blocks/lists/timeline.json"
    },
    {
      "id": "block:grid-list",
      "type": "block",
      "slug": "grid-list",
      "name": "GridList",
      "description": "Responsive card grid with header, count badge, action slot, and full-card link support. Member, integration, workspace, and report card variants.",
      "tier": "display",
      "since": "0.3.0",
      "category": "lists",
      "href": "/blocks/lists/grid-list",
      "json": "/blocks/lists/grid-list.json"
    },
    {
      "id": "block:calendar-view",
      "type": "block",
      "slug": "calendar-view",
      "name": "CalendarView",
      "description": "Month and week calendar views with colored event chips, hourly time grid, and current-time indicator.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "lists",
      "href": "/blocks/lists/calendar-view",
      "json": "/blocks/lists/calendar-view.json"
    },
    {
      "id": "block:kanban-board",
      "type": "block",
      "slug": "kanban-board",
      "name": "KanbanBoard",
      "description": "Kanban board with columns, card slots, column limits, and move-between-columns via action menus.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "lists",
      "href": "/blocks/lists/kanban-board",
      "json": "/blocks/lists/kanban-board.json"
    },
    {
      "id": "block:project-timeline",
      "type": "block",
      "slug": "project-timeline",
      "name": "ProjectTimeline",
      "description": "Gantt-style horizontal week view with status badges, end-date resize, expandable detail panels, row grouping, and day/hour unit modes. Extended variant adds MS Project-style 6-week table+Gantt with collapsible groups.",
      "tier": "controlled",
      "since": "0.4.0",
      "category": "lists",
      "href": "/blocks/lists/project-timeline",
      "json": "/blocks/lists/project-timeline.json"
    },
    {
      "id": "block:sidebar-shell",
      "type": "block",
      "slug": "sidebar-shell",
      "name": "SidebarShell",
      "description": "Responsive sidebar app shell with collapsible nav groups, badges, tooltips, mobile drawer, and content area.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "page-shells",
      "href": "/blocks/page-shells/sidebar-shell",
      "json": "/blocks/page-shells/sidebar-shell.json"
    },
    {
      "id": "block:top-nav-shell",
      "type": "block",
      "slug": "top-nav-shell",
      "name": "TopNavShell",
      "description": "Responsive top navigation shell with horizontal links, active indicators, mobile drawer, and content area.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "page-shells",
      "href": "/blocks/page-shells/top-nav-shell",
      "json": "/blocks/page-shells/top-nav-shell.json"
    },
    {
      "id": "block:site-header",
      "type": "block",
      "slug": "site-header",
      "name": "SiteHeader",
      "description": "Marketing / website header with two rows (utility strip + main row), flat nav, optional CTAs, announcement banner slot, sticky-with-collapse-on-scroll behavior, and full-screen mobile drawer. For public-facing sites (schools, businesses), not app shells.",
      "tier": "interactive",
      "since": "0.22.0",
      "category": "page-shells",
      "href": "/blocks/page-shells/site-header",
      "json": "/blocks/page-shells/site-header.json"
    },
    {
      "id": "block:page-header",
      "type": "block",
      "slug": "page-header",
      "name": "PageHeader",
      "description": "Page-level heading with title, breadcrumbs, description, and action slot.",
      "tier": "display",
      "since": "0.3.0",
      "category": "page-shells",
      "href": "/blocks/page-shells/page-header",
      "json": "/blocks/page-shells/page-header.json"
    },
    {
      "id": "block:settings-section",
      "type": "block",
      "slug": "settings-section",
      "name": "SettingsSection",
      "description": "Labeled settings group with title, description, and content slot.",
      "tier": "display",
      "since": "0.3.0",
      "category": "page-shells",
      "href": "/blocks/page-shells/settings-section",
      "json": "/blocks/page-shells/settings-section.json"
    },
    {
      "id": "block:campaign-hero",
      "type": "block",
      "slug": "campaign-hero",
      "name": "CampaignHero",
      "description": "Full-width campaign hero with centered, split, overlay, and minimal layout variants. Supports background image/video, headline, subheadline, and dual CTAs.",
      "tier": "display",
      "since": "0.8.0",
      "category": "page-shells",
      "href": "/blocks/page-shells/campaign-hero",
      "json": "/blocks/page-shells/campaign-hero.json"
    },
    {
      "id": "block:block-preview",
      "type": "block",
      "slug": "block-preview",
      "name": "BlockPreview",
      "description": "Showcase container with per-variant title, description, and inline theme switcher for isolated previews.",
      "tier": "interactive",
      "since": "0.3.0",
      "category": "page-shells",
      "href": "/blocks/page-shells/block-preview",
      "json": "/blocks/page-shells/block-preview.json"
    },
    {
      "id": "block:confirm-dialog",
      "type": "block",
      "slug": "confirm-dialog",
      "name": "ConfirmDialog",
      "description": "Confirmation dialog with loading state, async confirm, and optional typed confirmation input.",
      "tier": "controlled",
      "since": "0.3.0",
      "category": "feedback",
      "href": "/blocks/feedback/confirm-dialog",
      "json": "/blocks/feedback/confirm-dialog.json"
    },
    {
      "id": "block:command-palette",
      "type": "block",
      "slug": "command-palette",
      "name": "CommandPalette",
      "description": "Full command palette modal with grouped commands, shortcuts, and recent items.",
      "tier": "controlled",
      "since": "0.3.0",
      "category": "feedback",
      "href": "/blocks/feedback/command-palette",
      "json": "/blocks/feedback/command-palette.json"
    },
    {
      "id": "block:empty-state",
      "type": "block",
      "slug": "empty-state",
      "name": "EmptyState",
      "description": "Zero-data placeholder with icon, heading, description, and optional CTA.",
      "tier": "display",
      "since": "0.3.0",
      "category": "feedback",
      "href": "/blocks/feedback/empty-state",
      "json": "/blocks/feedback/empty-state.json"
    },
    {
      "id": "block:announcement-bar",
      "type": "block",
      "slug": "announcement-bar",
      "name": "AnnouncementBar",
      "description": "Full-width severity-colored announcement bar with optional icon, description, CTA link, and dismiss button.",
      "tier": "display",
      "since": "0.7.0",
      "category": "feedback",
      "href": "/blocks/feedback/announcement-bar",
      "json": "/blocks/feedback/announcement-bar.json"
    },
    {
      "id": "block:insight-card",
      "type": "block",
      "slug": "insight-card",
      "name": "InsightCard",
      "description": "Highlighted callout with icon and type-based styling.",
      "tier": "display",
      "since": "0.1.0",
      "category": "feedback",
      "href": "/blocks/feedback/insight-card",
      "json": "/blocks/feedback/insight-card.json"
    },
    {
      "id": "block:onboarding-checklist",
      "type": "block",
      "slug": "onboarding-checklist",
      "name": "OnboardingChecklist",
      "description": "Step-by-step checklist with progress bar and per-step CTAs.",
      "tier": "controlled",
      "since": "0.3.0",
      "category": "feedback",
      "href": "/blocks/feedback/onboarding-checklist",
      "json": "/blocks/feedback/onboarding-checklist.json"
    },
    {
      "id": "block:status-badge",
      "type": "block",
      "slug": "status-badge",
      "name": "StatusBadge",
      "description": "Semantic colored badge with dot/outline variants and optional icon indicator.",
      "tier": "display",
      "since": "0.3.0",
      "category": "indicators",
      "href": "/blocks/indicators/status-badge",
      "json": "/blocks/indicators/status-badge.json"
    },
    {
      "id": "block:delta-badge",
      "type": "block",
      "slug": "delta-badge",
      "name": "DeltaBadge",
      "description": "Trend indicator badge with directional arrow, auto-colored by sign. Filled, outline, and ghost variants.",
      "tier": "display",
      "since": "0.3.0",
      "category": "indicators",
      "href": "/blocks/indicators/delta-badge",
      "json": "/blocks/indicators/delta-badge.json"
    },
    {
      "id": "block:tag-badge",
      "type": "block",
      "slug": "tag-badge",
      "name": "TagBadge",
      "description": "Removable filter tag with close button. Outline and filled variants.",
      "tier": "controlled",
      "since": "0.3.0",
      "category": "indicators",
      "href": "/blocks/indicators/tag-badge",
      "json": "/blocks/indicators/tag-badge.json"
    },
    {
      "id": "block:mini-bar",
      "type": "block",
      "slug": "mini-bar",
      "name": "MiniBar",
      "description": "Inline progress bar for table cells or compact displays.",
      "tier": "display",
      "since": "0.1.0",
      "category": "indicators",
      "href": "/blocks/indicators/mini-bar",
      "json": "/blocks/indicators/mini-bar.json"
    },
    {
      "id": "block:progress-steps",
      "type": "block",
      "slug": "progress-steps",
      "name": "ProgressSteps",
      "description": "Horizontal or vertical step indicator for multi-step processes.",
      "tier": "display",
      "since": "0.3.0",
      "category": "indicators",
      "href": "/blocks/indicators/progress-steps",
      "json": "/blocks/indicators/progress-steps.json"
    },
    {
      "id": "block:file-upload-zone",
      "type": "block",
      "slug": "file-upload-zone",
      "name": "FileUploadZone",
      "description": "Drag-and-drop file upload zone with progress indicators and file list.",
      "tier": "controlled",
      "since": "0.3.0",
      "category": "inputs",
      "href": "/blocks/inputs/file-upload-zone",
      "json": "/blocks/inputs/file-upload-zone.json"
    },
    {
      "id": "block:filter-bar",
      "type": "block",
      "slug": "filter-bar",
      "name": "FilterBar",
      "description": "Filter toolbar with default, condensed, with-actions, stacked, and period-selector variants.",
      "tier": "controlled",
      "since": "0.3.0",
      "category": "inputs",
      "href": "/blocks/inputs/filter-bar",
      "json": "/blocks/inputs/filter-bar.json"
    },
    {
      "id": "block:quick-actions",
      "type": "block",
      "slug": "quick-actions",
      "name": "QuickActions",
      "description": "Icon button grid for common tasks.",
      "tier": "controlled",
      "since": "0.1.0",
      "category": "inputs",
      "href": "/blocks/inputs/quick-actions",
      "json": "/blocks/inputs/quick-actions.json"
    },
    {
      "id": "block:content-card",
      "type": "block",
      "slug": "content-card",
      "name": "ContentCard",
      "description": "Content card with optional title, body, image, href, and pill-shaped stripe accent. Renders as a link when href is set.",
      "tier": "display",
      "since": "0.21.0",
      "category": "content",
      "href": "/blocks/content/content-card",
      "json": "/blocks/content/content-card.json"
    },
    {
      "id": "block:content-card-array",
      "type": "block",
      "slug": "content-card-array",
      "name": "ContentCardArray",
      "description": "Ordered collection of ContentCards with grid, scroll-band, or chip-row layout. Bounded count driven by caller.",
      "tier": "display",
      "since": "0.21.0",
      "category": "content",
      "href": "/blocks/content/content-card-array",
      "json": "/blocks/content/content-card-array.json"
    },
    {
      "id": "block:content-image",
      "type": "block",
      "slug": "content-image",
      "name": "ContentImage",
      "description": "Single image with optional caption and aspect ratio. Consumer passes the resolved URL — no media library coupling.",
      "tier": "display",
      "since": "0.21.0",
      "category": "content",
      "href": "/blocks/content/content-image",
      "json": "/blocks/content/content-image.json"
    },
    {
      "id": "block:content-quote",
      "type": "block",
      "slug": "content-quote",
      "name": "ContentQuote",
      "description": "Callout quote with pull, testimonial, and scripture variants. Scripture variant uses serif italic with left accent bar.",
      "tier": "display",
      "since": "0.21.0",
      "category": "content",
      "href": "/blocks/content/content-quote",
      "json": "/blocks/content/content-quote.json"
    },
    {
      "id": "block:profile-card",
      "type": "block",
      "slug": "profile-card",
      "name": "ProfileCard",
      "description": "Person card with a full-width photo at the top, name, optional role eyebrow, bio, stats row, and primary action. Initials fallback when no photo is provided.",
      "tier": "display",
      "since": "0.21.0",
      "category": "content",
      "href": "/blocks/content/profile-card",
      "json": "/blocks/content/profile-card.json"
    },
    {
      "id": "block:profile-card-array",
      "type": "block",
      "slug": "profile-card-array",
      "name": "ProfileCardArray",
      "description": "Grid of ProfileCards. Pass-through defaults for imageAspect, stripe, and variant to per-item values.",
      "tier": "display",
      "since": "0.21.0",
      "category": "content",
      "href": "/blocks/content/profile-card-array",
      "json": "/blocks/content/profile-card-array.json"
    },
    {
      "id": "plugin:fourfoldlabs-ai-layer",
      "type": "plugin",
      "slug": "fourfoldlabs-ai-layer",
      "description": ""
    },
    {
      "id": "plugin:fourfoldlabs-auth-access",
      "type": "plugin",
      "slug": "fourfoldlabs-auth-access",
      "description": ""
    },
    {
      "id": "plugin:fourfoldlabs-content-comms",
      "type": "plugin",
      "slug": "fourfoldlabs-content-comms",
      "description": ""
    },
    {
      "id": "plugin:fourfoldlabs-features",
      "type": "plugin",
      "slug": "fourfoldlabs-features",
      "description": ""
    },
    {
      "id": "plugin:fourfoldlabs-foundation",
      "type": "plugin",
      "slug": "fourfoldlabs-foundation",
      "description": ""
    },
    {
      "id": "plugin:fourfoldlabs-infra",
      "type": "plugin",
      "slug": "fourfoldlabs-infra",
      "description": ""
    }
  ],
  "edges": [
    {
      "source": "pkg:ai",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:ai",
      "target": "doc:consumer:ai",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:ai",
      "target": "pkg:ai",
      "relation": "documents"
    },
    {
      "source": "pkg:ai",
      "target": "doc:spec:ai",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:ai",
      "target": "pkg:ai",
      "relation": "documents"
    },
    {
      "source": "pkg:api-core",
      "target": "doc:consumer:api-core",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:api-core",
      "target": "pkg:api-core",
      "relation": "documents"
    },
    {
      "source": "pkg:api-core",
      "target": "doc:spec:api-core",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:api-core",
      "target": "pkg:api-core",
      "relation": "documents"
    },
    {
      "source": "pkg:audit",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:audit",
      "target": "doc:consumer:audit",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:audit",
      "target": "pkg:audit",
      "relation": "documents"
    },
    {
      "source": "pkg:audit",
      "target": "doc:spec:audit",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:audit",
      "target": "pkg:audit",
      "relation": "documents"
    },
    {
      "source": "pkg:audit-ui",
      "target": "pkg:audit",
      "relation": "depends-on"
    },
    {
      "source": "pkg:audit-ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:audit-ui",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:auth",
      "target": "doc:consumer:auth",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:auth",
      "target": "pkg:auth",
      "relation": "documents"
    },
    {
      "source": "pkg:auth",
      "target": "doc:spec:auth",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:auth",
      "target": "pkg:auth",
      "relation": "documents"
    },
    {
      "source": "pkg:blocks",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:blocks",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:blocks",
      "target": "doc:consumer:blocks",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:blocks",
      "target": "pkg:blocks",
      "relation": "documents"
    },
    {
      "source": "pkg:blocks",
      "target": "doc:spec:blocks",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:blocks",
      "target": "pkg:blocks",
      "relation": "documents"
    },
    {
      "source": "pkg:chat",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:chat",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:chat",
      "target": "doc:consumer:chat",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:chat",
      "target": "pkg:chat",
      "relation": "documents"
    },
    {
      "source": "pkg:chat",
      "target": "doc:spec:chat",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:chat",
      "target": "pkg:chat",
      "relation": "documents"
    },
    {
      "source": "pkg:cms",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:cms",
      "target": "doc:consumer:cms",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:cms",
      "target": "pkg:cms",
      "relation": "documents"
    },
    {
      "source": "pkg:cms",
      "target": "doc:spec:cms",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:cms",
      "target": "pkg:cms",
      "relation": "documents"
    },
    {
      "source": "pkg:cms-ui",
      "target": "pkg:blocks",
      "relation": "depends-on"
    },
    {
      "source": "pkg:cms-ui",
      "target": "pkg:cms",
      "relation": "depends-on"
    },
    {
      "source": "pkg:cms-ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:cms-ui",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:email",
      "target": "doc:consumer:email",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:email",
      "target": "pkg:email",
      "relation": "documents"
    },
    {
      "source": "pkg:email",
      "target": "doc:spec:email",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:email",
      "target": "pkg:email",
      "relation": "documents"
    },
    {
      "source": "pkg:events",
      "target": "doc:consumer:events",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:events",
      "target": "pkg:events",
      "relation": "documents"
    },
    {
      "source": "pkg:events",
      "target": "doc:spec:events",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:events",
      "target": "pkg:events",
      "relation": "documents"
    },
    {
      "source": "pkg:export",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:export",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:export",
      "target": "doc:consumer:export",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:export",
      "target": "pkg:export",
      "relation": "documents"
    },
    {
      "source": "pkg:export",
      "target": "doc:spec:export",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:export",
      "target": "pkg:export",
      "relation": "documents"
    },
    {
      "source": "pkg:forms",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:forms",
      "target": "doc:consumer:forms",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:forms",
      "target": "pkg:forms",
      "relation": "documents"
    },
    {
      "source": "pkg:forms",
      "target": "doc:spec:forms",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:forms",
      "target": "pkg:forms",
      "relation": "documents"
    },
    {
      "source": "pkg:forms-ui",
      "target": "pkg:blocks",
      "relation": "depends-on"
    },
    {
      "source": "pkg:forms-ui",
      "target": "pkg:export",
      "relation": "depends-on"
    },
    {
      "source": "pkg:forms-ui",
      "target": "pkg:forms",
      "relation": "depends-on"
    },
    {
      "source": "pkg:forms-ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:forms-ui",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:iam",
      "target": "pkg:auth",
      "relation": "depends-on"
    },
    {
      "source": "pkg:iam",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:iam",
      "target": "doc:consumer:iam",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:iam",
      "target": "pkg:iam",
      "relation": "documents"
    },
    {
      "source": "pkg:iam",
      "target": "doc:spec:iam",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:iam",
      "target": "pkg:iam",
      "relation": "documents"
    },
    {
      "source": "pkg:iam-ui",
      "target": "pkg:blocks",
      "relation": "depends-on"
    },
    {
      "source": "pkg:iam-ui",
      "target": "pkg:iam",
      "relation": "depends-on"
    },
    {
      "source": "pkg:iam-ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:iam-ui",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:integrations",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:integrations",
      "target": "doc:consumer:integrations",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:integrations",
      "target": "pkg:integrations",
      "relation": "documents"
    },
    {
      "source": "pkg:integrations",
      "target": "doc:spec:integrations",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:integrations",
      "target": "pkg:integrations",
      "relation": "documents"
    },
    {
      "source": "pkg:integrations-ui",
      "target": "pkg:blocks",
      "relation": "depends-on"
    },
    {
      "source": "pkg:integrations-ui",
      "target": "pkg:integrations",
      "relation": "depends-on"
    },
    {
      "source": "pkg:integrations-ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:integrations-ui",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:jobs",
      "target": "doc:consumer:jobs",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:jobs",
      "target": "pkg:jobs",
      "relation": "documents"
    },
    {
      "source": "pkg:jobs",
      "target": "doc:spec:jobs",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:jobs",
      "target": "pkg:jobs",
      "relation": "documents"
    },
    {
      "source": "pkg:mcp",
      "target": "doc:consumer:mcp",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:mcp",
      "target": "pkg:mcp",
      "relation": "documents"
    },
    {
      "source": "pkg:mcp",
      "target": "doc:spec:mcp",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:mcp",
      "target": "pkg:mcp",
      "relation": "documents"
    },
    {
      "source": "pkg:notifications",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:notifications",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:notifications",
      "target": "doc:consumer:notifications",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:notifications",
      "target": "pkg:notifications",
      "relation": "documents"
    },
    {
      "source": "pkg:notifications",
      "target": "doc:spec:notifications",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:notifications",
      "target": "pkg:notifications",
      "relation": "documents"
    },
    {
      "source": "pkg:shared",
      "target": "doc:consumer:shared",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:shared",
      "target": "pkg:shared",
      "relation": "documents"
    },
    {
      "source": "pkg:shared",
      "target": "doc:spec:shared",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:shared",
      "target": "pkg:shared",
      "relation": "documents"
    },
    {
      "source": "pkg:ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:ui",
      "target": "doc:consumer:ui",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:ui",
      "target": "pkg:ui",
      "relation": "documents"
    },
    {
      "source": "pkg:ui",
      "target": "doc:spec:ui",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:ui",
      "target": "pkg:ui",
      "relation": "documents"
    },
    {
      "source": "pkg:webhooks",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:webhooks",
      "target": "doc:consumer:webhooks",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:webhooks",
      "target": "pkg:webhooks",
      "relation": "documents"
    },
    {
      "source": "pkg:webhooks",
      "target": "doc:spec:webhooks",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:webhooks",
      "target": "pkg:webhooks",
      "relation": "documents"
    },
    {
      "source": "pkg:webhooks-ui",
      "target": "pkg:blocks",
      "relation": "depends-on"
    },
    {
      "source": "pkg:webhooks-ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:webhooks-ui",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:webhooks-ui",
      "target": "pkg:webhooks",
      "relation": "depends-on"
    },
    {
      "source": "pkg:workflows",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:workflows",
      "target": "doc:consumer:workflows",
      "relation": "documented-by"
    },
    {
      "source": "doc:consumer:workflows",
      "target": "pkg:workflows",
      "relation": "documents"
    },
    {
      "source": "pkg:workflows",
      "target": "doc:spec:workflows",
      "relation": "documented-by"
    },
    {
      "source": "doc:spec:workflows",
      "target": "pkg:workflows",
      "relation": "documents"
    },
    {
      "source": "pkg:workflows-ui",
      "target": "pkg:blocks",
      "relation": "depends-on"
    },
    {
      "source": "pkg:workflows-ui",
      "target": "pkg:shared",
      "relation": "depends-on"
    },
    {
      "source": "pkg:workflows-ui",
      "target": "pkg:ui",
      "relation": "depends-on"
    },
    {
      "source": "pkg:workflows-ui",
      "target": "pkg:workflows",
      "relation": "depends-on"
    },
    {
      "source": "cat:kpis",
      "target": "block:kpi-card",
      "relation": "contains"
    },
    {
      "source": "block:kpi-card",
      "target": "cat:kpis",
      "relation": "member-of"
    },
    {
      "source": "block:kpi-card",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:charts",
      "target": "block:bar-chart",
      "relation": "contains"
    },
    {
      "source": "block:bar-chart",
      "target": "cat:charts",
      "relation": "member-of"
    },
    {
      "source": "block:bar-chart",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:charts",
      "target": "block:area-chart",
      "relation": "contains"
    },
    {
      "source": "block:area-chart",
      "target": "cat:charts",
      "relation": "member-of"
    },
    {
      "source": "block:area-chart",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:charts",
      "target": "block:line-chart",
      "relation": "contains"
    },
    {
      "source": "block:line-chart",
      "target": "cat:charts",
      "relation": "member-of"
    },
    {
      "source": "block:line-chart",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:charts",
      "target": "block:donut-chart",
      "relation": "contains"
    },
    {
      "source": "block:donut-chart",
      "target": "cat:charts",
      "relation": "member-of"
    },
    {
      "source": "block:donut-chart",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:charts",
      "target": "block:sparkline",
      "relation": "contains"
    },
    {
      "source": "block:sparkline",
      "target": "cat:charts",
      "relation": "member-of"
    },
    {
      "source": "block:sparkline",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:charts",
      "target": "block:health-meter",
      "relation": "contains"
    },
    {
      "source": "block:health-meter",
      "target": "cat:charts",
      "relation": "member-of"
    },
    {
      "source": "block:health-meter",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:data-table",
      "relation": "contains"
    },
    {
      "source": "block:data-table",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:data-table",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:data-table-full",
      "relation": "contains"
    },
    {
      "source": "block:data-table-full",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:data-table-full",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:activity-feed",
      "relation": "contains"
    },
    {
      "source": "block:activity-feed",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:activity-feed",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:comment-block",
      "relation": "contains"
    },
    {
      "source": "block:comment-block",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:comment-block",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:timeline",
      "relation": "contains"
    },
    {
      "source": "block:timeline",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:timeline",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:grid-list",
      "relation": "contains"
    },
    {
      "source": "block:grid-list",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:grid-list",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:calendar-view",
      "relation": "contains"
    },
    {
      "source": "block:calendar-view",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:calendar-view",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:kanban-board",
      "relation": "contains"
    },
    {
      "source": "block:kanban-board",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:kanban-board",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:lists",
      "target": "block:project-timeline",
      "relation": "contains"
    },
    {
      "source": "block:project-timeline",
      "target": "cat:lists",
      "relation": "member-of"
    },
    {
      "source": "block:project-timeline",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:page-shells",
      "target": "block:sidebar-shell",
      "relation": "contains"
    },
    {
      "source": "block:sidebar-shell",
      "target": "cat:page-shells",
      "relation": "member-of"
    },
    {
      "source": "block:sidebar-shell",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:page-shells",
      "target": "block:top-nav-shell",
      "relation": "contains"
    },
    {
      "source": "block:top-nav-shell",
      "target": "cat:page-shells",
      "relation": "member-of"
    },
    {
      "source": "block:top-nav-shell",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:page-shells",
      "target": "block:site-header",
      "relation": "contains"
    },
    {
      "source": "block:site-header",
      "target": "cat:page-shells",
      "relation": "member-of"
    },
    {
      "source": "block:site-header",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:page-shells",
      "target": "block:page-header",
      "relation": "contains"
    },
    {
      "source": "block:page-header",
      "target": "cat:page-shells",
      "relation": "member-of"
    },
    {
      "source": "block:page-header",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:page-shells",
      "target": "block:settings-section",
      "relation": "contains"
    },
    {
      "source": "block:settings-section",
      "target": "cat:page-shells",
      "relation": "member-of"
    },
    {
      "source": "block:settings-section",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:page-shells",
      "target": "block:campaign-hero",
      "relation": "contains"
    },
    {
      "source": "block:campaign-hero",
      "target": "cat:page-shells",
      "relation": "member-of"
    },
    {
      "source": "block:campaign-hero",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:page-shells",
      "target": "block:block-preview",
      "relation": "contains"
    },
    {
      "source": "block:block-preview",
      "target": "cat:page-shells",
      "relation": "member-of"
    },
    {
      "source": "block:block-preview",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:feedback",
      "target": "block:confirm-dialog",
      "relation": "contains"
    },
    {
      "source": "block:confirm-dialog",
      "target": "cat:feedback",
      "relation": "member-of"
    },
    {
      "source": "block:confirm-dialog",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:feedback",
      "target": "block:command-palette",
      "relation": "contains"
    },
    {
      "source": "block:command-palette",
      "target": "cat:feedback",
      "relation": "member-of"
    },
    {
      "source": "block:command-palette",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:feedback",
      "target": "block:empty-state",
      "relation": "contains"
    },
    {
      "source": "block:empty-state",
      "target": "cat:feedback",
      "relation": "member-of"
    },
    {
      "source": "block:empty-state",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:feedback",
      "target": "block:announcement-bar",
      "relation": "contains"
    },
    {
      "source": "block:announcement-bar",
      "target": "cat:feedback",
      "relation": "member-of"
    },
    {
      "source": "block:announcement-bar",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:feedback",
      "target": "block:insight-card",
      "relation": "contains"
    },
    {
      "source": "block:insight-card",
      "target": "cat:feedback",
      "relation": "member-of"
    },
    {
      "source": "block:insight-card",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:feedback",
      "target": "block:onboarding-checklist",
      "relation": "contains"
    },
    {
      "source": "block:onboarding-checklist",
      "target": "cat:feedback",
      "relation": "member-of"
    },
    {
      "source": "block:onboarding-checklist",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:indicators",
      "target": "block:status-badge",
      "relation": "contains"
    },
    {
      "source": "block:status-badge",
      "target": "cat:indicators",
      "relation": "member-of"
    },
    {
      "source": "block:status-badge",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:indicators",
      "target": "block:delta-badge",
      "relation": "contains"
    },
    {
      "source": "block:delta-badge",
      "target": "cat:indicators",
      "relation": "member-of"
    },
    {
      "source": "block:delta-badge",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:indicators",
      "target": "block:tag-badge",
      "relation": "contains"
    },
    {
      "source": "block:tag-badge",
      "target": "cat:indicators",
      "relation": "member-of"
    },
    {
      "source": "block:tag-badge",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:indicators",
      "target": "block:mini-bar",
      "relation": "contains"
    },
    {
      "source": "block:mini-bar",
      "target": "cat:indicators",
      "relation": "member-of"
    },
    {
      "source": "block:mini-bar",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:indicators",
      "target": "block:progress-steps",
      "relation": "contains"
    },
    {
      "source": "block:progress-steps",
      "target": "cat:indicators",
      "relation": "member-of"
    },
    {
      "source": "block:progress-steps",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:inputs",
      "target": "block:file-upload-zone",
      "relation": "contains"
    },
    {
      "source": "block:file-upload-zone",
      "target": "cat:inputs",
      "relation": "member-of"
    },
    {
      "source": "block:file-upload-zone",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:inputs",
      "target": "block:filter-bar",
      "relation": "contains"
    },
    {
      "source": "block:filter-bar",
      "target": "cat:inputs",
      "relation": "member-of"
    },
    {
      "source": "block:filter-bar",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:inputs",
      "target": "block:quick-actions",
      "relation": "contains"
    },
    {
      "source": "block:quick-actions",
      "target": "cat:inputs",
      "relation": "member-of"
    },
    {
      "source": "block:quick-actions",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:content",
      "target": "block:content-card",
      "relation": "contains"
    },
    {
      "source": "block:content-card",
      "target": "cat:content",
      "relation": "member-of"
    },
    {
      "source": "block:content-card",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:content",
      "target": "block:content-card-array",
      "relation": "contains"
    },
    {
      "source": "block:content-card-array",
      "target": "cat:content",
      "relation": "member-of"
    },
    {
      "source": "block:content-card-array",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:content",
      "target": "block:content-image",
      "relation": "contains"
    },
    {
      "source": "block:content-image",
      "target": "cat:content",
      "relation": "member-of"
    },
    {
      "source": "block:content-image",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:content",
      "target": "block:content-quote",
      "relation": "contains"
    },
    {
      "source": "block:content-quote",
      "target": "cat:content",
      "relation": "member-of"
    },
    {
      "source": "block:content-quote",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:content",
      "target": "block:profile-card",
      "relation": "contains"
    },
    {
      "source": "block:profile-card",
      "target": "cat:content",
      "relation": "member-of"
    },
    {
      "source": "block:profile-card",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "cat:content",
      "target": "block:profile-card-array",
      "relation": "contains"
    },
    {
      "source": "block:profile-card-array",
      "target": "cat:content",
      "relation": "member-of"
    },
    {
      "source": "block:profile-card-array",
      "target": "pkg:blocks",
      "relation": "implements"
    },
    {
      "source": "plugin:fourfoldlabs-ai-layer",
      "target": "pkg:ai",
      "relation": "contains"
    },
    {
      "source": "pkg:ai",
      "target": "plugin:fourfoldlabs-ai-layer",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-ai-layer",
      "target": "pkg:chat",
      "relation": "contains"
    },
    {
      "source": "pkg:chat",
      "target": "plugin:fourfoldlabs-ai-layer",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-ai-layer",
      "target": "pkg:mcp",
      "relation": "contains"
    },
    {
      "source": "pkg:mcp",
      "target": "plugin:fourfoldlabs-ai-layer",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-auth-access",
      "target": "pkg:iam",
      "relation": "contains"
    },
    {
      "source": "pkg:iam",
      "target": "plugin:fourfoldlabs-auth-access",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-content-comms",
      "target": "pkg:audit",
      "relation": "contains"
    },
    {
      "source": "pkg:audit",
      "target": "plugin:fourfoldlabs-content-comms",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-content-comms",
      "target": "pkg:cms",
      "relation": "contains"
    },
    {
      "source": "pkg:cms",
      "target": "plugin:fourfoldlabs-content-comms",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-content-comms",
      "target": "pkg:email",
      "relation": "contains"
    },
    {
      "source": "pkg:email",
      "target": "plugin:fourfoldlabs-content-comms",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-content-comms",
      "target": "pkg:notifications",
      "relation": "contains"
    },
    {
      "source": "pkg:notifications",
      "target": "plugin:fourfoldlabs-content-comms",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-features",
      "target": "pkg:forms",
      "relation": "contains"
    },
    {
      "source": "pkg:forms",
      "target": "plugin:fourfoldlabs-features",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-features",
      "target": "pkg:integrations",
      "relation": "contains"
    },
    {
      "source": "pkg:integrations",
      "target": "plugin:fourfoldlabs-features",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-features",
      "target": "pkg:webhooks",
      "relation": "contains"
    },
    {
      "source": "pkg:webhooks",
      "target": "plugin:fourfoldlabs-features",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-features",
      "target": "pkg:workflows",
      "relation": "contains"
    },
    {
      "source": "pkg:workflows",
      "target": "plugin:fourfoldlabs-features",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-foundation",
      "target": "pkg:api-core",
      "relation": "contains"
    },
    {
      "source": "pkg:api-core",
      "target": "plugin:fourfoldlabs-foundation",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-foundation",
      "target": "pkg:auth",
      "relation": "contains"
    },
    {
      "source": "pkg:auth",
      "target": "plugin:fourfoldlabs-foundation",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-foundation",
      "target": "pkg:blocks",
      "relation": "contains"
    },
    {
      "source": "pkg:blocks",
      "target": "plugin:fourfoldlabs-foundation",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-foundation",
      "target": "pkg:shared",
      "relation": "contains"
    },
    {
      "source": "pkg:shared",
      "target": "plugin:fourfoldlabs-foundation",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-foundation",
      "target": "pkg:ui",
      "relation": "contains"
    },
    {
      "source": "pkg:ui",
      "target": "plugin:fourfoldlabs-foundation",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-infra",
      "target": "pkg:events",
      "relation": "contains"
    },
    {
      "source": "pkg:events",
      "target": "plugin:fourfoldlabs-infra",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-infra",
      "target": "pkg:export",
      "relation": "contains"
    },
    {
      "source": "pkg:export",
      "target": "plugin:fourfoldlabs-infra",
      "relation": "member-of"
    },
    {
      "source": "plugin:fourfoldlabs-infra",
      "target": "pkg:jobs",
      "relation": "contains"
    },
    {
      "source": "pkg:jobs",
      "target": "plugin:fourfoldlabs-infra",
      "relation": "member-of"
    }
  ]
}
