{
  "schemaVersion": 1,
  "sensitiveFieldsExcluded": true,
  "generatedAt": "1970-01-01T00:00:00.000Z",
  "packageName": "@happyvertical/smrt-content",
  "packageVersion": "0.43.3",
  "sourceManifestPath": "dist/manifest.json",
  "agentDocPath": "AGENTS.md",
  "sourceHashes": {
    "manifest": "2f53ba02efde2319cf473f5999b1380e6d90cc4529b166a754ff06dd75f98eab",
    "packageJson": "d1cea4d42892e3644dc74a230b3d8b9ac910bf137c1389eb414dafbf21f22370",
    "agents": "a75d356eadcd57611bbe3ba544254fd9a374aecb64a5ce13de2205ea2f7f48bb"
  },
  "exports": [
    ".",
    "./manifest",
    "./manifest.json",
    "./mock-smrt-client",
    "./playground",
    "./svelte",
    "./ui",
    "./workbench"
  ],
  "dependencies": {
    "@happyvertical/ai": "catalog:",
    "@happyvertical/documents": "catalog:",
    "@happyvertical/files": "catalog:",
    "@happyvertical/geo": "catalog:",
    "@happyvertical/images": "catalog:",
    "@happyvertical/logger": "catalog:",
    "@happyvertical/ocr": "catalog:",
    "@happyvertical/pdf": "catalog:",
    "@happyvertical/smrt-assets": "workspace:*",
    "@happyvertical/smrt-chat": "workspace:*",
    "@happyvertical/smrt-core": "workspace:*",
    "@happyvertical/smrt-facts": "workspace:*",
    "@happyvertical/smrt-images": "workspace:*",
    "@happyvertical/smrt-messages": "workspace:*",
    "@happyvertical/smrt-prompts": "workspace:*",
    "@happyvertical/smrt-profiles": "workspace:*",
    "@happyvertical/smrt-tenancy": "workspace:*",
    "@happyvertical/smrt-types": "workspace:*",
    "@happyvertical/smrt-ui": "workspace:*",
    "@happyvertical/spider": "catalog:",
    "@happyvertical/sql": "catalog:",
    "@happyvertical/utils": "catalog:",
    "fast-xml-parser": "^5.10.1",
    "yaml": "^2.9.0",
    "@faker-js/faker": "^10.5.0",
    "@happyvertical/smrt-playground": "workspace:*",
    "@happyvertical/smrt-vitest": "workspace:*",
    "@sveltejs/kit": "^2.69.1",
    "@sveltejs/package": "^2.5.8",
    "@sveltejs/vite-plugin-svelte": "^7.1.2",
    "@types/node": "24.13.2",
    "svelte": "^5.56.4",
    "svelte-check": "^4.7.1",
    "typescript": "5.9.3",
    "vite": "8.1.4",
    "vitest": "4.1.10"
  },
  "smrtDependencies": [
    "@happyvertical/smrt-assets",
    "@happyvertical/smrt-chat",
    "@happyvertical/smrt-core",
    "@happyvertical/smrt-facts",
    "@happyvertical/smrt-images",
    "@happyvertical/smrt-messages",
    "@happyvertical/smrt-playground",
    "@happyvertical/smrt-profiles",
    "@happyvertical/smrt-prompts",
    "@happyvertical/smrt-tenancy",
    "@happyvertical/smrt-types",
    "@happyvertical/smrt-ui",
    "@happyvertical/smrt-vitest"
  ],
  "sdkDependencies": [
    "@happyvertical/ai",
    "@happyvertical/documents",
    "@happyvertical/files",
    "@happyvertical/geo",
    "@happyvertical/images",
    "@happyvertical/logger",
    "@happyvertical/ocr",
    "@happyvertical/pdf",
    "@happyvertical/spider",
    "@happyvertical/sql",
    "@happyvertical/utils"
  ],
  "tags": [],
  "risks": [],
  "objects": [
    {
      "name": "ContentAsset",
      "qualifiedName": "@happyvertical/smrt-content:ContentAsset",
      "collection": "contentassets",
      "tableName": "content_assets",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "relationship",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "sortOrder",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "content_id",
        "asset_id",
        "relationship"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentAssetCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentAssetCollection",
      "collection": "contentassets",
      "tableName": "content_assets",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtJunction",
      "fields": [],
      "relationships": [],
      "methods": [
        "attach",
        "byLeft",
        "byRight",
        "detach",
        "setLinks"
      ],
      "methodSignatures": [
        {
          "name": "attach",
          "async": true,
          "params": [
            "leftId: string",
            "rightId: string",
            "opts?: JunctionAttachOptions"
          ],
          "returns": "Promise<TItem>"
        },
        {
          "name": "byLeft",
          "async": true,
          "params": [
            "leftId: string",
            "opts?: JunctionFilterOptions"
          ],
          "returns": "Promise<TItem[]>"
        },
        {
          "name": "byRight",
          "async": true,
          "params": [
            "rightId: string",
            "opts?: JunctionFilterOptions"
          ],
          "returns": "Promise<TItem[]>"
        },
        {
          "name": "detach",
          "async": true,
          "params": [
            "leftId: string",
            "rightId: string",
            "opts?: JunctionFilterOptions"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "setLinks",
          "async": true,
          "params": [
            "leftId: string",
            "rightIds: string[]",
            "opts?: JunctionAttachOptions"
          ],
          "returns": "Promise<void>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "SmrtJunction",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributionAttachment",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributionAttachment",
      "collection": "contentcontributionattachments",
      "tableName": "content_contribution_attachments",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "contributionId",
          "type": "foreignKey",
          "required": true,
          "related": "ContentContribution",
          "columnType": "UUID"
        },
        {
          "name": "revisionId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentContributionRevision",
          "columnType": "UUID"
        },
        {
          "name": "filename",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "mimeType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "size",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "fileKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceUri",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "channel",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "web"
        },
        {
          "name": "promotedAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "contributionId",
          "type": "foreignKey",
          "required": true,
          "related": "ContentContribution",
          "columnType": "UUID"
        },
        {
          "name": "revisionId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentContributionRevision",
          "columnType": "UUID"
        },
        {
          "name": "promotedAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentcontributionattachments.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
          "path": "/contentcontributionattachments",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributionattachments.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
          "path": "/contentcontributionattachments/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributionattachments.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
          "path": "/contentcontributionattachments",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributionattachments.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
          "path": "/contentcontributionattachments/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentcontributionattachments.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
          "path": "/contentcontributionattachments/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentcontributionattachment_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "cli",
          "name": "contentcontributionattachment_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "cli",
          "name": "contentcontributionattachment_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "cli",
          "name": "contentcontributionattachment_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "cli",
          "name": "contentcontributionattachment_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionattachment_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionattachment_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionattachment_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionattachment_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionattachment_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributionAttachmentCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributionAttachmentCollection",
      "collection": "contentcontributionattachments",
      "tableName": "content_contribution_attachments",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "listForContribution",
        "listForRevision"
      ],
      "methodSignatures": [
        {
          "name": "listForContribution",
          "async": true,
          "params": [
            "contributionId: string"
          ],
          "returns": "Promise<ContentContributionAttachment[]>"
        },
        {
          "name": "listForRevision",
          "async": true,
          "params": [
            "revisionId: string"
          ],
          "returns": "Promise<ContentContributionAttachment[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributionRevision",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributionRevision",
      "collection": "contentcontributionrevisions",
      "tableName": "content_contribution_revisions",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "contributionId",
          "type": "foreignKey",
          "required": true,
          "related": "ContentContribution",
          "columnType": "UUID"
        },
        {
          "name": "revisionNumber",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "channel",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "web"
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceMessageId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-messages:Message",
          "columnType": "UUID"
        },
        {
          "name": "sourceThreadKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "contributionId",
          "type": "foreignKey",
          "required": true,
          "related": "ContentContribution",
          "columnType": "UUID"
        },
        {
          "name": "sourceMessageId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-messages:Message",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "contribution_id",
        "revision_number"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentcontributionrevisions.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
          "path": "/contentcontributionrevisions",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributionrevisions.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
          "path": "/contentcontributionrevisions/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributionrevisions.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
          "path": "/contentcontributionrevisions",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributionrevisions.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
          "path": "/contentcontributionrevisions/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentcontributionrevisions.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
          "path": "/contentcontributionrevisions/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentcontributionrevision_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "cli",
          "name": "contentcontributionrevision_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "cli",
          "name": "contentcontributionrevision_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "cli",
          "name": "contentcontributionrevision_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "cli",
          "name": "contentcontributionrevision_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionrevision_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionrevision_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionrevision_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionrevision_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        },
        {
          "kind": "mcp",
          "name": "contentcontributionrevision_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributionRevisionCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributionRevisionCollection",
      "collection": "contentcontributionrevisions",
      "tableName": "content_contribution_revisions",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "getLatestForContribution",
        "listForContribution"
      ],
      "methodSignatures": [
        {
          "name": "getLatestForContribution",
          "async": true,
          "params": [
            "contributionId: string"
          ],
          "returns": "Promise<ContentContributionRevision | null>"
        },
        {
          "name": "listForContribution",
          "async": true,
          "params": [
            "contributionId: string"
          ],
          "returns": "Promise<ContentContributionRevision[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributionType",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributionType",
      "collection": "contentcontributiontypes",
      "tableName": "content_contribution_types",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "key",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "label",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "enabled",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": true
        },
        {
          "name": "allowedChannels",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "allowText",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": true
        },
        {
          "name": "allowFiles",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "allowEmptyText",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "intakeRules",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "promotion",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "delete",
        "getAllowedChannels",
        "getIntakeRules",
        "getMetadata",
        "getPromotion",
        "setAllowedChannels",
        "setIntakeRules",
        "setMetadata",
        "setPromotion",
        "toDefinition"
      ],
      "methodSignatures": [
        {
          "name": "delete",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "getAllowedChannels",
          "returns": "ContentContributionChannel[]"
        },
        {
          "name": "getIntakeRules",
          "returns": "ContentContributionIntakeRules"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getPromotion",
          "returns": "ContentContributionPromotionMapping"
        },
        {
          "name": "setAllowedChannels",
          "params": [
            "channels: ContentContributionChannel[]"
          ],
          "returns": "void"
        },
        {
          "name": "setIntakeRules",
          "params": [
            "rules: ContentContributionIntakeRules"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "setPromotion",
          "params": [
            "promotion: ContentContributionPromotionMapping"
          ],
          "returns": "void"
        },
        {
          "name": "toDefinition",
          "returns": "ContentContributionTypeDefinition"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "key"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentcontributiontypes.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionType",
          "path": "/contentcontributiontypes",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributiontypes.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionType",
          "path": "/contentcontributiontypes/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributiontypes.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionType",
          "path": "/contentcontributiontypes",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributiontypes.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionType",
          "path": "/contentcontributiontypes/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentcontributiontypes.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionType",
          "path": "/contentcontributiontypes/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentcontributiontype_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "cli",
          "name": "contentcontributiontype_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "cli",
          "name": "contentcontributiontype_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "cli",
          "name": "contentcontributiontype_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "cli",
          "name": "contentcontributiontype_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "mcp",
          "name": "contentcontributiontype_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "mcp",
          "name": "contentcontributiontype_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "mcp",
          "name": "contentcontributiontype_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "mcp",
          "name": "contentcontributiontype_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        },
        {
          "kind": "mcp",
          "name": "contentcontributiontype_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributionType"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributionTypeCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributionTypeCollection",
      "collection": "contentcontributiontypes",
      "tableName": "content_contribution_types",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "getByKey"
      ],
      "methodSignatures": [
        {
          "name": "getByKey",
          "async": true,
          "params": [
            "key: string"
          ],
          "returns": "Promise<ContentContributionType | null>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContribution",
      "qualifiedName": "@happyvertical/smrt-content:ContentContribution",
      "collection": "contentcontributions",
      "tableName": "content_contributions",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "contributorId",
          "type": "foreignKey",
          "required": true,
          "related": "ContentContributor",
          "columnType": "UUID"
        },
        {
          "name": "contributionTypeKey",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "submitted"
        },
        {
          "name": "intakeDecision",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "accepted"
        },
        {
          "name": "channel",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "web"
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "contributorEmail",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "contributorName",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "threadKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceMessageId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-messages:Message",
          "columnType": "UUID"
        },
        {
          "name": "editorNotes",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "promotedContentId",
          "type": "foreignKey",
          "required": false,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "revisionCount",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "approvedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "promotedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "rejectedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "withdrawnAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "requestedChangesAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "contributorId",
          "type": "foreignKey",
          "required": true,
          "related": "ContentContributor",
          "columnType": "UUID"
        },
        {
          "name": "sourceMessageId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-messages:Message",
          "columnType": "UUID"
        },
        {
          "name": "promotedContentId",
          "type": "foreignKey",
          "required": false,
          "related": "Content",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "appendRevisionAction",
        "approveAction",
        "getAttachments",
        "getContributor",
        "getLatestRevision",
        "getMetadata",
        "getRevisions",
        "promoteAction",
        "rejectAction",
        "requestChangesAction",
        "resolveContributionType",
        "setMetadata",
        "withdrawAction"
      ],
      "methodSignatures": [
        {
          "name": "appendRevisionAction",
          "async": true,
          "params": [
            "options?: AppendContentContributionRevisionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "approveAction",
          "async": true,
          "params": [
            "options?: ApproveContentContributionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "getAttachments",
          "async": true,
          "returns": "Promise<ContentContributionAttachment[]>"
        },
        {
          "name": "getContributor",
          "async": true,
          "returns": "Promise<ContentContributor | null>"
        },
        {
          "name": "getLatestRevision",
          "async": true,
          "returns": "Promise<ContentContributionRevision | null>"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRevisions",
          "async": true,
          "returns": "Promise<ContentContributionRevision[]>"
        },
        {
          "name": "promoteAction",
          "async": true,
          "params": [
            "options?: PromoteContentContributionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "rejectAction",
          "async": true,
          "params": [
            "options?: RejectContentContributionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "requestChangesAction",
          "async": true,
          "params": [
            "options?: RequestChangesContentContributionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "resolveContributionType",
          "async": true,
          "returns": "Promise<ContentContributionTypeDefinition | null>"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "withdrawAction",
          "async": true,
          "params": [
            "options?: WithdrawContentContributionOptions"
          ],
          "returns": "any"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentcontributions.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributions.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributions.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentcontributions.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/[id]",
          "method": "DELETE"
        },
        {
          "kind": "api",
          "name": "contentcontributions.appendRevisionAction",
          "operation": "appendRevisionAction",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/appendRevisionAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.requestChangesAction",
          "operation": "requestChangesAction",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/requestChangesAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.approveAction",
          "operation": "approveAction",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/approveAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.rejectAction",
          "operation": "rejectAction",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/rejectAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.withdrawAction",
          "operation": "withdrawAction",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/withdrawAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.promoteAction",
          "operation": "promoteAction",
          "objectName": "@happyvertical/smrt-content:ContentContribution",
          "path": "/contentcontributions/promoteAction",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "contentcontribution_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "cli",
          "name": "contentcontribution_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "cli",
          "name": "contentcontribution_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "cli",
          "name": "contentcontribution_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "cli",
          "name": "contentcontribution_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "mcp",
          "name": "contentcontribution_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "mcp",
          "name": "contentcontribution_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "mcp",
          "name": "contentcontribution_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        },
        {
          "kind": "mcp",
          "name": "contentcontribution_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContribution"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributions",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributions",
      "collection": "contentcontributions",
      "tableName": "content_contributions",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "getContributionTypesAction",
        "ingestEmailContribution",
        "listForContributor",
        "listInboxAction",
        "submitWebContribution"
      ],
      "methodSignatures": [
        {
          "name": "getContributionTypesAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "ingestEmailContribution",
          "async": true,
          "params": [
            "options: IngestEmailContentContributionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "listForContributor",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "listInboxAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<ContentContribution[]>"
        },
        {
          "name": "submitWebContribution",
          "async": true,
          "params": [
            "options: SubmitWebContentContributionOptions"
          ],
          "returns": "any"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentcontributions.submitWebContribution",
          "operation": "submitWebContribution",
          "objectName": "@happyvertical/smrt-content:ContentContributions",
          "path": "/contentcontributions/submitWebContribution",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.ingestEmailContribution",
          "operation": "ingestEmailContribution",
          "objectName": "@happyvertical/smrt-content:ContentContributions",
          "path": "/contentcontributions/ingestEmailContribution",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.listForContributor",
          "operation": "listForContributor",
          "objectName": "@happyvertical/smrt-content:ContentContributions",
          "path": "/contentcontributions/listForContributor",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.listInboxAction",
          "operation": "listInboxAction",
          "objectName": "@happyvertical/smrt-content:ContentContributions",
          "path": "/contentcontributions/listInboxAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributions.getContributionTypesAction",
          "operation": "getContributionTypesAction",
          "objectName": "@happyvertical/smrt-content:ContentContributions",
          "path": "/contentcontributions/getContributionTypesAction",
          "method": "POST"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributor",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributor",
      "collection": "contentcontributors",
      "tableName": "content_contributors",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "email",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "trustLevel",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "standard"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "email"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentcontributors.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributor",
          "path": "/contentcontributors",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributors.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributor",
          "path": "/contentcontributors/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcontributors.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributor",
          "path": "/contentcontributors",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcontributors.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributor",
          "path": "/contentcontributors/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentcontributors.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributor",
          "path": "/contentcontributors/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentcontributor_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "cli",
          "name": "contentcontributor_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "cli",
          "name": "contentcontributor_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "cli",
          "name": "contentcontributor_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "cli",
          "name": "contentcontributor_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "mcp",
          "name": "contentcontributor_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "mcp",
          "name": "contentcontributor_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "mcp",
          "name": "contentcontributor_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "mcp",
          "name": "contentcontributor_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        },
        {
          "kind": "mcp",
          "name": "contentcontributor_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentContributor"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentContributorCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentContributorCollection",
      "collection": "contentcontributors",
      "tableName": "content_contributors",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findOrCreateByEmail",
        "getByEmail",
        "getByProfileId"
      ],
      "methodSignatures": [
        {
          "name": "findOrCreateByEmail",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<ContentContributor>"
        },
        {
          "name": "getByEmail",
          "async": true,
          "params": [
            "email: string"
          ],
          "returns": "Promise<ContentContributor | null>"
        },
        {
          "name": "getByProfileId",
          "async": true,
          "params": [
            "profileId: string"
          ],
          "returns": "Promise<ContentContributor | null>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentCorrection",
      "qualifiedName": "@happyvertical/smrt-content:ContentCorrection",
      "collection": "contentcorrections",
      "tableName": "content_corrections",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "contentVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentVersion",
          "columnType": "UUID"
        },
        {
          "name": "factId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-facts:Fact",
          "columnType": "UUID"
        },
        {
          "name": "replacementFactId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-facts:Fact",
          "columnType": "UUID"
        },
        {
          "name": "correctionType",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "fact"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "draft"
        },
        {
          "name": "summary",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "incorrectText",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "correctedText",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "publicNote",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "publishedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "contentVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentVersion",
          "columnType": "UUID"
        },
        {
          "name": "factId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-facts:Fact",
          "columnType": "UUID"
        },
        {
          "name": "replacementFactId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-facts:Fact",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentcorrections.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentCorrection",
          "path": "/contentcorrections",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcorrections.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentCorrection",
          "path": "/contentcorrections/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentcorrections.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentCorrection",
          "path": "/contentcorrections",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentcorrections.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentCorrection",
          "path": "/contentcorrections/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "contentcorrection_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "cli",
          "name": "contentcorrection_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "cli",
          "name": "contentcorrection_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "cli",
          "name": "contentcorrection_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "cli",
          "name": "contentcorrection_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "mcp",
          "name": "contentcorrection_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "mcp",
          "name": "contentcorrection_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "mcp",
          "name": "contentcorrection_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        },
        {
          "kind": "mcp",
          "name": "contentcorrection_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentCorrection"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentCorrectionCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentCorrectionCollection",
      "collection": "contentcorrections",
      "tableName": "content_corrections",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "getPublishedForContent",
        "issue",
        "listForContent"
      ],
      "methodSignatures": [
        {
          "name": "getPublishedForContent",
          "async": true,
          "params": [
            "contentId: string"
          ],
          "returns": "Promise<ContentCorrection[]>"
        },
        {
          "name": "issue",
          "async": true,
          "params": [
            "options: any"
          ],
          "returns": "Promise<ContentCorrection>"
        },
        {
          "name": "listForContent",
          "async": true,
          "params": [
            "contentId: string"
          ],
          "returns": "Promise<ContentCorrection[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentFeedSource",
      "qualifiedName": "@happyvertical/smrt-content:ContentFeedSource",
      "collection": "contentfeedsources",
      "tableName": "content_feed_sources",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "name",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "feedUrl",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "homepageUrl",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "format",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": "active"
        },
        {
          "name": "defaultCategory",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceGroup",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "pollIntervalMinutes",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 15
        },
        {
          "name": "etag",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "lastModified",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "lastFetchedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "lastSuccessAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "lastError",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "getMetadata",
        "markFetchFailed",
        "markFetchStarted",
        "markFetchSucceeded",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "markFetchFailed",
          "params": [
            "error: any",
            "at?: any"
          ],
          "returns": "void"
        },
        {
          "name": "markFetchStarted",
          "params": [
            "at?: any"
          ],
          "returns": "void"
        },
        {
          "name": "markFetchSucceeded",
          "params": [
            "at?: any",
            "headers?: object"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "feed_url"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentfeedsources.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource",
          "path": "/contentfeedsources",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentfeedsources.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource",
          "path": "/contentfeedsources/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentfeedsources.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource",
          "path": "/contentfeedsources",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentfeedsources.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource",
          "path": "/contentfeedsources/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentfeedsources.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource",
          "path": "/contentfeedsources/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentfeedsource_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "cli",
          "name": "contentfeedsource_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "cli",
          "name": "contentfeedsource_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "cli",
          "name": "contentfeedsource_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "cli",
          "name": "contentfeedsource_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "mcp",
          "name": "contentfeedsource_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "mcp",
          "name": "contentfeedsource_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "mcp",
          "name": "contentfeedsource_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "mcp",
          "name": "contentfeedsource_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        },
        {
          "kind": "mcp",
          "name": "contentfeedsource_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentFeedSource"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentFeedSourceCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentFeedSourceCollection",
      "collection": "contentfeedsources",
      "tableName": "content_feed_sources",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findActive",
        "findByFeedUrl",
        "findByStatus"
      ],
      "methodSignatures": [
        {
          "name": "findActive",
          "async": true,
          "params": [
            "tenantId?: string | null"
          ],
          "returns": "Promise<ContentFeedSource[]>"
        },
        {
          "name": "findByFeedUrl",
          "async": true,
          "params": [
            "feedUrl: string",
            "tenantId?: string | null"
          ],
          "returns": "Promise<ContentFeedSource | null>"
        },
        {
          "name": "findByStatus",
          "async": true,
          "params": [
            "status: ContentFeedSourceStatus",
            "tenantId?: string | null"
          ],
          "returns": "Promise<ContentFeedSource[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentGovernanceAssignment",
      "qualifiedName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
      "collection": "contentgovernanceassignments",
      "tableName": "content_governance_assignments",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "key",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "label",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "contentType",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "contentVariant",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "enabled",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": true
        },
        {
          "name": "factLinkingEnabled",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "transparencyEnabled",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "publicationProfileKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "correctionProfileKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "enforcePublishReadiness",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": false
        },
        {
          "name": "defaultFactRelationship",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "supports"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "getMetadata",
        "toDefinition"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "toDefinition",
          "returns": "ContentGovernanceAssignmentDefinition"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "key"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentgovernanceassignments.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
          "path": "/contentgovernanceassignments",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentgovernanceassignments.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
          "path": "/contentgovernanceassignments/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentgovernanceassignments.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
          "path": "/contentgovernanceassignments",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentgovernanceassignments.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
          "path": "/contentgovernanceassignments/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentgovernanceassignments.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
          "path": "/contentgovernanceassignments/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceassignment_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceassignment_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceassignment_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceassignment_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceassignment_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceassignment_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceassignment_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceassignment_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceassignment_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceassignment_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentGovernanceAssignmentCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentGovernanceAssignmentCollection",
      "collection": "contentgovernanceassignments",
      "tableName": "content_governance_assignments",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "getByKey",
        "resolveForContent"
      ],
      "methodSignatures": [
        {
          "name": "getByKey",
          "async": true,
          "params": [
            "key: string"
          ],
          "returns": "Promise<ContentGovernanceAssignment | null>"
        },
        {
          "name": "resolveForContent",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<ContentGovernanceAssignment | null>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentGovernancePolicyCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentGovernancePolicyCollection",
      "collection": "contentgovernancepolicies",
      "tableName": "content_governance_policies",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "getByKey"
      ],
      "methodSignatures": [
        {
          "name": "getByKey",
          "async": true,
          "params": [
            "key: string"
          ],
          "returns": "Promise<ContentGovernancePolicy | null>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentGovernancePolicy",
      "qualifiedName": "@happyvertical/smrt-content:ContentGovernancePolicy",
      "collection": "contentgovernancepolicies",
      "tableName": "content_governance_policies",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "key",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "label",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "kind",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "custom"
        },
        {
          "name": "instructions",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "enabled",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": true
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "delete",
        "getMetadata",
        "toDefinition"
      ],
      "methodSignatures": [
        {
          "name": "delete",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "toDefinition",
          "returns": "ContentReviewPolicyDefinition"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "key"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentgovernancepolicies.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
          "path": "/contentgovernancepolicies",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentgovernancepolicies.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
          "path": "/contentgovernancepolicies/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentgovernancepolicies.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
          "path": "/contentgovernancepolicies",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentgovernancepolicies.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
          "path": "/contentgovernancepolicies/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentgovernancepolicies.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
          "path": "/contentgovernancepolicies/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentgovernancepolicy_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "cli",
          "name": "contentgovernancepolicy_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "cli",
          "name": "contentgovernancepolicy_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "cli",
          "name": "contentgovernancepolicy_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "cli",
          "name": "contentgovernancepolicy_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "mcp",
          "name": "contentgovernancepolicy_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "mcp",
          "name": "contentgovernancepolicy_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "mcp",
          "name": "contentgovernancepolicy_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "mcp",
          "name": "contentgovernancepolicy_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        },
        {
          "kind": "mcp",
          "name": "contentgovernancepolicy_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentGovernanceProfile",
      "qualifiedName": "@happyvertical/smrt-content:ContentGovernanceProfile",
      "collection": "contentgovernanceprofiles",
      "tableName": "content_governance_profiles",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "key",
          "type": "text",
          "required": true,
          "columnType": "TEXT"
        },
        {
          "name": "label",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "enabled",
          "type": "boolean",
          "required": true,
          "columnType": "BOOLEAN",
          "default": true
        },
        {
          "name": "requirements",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [],
      "methods": [
        "delete",
        "getMetadata",
        "getRequirements",
        "toDefinition"
      ],
      "methodSignatures": [
        {
          "name": "delete",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRequirements",
          "returns": "ContentReviewRequirement[]"
        },
        {
          "name": "toDefinition",
          "returns": "ContentGovernanceProfileDefinition"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "key"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentgovernanceprofiles.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
          "path": "/contentgovernanceprofiles",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentgovernanceprofiles.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
          "path": "/contentgovernanceprofiles/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentgovernanceprofiles.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
          "path": "/contentgovernanceprofiles",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentgovernanceprofiles.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
          "path": "/contentgovernanceprofiles/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contentgovernanceprofiles.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
          "path": "/contentgovernanceprofiles/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceprofile_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceprofile_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceprofile_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceprofile_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "cli",
          "name": "contentgovernanceprofile_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceprofile_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceprofile_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceprofile_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceprofile_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        },
        {
          "kind": "mcp",
          "name": "contentgovernanceprofile_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentGovernanceProfileCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentGovernanceProfileCollection",
      "collection": "contentgovernanceprofiles",
      "tableName": "content_governance_profiles",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "getByKey"
      ],
      "methodSignatures": [
        {
          "name": "getByKey",
          "async": true,
          "params": [
            "key: string"
          ],
          "returns": "Promise<ContentGovernanceProfile | null>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentReference",
      "qualifiedName": "@happyvertical/smrt-content:ContentReference",
      "collection": "contentreferences",
      "tableName": "content_references",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "sourceId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "targetId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "targetVersion",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "sourceId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "targetId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "source_id",
        "target_id"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentReferences",
      "qualifiedName": "@happyvertical/smrt-content:ContentReferences",
      "collection": "contentreferences",
      "tableName": "content_references",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtJunction",
      "fields": [],
      "relationships": [],
      "methods": [
        "attach",
        "byLeft",
        "byRight",
        "detach",
        "getForSource",
        "getForTarget",
        "setLinks",
        "unlink"
      ],
      "methodSignatures": [
        {
          "name": "attach",
          "async": true,
          "params": [
            "sourceId: string",
            "targetId: string",
            "opts?: JunctionAttachOptions"
          ],
          "returns": "Promise<ContentReference>"
        },
        {
          "name": "byLeft",
          "async": true,
          "params": [
            "leftId: string",
            "opts?: JunctionFilterOptions"
          ],
          "returns": "Promise<TItem[]>"
        },
        {
          "name": "byRight",
          "async": true,
          "params": [
            "rightId: string",
            "opts?: JunctionFilterOptions"
          ],
          "returns": "Promise<TItem[]>"
        },
        {
          "name": "detach",
          "async": true,
          "params": [
            "leftId: string",
            "rightId: string",
            "opts?: JunctionFilterOptions"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "getForSource",
          "async": true,
          "params": [
            "sourceId: string"
          ],
          "returns": "Promise<ContentReference[]>"
        },
        {
          "name": "getForTarget",
          "async": true,
          "params": [
            "targetId: string"
          ],
          "returns": "Promise<ContentReference[]>"
        },
        {
          "name": "setLinks",
          "async": true,
          "params": [
            "leftId: string",
            "rightIds: string[]",
            "opts?: JunctionAttachOptions"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "unlink",
          "async": true,
          "params": [
            "sourceId: string",
            "targetId: string"
          ],
          "returns": "Promise<void>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "SmrtJunction",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentReview",
      "qualifiedName": "@happyvertical/smrt-content:ContentReview",
      "collection": "contentreviews",
      "tableName": "content_reviews",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "contentVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentVersion",
          "columnType": "UUID"
        },
        {
          "name": "kind",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "custom"
        },
        {
          "name": "policyKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "pending"
        },
        {
          "name": "summary",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "findings",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "reviewer",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "contentVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentVersion",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getFindings",
        "getMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getFindings",
          "returns": "ContentReviewFinding[]"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentreviews.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentReview",
          "path": "/contentreviews",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentreviews.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentReview",
          "path": "/contentreviews/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentreviews.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentReview",
          "path": "/contentreviews",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentreviews.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentReview",
          "path": "/contentreviews/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "contentreview_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "cli",
          "name": "contentreview_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "cli",
          "name": "contentreview_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "cli",
          "name": "contentreview_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "cli",
          "name": "contentreview_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "mcp",
          "name": "contentreview_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "mcp",
          "name": "contentreview_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "mcp",
          "name": "contentreview_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        },
        {
          "kind": "mcp",
          "name": "contentreview_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentReview"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentReviewCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentReviewCollection",
      "collection": "contentreviews",
      "tableName": "content_reviews",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "createFromResult",
        "getLatestForContent",
        "getLatestForPolicyKey",
        "listForContent",
        "listForContentByPolicyKey"
      ],
      "methodSignatures": [
        {
          "name": "createFromResult",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<ContentReview>"
        },
        {
          "name": "getLatestForContent",
          "async": true,
          "params": [
            "contentId: string",
            "kind?: ContentReviewKind"
          ],
          "returns": "Promise<ContentReview | null>"
        },
        {
          "name": "getLatestForPolicyKey",
          "async": true,
          "params": [
            "contentId: string",
            "policyKey: string"
          ],
          "returns": "Promise<ContentReview | null>"
        },
        {
          "name": "listForContent",
          "async": true,
          "params": [
            "contentId: string",
            "kind?: ContentReviewKind"
          ],
          "returns": "Promise<ContentReview[]>"
        },
        {
          "name": "listForContentByPolicyKey",
          "async": true,
          "params": [
            "contentId: string",
            "policyKey: string"
          ],
          "returns": "Promise<ContentReview[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Article",
      "qualifiedName": "@happyvertical/smrt-content:Article",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-content",
      "extends": "Content",
      "fields": [
        {
          "name": "created_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updated_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "type",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "variant",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "fileKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "author",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "name",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "bodyFormat",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "publish_date",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "source",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "original_url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "language",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tags",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "category",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "draft"
        },
        {
          "name": "state",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "active"
        },
        {
          "name": "metadata",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "relationships": [
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "addFact",
        "addReference",
        "browseFacts",
        "classifyConstraintError",
        "clearEmbeddings",
        "createVersion",
        "delete",
        "describe",
        "destroy",
        "do",
        "evaluateReviewProfile",
        "evaluateReviewProfileAction",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "generateThumbnail",
        "getAiUsageSnapshot",
        "getAncestorPaths",
        "getAssets",
        "getAvailableTools",
        "getCategorySegments",
        "getCorrections",
        "getEmbedding",
        "getFactAuditState",
        "getFactAuditStateAction",
        "getFactLinks",
        "getFacts",
        "getFactsState",
        "getFields",
        "getGovernanceState",
        "getGovernanceStateAction",
        "getId",
        "getMetadata",
        "getParentCategory",
        "getPublishedTransparency",
        "getPublishedTransparencyAction",
        "getReferenceDrift",
        "getReferenceEdges",
        "getReferences",
        "getRelated",
        "getReviewRequirements",
        "getReviews",
        "getRootCategory",
        "getSavedId",
        "getSlug",
        "getThumbnail",
        "getVersions",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isGoverned",
        "isInCategory",
        "isReadyForReviewProfile",
        "isRelatedLoaded",
        "isSaved",
        "issueCorrection",
        "issueCorrectionAction",
        "listAiUsage",
        "listCorrections",
        "listReviewProfilesAction",
        "listReviews",
        "listVersions",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadReferences",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mutateVersionAction",
        "previewTransparency",
        "previewTransparencyAction",
        "recall",
        "recallAll",
        "recheckFactClaims",
        "recheckFactClaimsAction",
        "remember",
        "removeAsset",
        "removeFact",
        "removeReference",
        "repairFactAudit",
        "repairFactAuditAction",
        "repairFactEvidence",
        "repairFactEvidenceAction",
        "requireInsertOnSave",
        "resetAiUsage",
        "resolveGovernance",
        "restoreFromVersion",
        "reviewFacts",
        "reviewSafety",
        "runReview",
        "runReviewAction",
        "save",
        "setMetadata",
        "setThumbnail",
        "summarizeAiUsage",
        "syncFacts",
        "syncFactsState",
        "toJSON",
        "toPlainObject",
        "toPublicJSON",
        "updateFactEvidenceStatus",
        "updateFactEvidenceStatusAction",
        "updateMetadata",
        "withDatabase"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "addAsset",
          "async": true,
          "params": [
            "asset: Asset",
            "relationship?: any",
            "sortOrder?: any"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "addFact",
          "async": true,
          "params": [
            "fact: Fact | string",
            "relationship?: FactContentRelationship",
            "metadata?: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "addReference",
          "async": true,
          "params": [
            "content: Content | string",
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "browseFacts",
          "async": true,
          "params": [
            "query?: any",
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "createVersion",
          "async": true,
          "params": [
            "options?: CreateContentVersionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "delete",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "describe",
          "async": true,
          "params": [
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "destroy",
          "returns": "void"
        },
        {
          "name": "do",
          "async": true,
          "params": [
            "instructions: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "evaluateReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<ContentReviewProfileEvaluation>"
        },
        {
          "name": "evaluateReviewProfileAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "executeToolCall",
          "async": true,
          "params": [
            "toolCall: ToolCall"
          ],
          "returns": "Promise<ToolCallResult>"
        },
        {
          "name": "forget",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "forgetScope",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<number>"
        },
        {
          "name": "generateEmbeddings",
          "async": true,
          "params": [
            "options?: GenerateEmbeddingsOptions"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "generateThumbnail",
          "async": true,
          "params": [
            "options: ThumbnailOptions"
          ],
          "returns": "Promise<Image>"
        },
        {
          "name": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAncestorPaths",
          "returns": "string[]"
        },
        {
          "name": "getAssets",
          "async": true,
          "params": [
            "relationship?: string"
          ],
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getCategorySegments",
          "returns": "string[]"
        },
        {
          "name": "getCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFactAuditState",
          "async": true,
          "returns": "Promise<FactAuditState>"
        },
        {
          "name": "getFactAuditStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getFactLinks",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFacts",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "getFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getGovernanceState",
          "async": true,
          "returns": "Promise<ContentGovernanceState>"
        },
        {
          "name": "getGovernanceStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getParentCategory",
          "returns": "string | null"
        },
        {
          "name": "getPublishedTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getPublishedTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getReferenceDrift",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferenceEdges",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getReviewRequirements",
          "async": true,
          "params": [
            "profileKey: string",
            "governance?: ResolvedContentGovernance"
          ],
          "returns": "any"
        },
        {
          "name": "getReviews",
          "async": true,
          "params": [
            "kind?: any"
          ],
          "returns": "any"
        },
        {
          "name": "getRootCategory",
          "returns": "string | null"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getThumbnail",
          "async": true,
          "returns": "Promise<Image | null>"
        },
        {
          "name": "getVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isGoverned",
          "returns": "boolean"
        },
        {
          "name": "isInCategory",
          "params": [
            "categoryPath: string",
            "includeChildren?: any"
          ],
          "returns": "boolean"
        },
        {
          "name": "isReadyForReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "issueCorrection",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "issueCorrectionAction",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "listCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviewProfilesAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviews",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "listVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "loadRelatedMany",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any[]>"
        },
        {
          "name": "markAsPersisted",
          "returns": "void"
        },
        {
          "name": "mutateVersionAction",
          "async": true,
          "params": [
            "options?: any"
          ],
          "returns": "any"
        },
        {
          "name": "previewTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "previewTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "recheckFactClaims",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "recheckFactClaimsAction",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeAsset",
          "async": true,
          "params": [
            "assetId: string",
            "relationship?: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeFact",
          "async": true,
          "params": [
            "factId: string",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeReference",
          "async": true,
          "params": [
            "targetId: string"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAudit",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAuditAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidence",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidenceAction",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "resolveGovernance",
          "async": true,
          "returns": "Promise<ResolvedContentGovernance>"
        },
        {
          "name": "restoreFromVersion",
          "async": true,
          "params": [
            "versionNumber: number"
          ],
          "returns": "any"
        },
        {
          "name": "reviewFacts",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "reviewSafety",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "runReview",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "runReviewAction",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string> | null | undefined"
          ],
          "returns": "void"
        },
        {
          "name": "setThumbnail",
          "async": true,
          "params": [
            "image: Image"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "syncFacts",
          "async": true,
          "params": [
            "factIds: string[]",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<object>"
        },
        {
          "name": "syncFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "updateFactEvidenceStatus",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateFactEvidenceStatusAction",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateMetadata",
          "params": [
            "patch: Partial<Record<string>>"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "withDatabase",
          "async": true,
          "params": [
            "db: DatabaseInterface",
            "operation: Function"
          ],
          "returns": "Promise<T>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentDocument",
      "qualifiedName": "@happyvertical/smrt-content:ContentDocument",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-content",
      "extends": "Content",
      "fields": [
        {
          "name": "created_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updated_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "type",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "variant",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "fileKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "author",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "name",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "bodyFormat",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "publish_date",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "source",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "original_url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "language",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tags",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "category",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "draft"
        },
        {
          "name": "state",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "active"
        },
        {
          "name": "metadata",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "relationships": [
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "addFact",
        "addReference",
        "browseFacts",
        "classifyConstraintError",
        "clearEmbeddings",
        "createVersion",
        "delete",
        "describe",
        "destroy",
        "do",
        "evaluateReviewProfile",
        "evaluateReviewProfileAction",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "generateThumbnail",
        "getAiUsageSnapshot",
        "getAncestorPaths",
        "getAssets",
        "getAvailableTools",
        "getCategorySegments",
        "getCorrections",
        "getEmbedding",
        "getFactAuditState",
        "getFactAuditStateAction",
        "getFactLinks",
        "getFacts",
        "getFactsState",
        "getFields",
        "getGovernanceState",
        "getGovernanceStateAction",
        "getId",
        "getMetadata",
        "getParentCategory",
        "getPublishedTransparency",
        "getPublishedTransparencyAction",
        "getReferenceDrift",
        "getReferenceEdges",
        "getReferences",
        "getRelated",
        "getReviewRequirements",
        "getReviews",
        "getRootCategory",
        "getSavedId",
        "getSlug",
        "getThumbnail",
        "getVersions",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isGoverned",
        "isInCategory",
        "isReadyForReviewProfile",
        "isRelatedLoaded",
        "isSaved",
        "issueCorrection",
        "issueCorrectionAction",
        "listAiUsage",
        "listCorrections",
        "listReviewProfilesAction",
        "listReviews",
        "listVersions",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadReferences",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mutateVersionAction",
        "previewTransparency",
        "previewTransparencyAction",
        "recall",
        "recallAll",
        "recheckFactClaims",
        "recheckFactClaimsAction",
        "remember",
        "removeAsset",
        "removeFact",
        "removeReference",
        "repairFactAudit",
        "repairFactAuditAction",
        "repairFactEvidence",
        "repairFactEvidenceAction",
        "requireInsertOnSave",
        "resetAiUsage",
        "resolveGovernance",
        "restoreFromVersion",
        "reviewFacts",
        "reviewSafety",
        "runReview",
        "runReviewAction",
        "save",
        "setMetadata",
        "setThumbnail",
        "summarizeAiUsage",
        "syncFacts",
        "syncFactsState",
        "toJSON",
        "toPlainObject",
        "toPublicJSON",
        "updateFactEvidenceStatus",
        "updateFactEvidenceStatusAction",
        "updateMetadata",
        "withDatabase"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "addAsset",
          "async": true,
          "params": [
            "asset: Asset",
            "relationship?: any",
            "sortOrder?: any"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "addFact",
          "async": true,
          "params": [
            "fact: Fact | string",
            "relationship?: FactContentRelationship",
            "metadata?: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "addReference",
          "async": true,
          "params": [
            "content: Content | string",
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "browseFacts",
          "async": true,
          "params": [
            "query?: any",
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "createVersion",
          "async": true,
          "params": [
            "options?: CreateContentVersionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "delete",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "describe",
          "async": true,
          "params": [
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "destroy",
          "returns": "void"
        },
        {
          "name": "do",
          "async": true,
          "params": [
            "instructions: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "evaluateReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<ContentReviewProfileEvaluation>"
        },
        {
          "name": "evaluateReviewProfileAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "executeToolCall",
          "async": true,
          "params": [
            "toolCall: ToolCall"
          ],
          "returns": "Promise<ToolCallResult>"
        },
        {
          "name": "forget",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "forgetScope",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<number>"
        },
        {
          "name": "generateEmbeddings",
          "async": true,
          "params": [
            "options?: GenerateEmbeddingsOptions"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "generateThumbnail",
          "async": true,
          "params": [
            "options: ThumbnailOptions"
          ],
          "returns": "Promise<Image>"
        },
        {
          "name": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAncestorPaths",
          "returns": "string[]"
        },
        {
          "name": "getAssets",
          "async": true,
          "params": [
            "relationship?: string"
          ],
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getCategorySegments",
          "returns": "string[]"
        },
        {
          "name": "getCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFactAuditState",
          "async": true,
          "returns": "Promise<FactAuditState>"
        },
        {
          "name": "getFactAuditStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getFactLinks",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFacts",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "getFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getGovernanceState",
          "async": true,
          "returns": "Promise<ContentGovernanceState>"
        },
        {
          "name": "getGovernanceStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getParentCategory",
          "returns": "string | null"
        },
        {
          "name": "getPublishedTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getPublishedTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getReferenceDrift",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferenceEdges",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getReviewRequirements",
          "async": true,
          "params": [
            "profileKey: string",
            "governance?: ResolvedContentGovernance"
          ],
          "returns": "any"
        },
        {
          "name": "getReviews",
          "async": true,
          "params": [
            "kind?: any"
          ],
          "returns": "any"
        },
        {
          "name": "getRootCategory",
          "returns": "string | null"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getThumbnail",
          "async": true,
          "returns": "Promise<Image | null>"
        },
        {
          "name": "getVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isGoverned",
          "returns": "boolean"
        },
        {
          "name": "isInCategory",
          "params": [
            "categoryPath: string",
            "includeChildren?: any"
          ],
          "returns": "boolean"
        },
        {
          "name": "isReadyForReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "issueCorrection",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "issueCorrectionAction",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "listCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviewProfilesAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviews",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "listVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "loadRelatedMany",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any[]>"
        },
        {
          "name": "markAsPersisted",
          "returns": "void"
        },
        {
          "name": "mutateVersionAction",
          "async": true,
          "params": [
            "options?: any"
          ],
          "returns": "any"
        },
        {
          "name": "previewTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "previewTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "recheckFactClaims",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "recheckFactClaimsAction",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeAsset",
          "async": true,
          "params": [
            "assetId: string",
            "relationship?: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeFact",
          "async": true,
          "params": [
            "factId: string",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeReference",
          "async": true,
          "params": [
            "targetId: string"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAudit",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAuditAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidence",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidenceAction",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "resolveGovernance",
          "async": true,
          "returns": "Promise<ResolvedContentGovernance>"
        },
        {
          "name": "restoreFromVersion",
          "async": true,
          "params": [
            "versionNumber: number"
          ],
          "returns": "any"
        },
        {
          "name": "reviewFacts",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "reviewSafety",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "runReview",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "runReviewAction",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string> | null | undefined"
          ],
          "returns": "void"
        },
        {
          "name": "setThumbnail",
          "async": true,
          "params": [
            "image: Image"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "syncFacts",
          "async": true,
          "params": [
            "factIds: string[]",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<object>"
        },
        {
          "name": "syncFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "updateFactEvidenceStatus",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateFactEvidenceStatusAction",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateMetadata",
          "params": [
            "patch: Partial<Record<string>>"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "withDatabase",
          "async": true,
          "params": [
            "db: DatabaseInterface",
            "operation: Function"
          ],
          "returns": "Promise<T>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Mirror",
      "qualifiedName": "@happyvertical/smrt-content:Mirror",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-content",
      "extends": "Content",
      "fields": [
        {
          "name": "created_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updated_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "type",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "variant",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "fileKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "author",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "name",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "bodyFormat",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "publish_date",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "source",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "original_url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "language",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tags",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "category",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "draft"
        },
        {
          "name": "state",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "active"
        },
        {
          "name": "metadata",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "feedSourceId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentFeedSource",
          "columnType": "UUID"
        },
        {
          "name": "sourceGuid",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceName",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceHomepageUrl",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalUrl",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "originalPublishedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "dedupeKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "feedSourceId",
          "type": "foreignKey",
          "required": false,
          "related": "ContentFeedSource",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "addFact",
        "addReference",
        "browseFacts",
        "classifyConstraintError",
        "clearEmbeddings",
        "createVersion",
        "delete",
        "describe",
        "destroy",
        "do",
        "evaluateReviewProfile",
        "evaluateReviewProfileAction",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "generateThumbnail",
        "getAiUsageSnapshot",
        "getAncestorPaths",
        "getAssets",
        "getAvailableTools",
        "getCategorySegments",
        "getCorrections",
        "getEmbedding",
        "getFactAuditState",
        "getFactAuditStateAction",
        "getFactLinks",
        "getFacts",
        "getFactsState",
        "getFields",
        "getGovernanceState",
        "getGovernanceStateAction",
        "getId",
        "getMetadata",
        "getParentCategory",
        "getPublishedTransparency",
        "getPublishedTransparencyAction",
        "getReferenceDrift",
        "getReferenceEdges",
        "getReferences",
        "getRelated",
        "getReviewRequirements",
        "getReviews",
        "getRootCategory",
        "getSavedId",
        "getSlug",
        "getThumbnail",
        "getVersions",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isGoverned",
        "isInCategory",
        "isReadyForReviewProfile",
        "isRelatedLoaded",
        "isSaved",
        "issueCorrection",
        "issueCorrectionAction",
        "listAiUsage",
        "listCorrections",
        "listReviewProfilesAction",
        "listReviews",
        "listVersions",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadReferences",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mutateVersionAction",
        "previewTransparency",
        "previewTransparencyAction",
        "recall",
        "recallAll",
        "recheckFactClaims",
        "recheckFactClaimsAction",
        "remember",
        "removeAsset",
        "removeFact",
        "removeReference",
        "repairFactAudit",
        "repairFactAuditAction",
        "repairFactEvidence",
        "repairFactEvidenceAction",
        "requireInsertOnSave",
        "resetAiUsage",
        "resolveGovernance",
        "restoreFromVersion",
        "reviewFacts",
        "reviewSafety",
        "runReview",
        "runReviewAction",
        "save",
        "setMetadata",
        "setThumbnail",
        "summarizeAiUsage",
        "syncFacts",
        "syncFactsState",
        "toJSON",
        "toPlainObject",
        "toPublicJSON",
        "updateFactEvidenceStatus",
        "updateFactEvidenceStatusAction",
        "updateMetadata",
        "withDatabase"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "addAsset",
          "async": true,
          "params": [
            "asset: Asset",
            "relationship?: any",
            "sortOrder?: any"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "addFact",
          "async": true,
          "params": [
            "fact: Fact | string",
            "relationship?: FactContentRelationship",
            "metadata?: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "addReference",
          "async": true,
          "params": [
            "content: Content | string",
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "browseFacts",
          "async": true,
          "params": [
            "query?: any",
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "createVersion",
          "async": true,
          "params": [
            "options?: CreateContentVersionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "delete",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "describe",
          "async": true,
          "params": [
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "destroy",
          "returns": "void"
        },
        {
          "name": "do",
          "async": true,
          "params": [
            "instructions: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "evaluateReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<ContentReviewProfileEvaluation>"
        },
        {
          "name": "evaluateReviewProfileAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "executeToolCall",
          "async": true,
          "params": [
            "toolCall: ToolCall"
          ],
          "returns": "Promise<ToolCallResult>"
        },
        {
          "name": "forget",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "forgetScope",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<number>"
        },
        {
          "name": "generateEmbeddings",
          "async": true,
          "params": [
            "options?: GenerateEmbeddingsOptions"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "generateThumbnail",
          "async": true,
          "params": [
            "options: ThumbnailOptions"
          ],
          "returns": "Promise<Image>"
        },
        {
          "name": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAncestorPaths",
          "returns": "string[]"
        },
        {
          "name": "getAssets",
          "async": true,
          "params": [
            "relationship?: string"
          ],
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getCategorySegments",
          "returns": "string[]"
        },
        {
          "name": "getCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFactAuditState",
          "async": true,
          "returns": "Promise<FactAuditState>"
        },
        {
          "name": "getFactAuditStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getFactLinks",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFacts",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "getFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getGovernanceState",
          "async": true,
          "returns": "Promise<ContentGovernanceState>"
        },
        {
          "name": "getGovernanceStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getParentCategory",
          "returns": "string | null"
        },
        {
          "name": "getPublishedTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getPublishedTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getReferenceDrift",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferenceEdges",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getReviewRequirements",
          "async": true,
          "params": [
            "profileKey: string",
            "governance?: ResolvedContentGovernance"
          ],
          "returns": "any"
        },
        {
          "name": "getReviews",
          "async": true,
          "params": [
            "kind?: any"
          ],
          "returns": "any"
        },
        {
          "name": "getRootCategory",
          "returns": "string | null"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getThumbnail",
          "async": true,
          "returns": "Promise<Image | null>"
        },
        {
          "name": "getVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isGoverned",
          "returns": "boolean"
        },
        {
          "name": "isInCategory",
          "params": [
            "categoryPath: string",
            "includeChildren?: any"
          ],
          "returns": "boolean"
        },
        {
          "name": "isReadyForReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "issueCorrection",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "issueCorrectionAction",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "listCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviewProfilesAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviews",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "listVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "loadRelatedMany",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any[]>"
        },
        {
          "name": "markAsPersisted",
          "returns": "void"
        },
        {
          "name": "mutateVersionAction",
          "async": true,
          "params": [
            "options?: any"
          ],
          "returns": "any"
        },
        {
          "name": "previewTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "previewTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "recheckFactClaims",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "recheckFactClaimsAction",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeAsset",
          "async": true,
          "params": [
            "assetId: string",
            "relationship?: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeFact",
          "async": true,
          "params": [
            "factId: string",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeReference",
          "async": true,
          "params": [
            "targetId: string"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAudit",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAuditAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidence",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidenceAction",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "resolveGovernance",
          "async": true,
          "returns": "Promise<ResolvedContentGovernance>"
        },
        {
          "name": "restoreFromVersion",
          "async": true,
          "params": [
            "versionNumber: number"
          ],
          "returns": "any"
        },
        {
          "name": "reviewFacts",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "reviewSafety",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "runReview",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "runReviewAction",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string> | null | undefined"
          ],
          "returns": "void"
        },
        {
          "name": "setThumbnail",
          "async": true,
          "params": [
            "image: Image"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "syncFacts",
          "async": true,
          "params": [
            "factIds: string[]",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<object>"
        },
        {
          "name": "syncFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "updateFactEvidenceStatus",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateFactEvidenceStatusAction",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateMetadata",
          "params": [
            "patch: Partial<Record<string>>"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "withDatabase",
          "async": true,
          "params": [
            "db: DatabaseInterface",
            "operation: Function"
          ],
          "returns": "Promise<T>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentVersion",
      "qualifiedName": "@happyvertical/smrt-content:ContentVersion",
      "collection": "contentversions",
      "tableName": "content_versions",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        },
        {
          "name": "version",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "kind",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "manual"
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "summary",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "snapshot",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        }
      ],
      "relationships": [
        {
          "name": "contentId",
          "type": "foreignKey",
          "required": true,
          "related": "Content",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata",
        "getSnapshot",
        "getTransparency",
        "getTransparencyAction"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "ContentVersionMetadata"
        },
        {
          "name": "getSnapshot",
          "returns": "Record<string>"
        },
        {
          "name": "getTransparency",
          "returns": "any"
        },
        {
          "name": "getTransparencyAction",
          "async": true,
          "returns": "any"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "content_id",
        "version"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contentversions.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentVersion",
          "path": "/contentversions",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentversions.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentVersion",
          "path": "/contentversions/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contentversions.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentVersion",
          "path": "/contentversions",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contentversions.getTransparencyAction",
          "operation": "getTransparencyAction",
          "objectName": "@happyvertical/smrt-content:ContentVersion",
          "path": "/contentversions/getTransparencyAction",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "contentversion_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        },
        {
          "kind": "cli",
          "name": "contentversion_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        },
        {
          "kind": "cli",
          "name": "contentversion_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        },
        {
          "kind": "cli",
          "name": "contentversion_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        },
        {
          "kind": "cli",
          "name": "contentversion_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        },
        {
          "kind": "mcp",
          "name": "contentversion_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        },
        {
          "kind": "mcp",
          "name": "contentversion_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        },
        {
          "kind": "mcp",
          "name": "contentversion_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:ContentVersion"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ContentVersionCollection",
      "qualifiedName": "@happyvertical/smrt-content:ContentVersionCollection",
      "collection": "contentversions",
      "tableName": "content_versions",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "createSnapshot",
        "getLatestForContent",
        "getLatestPublishedForContent",
        "getNextVersionNumber",
        "getVersion",
        "listForContent",
        "restoreIntoContent"
      ],
      "methodSignatures": [
        {
          "name": "createSnapshot",
          "async": true,
          "params": [
            "content: Content",
            "options?: CreateContentVersionOptions"
          ],
          "returns": "Promise<ContentVersion>"
        },
        {
          "name": "getLatestForContent",
          "async": true,
          "params": [
            "contentId: string"
          ],
          "returns": "Promise<ContentVersion | null>"
        },
        {
          "name": "getLatestPublishedForContent",
          "async": true,
          "params": [
            "contentId: string"
          ],
          "returns": "Promise<ContentVersion | null>"
        },
        {
          "name": "getNextVersionNumber",
          "async": true,
          "params": [
            "contentId: string"
          ],
          "returns": "Promise<number>"
        },
        {
          "name": "getVersion",
          "async": true,
          "params": [
            "contentId: string",
            "versionNumber: number"
          ],
          "returns": "Promise<ContentVersion | null>"
        },
        {
          "name": "listForContent",
          "async": true,
          "params": [
            "contentId: string"
          ],
          "returns": "Promise<ContentVersion[]>"
        },
        {
          "name": "restoreIntoContent",
          "async": true,
          "params": [
            "content: Content",
            "versionNumber: number"
          ],
          "returns": "Promise<Content>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Content",
      "qualifiedName": "@happyvertical/smrt-content:Content",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "created_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updated_at",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "type",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "variant",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "fileKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "author",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "name",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "title",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "bodyFormat",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "publish_date",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "source",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "original_url",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "language",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "tags",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "category",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "draft"
        },
        {
          "name": "state",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "active"
        },
        {
          "name": "metadata",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "relationships": [
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "addFact",
        "addReference",
        "browseFacts",
        "classifyConstraintError",
        "clearEmbeddings",
        "createVersion",
        "delete",
        "describe",
        "destroy",
        "do",
        "evaluateReviewProfile",
        "evaluateReviewProfileAction",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "generateThumbnail",
        "getAiUsageSnapshot",
        "getAncestorPaths",
        "getAssets",
        "getAvailableTools",
        "getCategorySegments",
        "getCorrections",
        "getEmbedding",
        "getFactAuditState",
        "getFactAuditStateAction",
        "getFactLinks",
        "getFacts",
        "getFactsState",
        "getFields",
        "getGovernanceState",
        "getGovernanceStateAction",
        "getId",
        "getMetadata",
        "getParentCategory",
        "getPublishedTransparency",
        "getPublishedTransparencyAction",
        "getReferenceDrift",
        "getReferenceEdges",
        "getReferences",
        "getRelated",
        "getReviewRequirements",
        "getReviews",
        "getRootCategory",
        "getSavedId",
        "getSlug",
        "getThumbnail",
        "getVersions",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isGoverned",
        "isInCategory",
        "isReadyForReviewProfile",
        "isRelatedLoaded",
        "isSaved",
        "issueCorrection",
        "issueCorrectionAction",
        "listAiUsage",
        "listCorrections",
        "listReviewProfilesAction",
        "listReviews",
        "listVersions",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadReferences",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mutateVersionAction",
        "previewTransparency",
        "previewTransparencyAction",
        "recall",
        "recallAll",
        "recheckFactClaims",
        "recheckFactClaimsAction",
        "remember",
        "removeAsset",
        "removeFact",
        "removeReference",
        "repairFactAudit",
        "repairFactAuditAction",
        "repairFactEvidence",
        "repairFactEvidenceAction",
        "requireInsertOnSave",
        "resetAiUsage",
        "resolveGovernance",
        "restoreFromVersion",
        "reviewFacts",
        "reviewSafety",
        "runReview",
        "runReviewAction",
        "save",
        "setMetadata",
        "setThumbnail",
        "summarizeAiUsage",
        "syncFacts",
        "syncFactsState",
        "toJSON",
        "toPlainObject",
        "toPublicJSON",
        "updateFactEvidenceStatus",
        "updateFactEvidenceStatusAction",
        "updateMetadata",
        "withDatabase"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "addAsset",
          "async": true,
          "params": [
            "asset: Asset",
            "relationship?: any",
            "sortOrder?: any"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "addFact",
          "async": true,
          "params": [
            "fact: Fact | string",
            "relationship?: FactContentRelationship",
            "metadata?: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "addReference",
          "async": true,
          "params": [
            "content: Content | string",
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "browseFacts",
          "async": true,
          "params": [
            "query?: any",
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "createVersion",
          "async": true,
          "params": [
            "options?: CreateContentVersionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "delete",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "name": "describe",
          "async": true,
          "params": [
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "destroy",
          "returns": "void"
        },
        {
          "name": "do",
          "async": true,
          "params": [
            "instructions: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "evaluateReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<ContentReviewProfileEvaluation>"
        },
        {
          "name": "evaluateReviewProfileAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "executeToolCall",
          "async": true,
          "params": [
            "toolCall: ToolCall"
          ],
          "returns": "Promise<ToolCallResult>"
        },
        {
          "name": "forget",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "forgetScope",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<number>"
        },
        {
          "name": "generateEmbeddings",
          "async": true,
          "params": [
            "options?: GenerateEmbeddingsOptions"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "generateThumbnail",
          "async": true,
          "params": [
            "options: ThumbnailOptions"
          ],
          "returns": "Promise<Image>"
        },
        {
          "name": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAncestorPaths",
          "returns": "string[]"
        },
        {
          "name": "getAssets",
          "async": true,
          "params": [
            "relationship?: string"
          ],
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getCategorySegments",
          "returns": "string[]"
        },
        {
          "name": "getCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFactAuditState",
          "async": true,
          "returns": "Promise<FactAuditState>"
        },
        {
          "name": "getFactAuditStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getFactLinks",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFacts",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Fact[]>"
        },
        {
          "name": "getFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getGovernanceState",
          "async": true,
          "returns": "Promise<ContentGovernanceState>"
        },
        {
          "name": "getGovernanceStateAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getParentCategory",
          "returns": "string | null"
        },
        {
          "name": "getPublishedTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getPublishedTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getReferenceDrift",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferenceEdges",
          "async": true,
          "returns": "Promise<Array<object>>"
        },
        {
          "name": "getReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getReviewRequirements",
          "async": true,
          "params": [
            "profileKey: string",
            "governance?: ResolvedContentGovernance"
          ],
          "returns": "any"
        },
        {
          "name": "getReviews",
          "async": true,
          "params": [
            "kind?: any"
          ],
          "returns": "any"
        },
        {
          "name": "getRootCategory",
          "returns": "string | null"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getThumbnail",
          "async": true,
          "returns": "Promise<Image | null>"
        },
        {
          "name": "getVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isGoverned",
          "returns": "boolean"
        },
        {
          "name": "isInCategory",
          "params": [
            "categoryPath: string",
            "includeChildren?: any"
          ],
          "returns": "boolean"
        },
        {
          "name": "isReadyForReviewProfile",
          "async": true,
          "params": [
            "profileKey: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "issueCorrection",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "issueCorrectionAction",
          "async": true,
          "params": [
            "options: IssueContentCorrectionOptions"
          ],
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "listCorrections",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviewProfilesAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listReviews",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "listVersions",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadReferences",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "loadRelatedMany",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any[]>"
        },
        {
          "name": "markAsPersisted",
          "returns": "void"
        },
        {
          "name": "mutateVersionAction",
          "async": true,
          "params": [
            "options?: any"
          ],
          "returns": "any"
        },
        {
          "name": "previewTransparency",
          "async": true,
          "returns": "any"
        },
        {
          "name": "previewTransparencyAction",
          "async": true,
          "returns": "any"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "recheckFactClaims",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "recheckFactClaimsAction",
          "async": true,
          "params": [
            "options?: FactAuditClaimRecheckOptions"
          ],
          "returns": "any"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeAsset",
          "async": true,
          "params": [
            "assetId: string",
            "relationship?: string"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeFact",
          "async": true,
          "params": [
            "factId: string",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeReference",
          "async": true,
          "params": [
            "targetId: string"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAudit",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactAuditAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidence",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "repairFactEvidenceAction",
          "async": true,
          "params": [
            "options?: FactAuditResourceRepairOptions"
          ],
          "returns": "any"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "resolveGovernance",
          "async": true,
          "returns": "Promise<ResolvedContentGovernance>"
        },
        {
          "name": "restoreFromVersion",
          "async": true,
          "params": [
            "versionNumber: number"
          ],
          "returns": "any"
        },
        {
          "name": "reviewFacts",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "reviewSafety",
          "async": true,
          "params": [
            "options?: Omit<RunContentReviewOptions, 'kind'>"
          ],
          "returns": "any"
        },
        {
          "name": "runReview",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "runReviewAction",
          "async": true,
          "params": [
            "options?: RunContentReviewOptions"
          ],
          "returns": "any"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string> | null | undefined"
          ],
          "returns": "void"
        },
        {
          "name": "setThumbnail",
          "async": true,
          "params": [
            "image: Image"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "syncFacts",
          "async": true,
          "params": [
            "factIds: string[]",
            "relationship?: FactContentRelationship"
          ],
          "returns": "Promise<object>"
        },
        {
          "name": "syncFactsState",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "updateFactEvidenceStatus",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateFactEvidenceStatusAction",
          "async": true,
          "params": [
            "options?: FactEvidenceStatusUpdateOptions"
          ],
          "returns": "any"
        },
        {
          "name": "updateMetadata",
          "params": [
            "patch: Partial<Record<string>>"
          ],
          "returns": "Record<string>"
        },
        {
          "name": "withDatabase",
          "async": true,
          "params": [
            "db: DatabaseInterface",
            "operation: Function"
          ],
          "returns": "Promise<T>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contents.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contents.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/[id]",
          "method": "DELETE"
        },
        {
          "kind": "api",
          "name": "contents.getFactsState",
          "operation": "getFactsState",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/getFactsState",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.syncFactsState",
          "operation": "syncFactsState",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/syncFactsState",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.getFactAuditStateAction",
          "operation": "getFactAuditStateAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/getFactAuditStateAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.repairFactAuditAction",
          "operation": "repairFactAuditAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/repairFactAuditAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.repairFactEvidenceAction",
          "operation": "repairFactEvidenceAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/repairFactEvidenceAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.recheckFactClaimsAction",
          "operation": "recheckFactClaimsAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/recheckFactClaimsAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.updateFactEvidenceStatusAction",
          "operation": "updateFactEvidenceStatusAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/updateFactEvidenceStatusAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.getGovernanceStateAction",
          "operation": "getGovernanceStateAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/getGovernanceStateAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.listReviews",
          "operation": "listReviews",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/listReviews",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.runReviewAction",
          "operation": "runReviewAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/runReviewAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.listReviewProfilesAction",
          "operation": "listReviewProfilesAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/listReviewProfilesAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.evaluateReviewProfileAction",
          "operation": "evaluateReviewProfileAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/evaluateReviewProfileAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.getPublishedTransparencyAction",
          "operation": "getPublishedTransparencyAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/getPublishedTransparencyAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.previewTransparencyAction",
          "operation": "previewTransparencyAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/previewTransparencyAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.listCorrections",
          "operation": "listCorrections",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/listCorrections",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.issueCorrectionAction",
          "operation": "issueCorrectionAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/issueCorrectionAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.listVersions",
          "operation": "listVersions",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/listVersions",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.mutateVersionAction",
          "operation": "mutateVersionAction",
          "objectName": "@happyvertical/smrt-content:Content",
          "path": "/contents/mutateVersionAction",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "content_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "cli",
          "name": "content_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "cli",
          "name": "content_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "cli",
          "name": "content_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "cli",
          "name": "content_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "mcp",
          "name": "content_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "mcp",
          "name": "content_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "mcp",
          "name": "content_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-content:Content"
        },
        {
          "kind": "mcp",
          "name": "content_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-content:Content"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Contents",
      "qualifiedName": "@happyvertical/smrt-content:Contents",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-content",
      "extends": "SmrtCollection",
      "fields": [
        {
          "name": "contentDir",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "loaded",
          "type": "json",
          "required": true,
          "columnType": "JSON"
        }
      ],
      "relationships": [],
      "methods": [
        "browseFacts",
        "findByTenant",
        "findGlobal",
        "findWithGlobals",
        "generateMissingThumbnails",
        "getBySlug",
        "getDb",
        "getGovernanceDefinitionsAction",
        "initialize",
        "mirror",
        "resolveGovernanceAction",
        "syncContentDir",
        "writeContentFile"
      ],
      "methodSignatures": [
        {
          "name": "browseFacts",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "findByTenant",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Content[]>"
        },
        {
          "name": "findGlobal",
          "async": true,
          "returns": "Promise<Content[]>"
        },
        {
          "name": "findWithGlobals",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Content[]>"
        },
        {
          "name": "generateMissingThumbnails",
          "async": true,
          "params": [
            "options: GenerateMissingThumbnailsOptions"
          ],
          "returns": "Promise<object>"
        },
        {
          "name": "getBySlug",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "getDb",
          "returns": "any"
        },
        {
          "name": "getGovernanceDefinitionsAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "mirror",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "any"
        },
        {
          "name": "resolveGovernanceAction",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "any"
        },
        {
          "name": "syncContentDir",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "any"
        },
        {
          "name": "writeContentFile",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "any"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "contents.browseFacts",
          "operation": "browseFacts",
          "objectName": "@happyvertical/smrt-content:Contents",
          "path": "/contents/browseFacts",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.getBySlug",
          "operation": "getBySlug",
          "objectName": "@happyvertical/smrt-content:Contents",
          "path": "/contents/getBySlug",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.getGovernanceDefinitionsAction",
          "operation": "getGovernanceDefinitionsAction",
          "objectName": "@happyvertical/smrt-content:Contents",
          "path": "/contents/getGovernanceDefinitionsAction",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.resolveGovernanceAction",
          "operation": "resolveGovernanceAction",
          "objectName": "@happyvertical/smrt-content:Contents",
          "path": "/contents/resolveGovernanceAction",
          "method": "POST"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    }
  ],
  "surfaces": [
    {
      "kind": "api",
      "name": "contentcontributionattachments.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
      "path": "/contentcontributionattachments",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributionattachments.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
      "path": "/contentcontributionattachments/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributionattachments.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
      "path": "/contentcontributionattachments",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributionattachments.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
      "path": "/contentcontributionattachments/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentcontributionattachments.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment",
      "path": "/contentcontributionattachments/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentcontributionattachment_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "cli",
      "name": "contentcontributionattachment_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "cli",
      "name": "contentcontributionattachment_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "cli",
      "name": "contentcontributionattachment_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "cli",
      "name": "contentcontributionattachment_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionattachment_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionattachment_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionattachment_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionattachment_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionattachment_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionAttachment"
    },
    {
      "kind": "api",
      "name": "contentcontributionrevisions.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
      "path": "/contentcontributionrevisions",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributionrevisions.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
      "path": "/contentcontributionrevisions/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributionrevisions.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
      "path": "/contentcontributionrevisions",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributionrevisions.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
      "path": "/contentcontributionrevisions/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentcontributionrevisions.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision",
      "path": "/contentcontributionrevisions/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentcontributionrevision_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "cli",
      "name": "contentcontributionrevision_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "cli",
      "name": "contentcontributionrevision_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "cli",
      "name": "contentcontributionrevision_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "cli",
      "name": "contentcontributionrevision_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionrevision_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionrevision_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionrevision_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionrevision_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "mcp",
      "name": "contentcontributionrevision_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionRevision"
    },
    {
      "kind": "api",
      "name": "contentcontributiontypes.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionType",
      "path": "/contentcontributiontypes",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributiontypes.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionType",
      "path": "/contentcontributiontypes/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributiontypes.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionType",
      "path": "/contentcontributiontypes",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributiontypes.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionType",
      "path": "/contentcontributiontypes/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentcontributiontypes.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionType",
      "path": "/contentcontributiontypes/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentcontributiontype_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "cli",
      "name": "contentcontributiontype_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "cli",
      "name": "contentcontributiontype_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "cli",
      "name": "contentcontributiontype_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "cli",
      "name": "contentcontributiontype_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "mcp",
      "name": "contentcontributiontype_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "mcp",
      "name": "contentcontributiontype_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "mcp",
      "name": "contentcontributiontype_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "mcp",
      "name": "contentcontributiontype_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "mcp",
      "name": "contentcontributiontype_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributionType"
    },
    {
      "kind": "api",
      "name": "contentcontributions.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributions.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributions.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentcontributions.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/[id]",
      "method": "DELETE"
    },
    {
      "kind": "api",
      "name": "contentcontributions.appendRevisionAction",
      "operation": "appendRevisionAction",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/appendRevisionAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.requestChangesAction",
      "operation": "requestChangesAction",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/requestChangesAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.approveAction",
      "operation": "approveAction",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/approveAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.rejectAction",
      "operation": "rejectAction",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/rejectAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.withdrawAction",
      "operation": "withdrawAction",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/withdrawAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.promoteAction",
      "operation": "promoteAction",
      "objectName": "@happyvertical/smrt-content:ContentContribution",
      "path": "/contentcontributions/promoteAction",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "contentcontribution_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "cli",
      "name": "contentcontribution_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "cli",
      "name": "contentcontribution_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "cli",
      "name": "contentcontribution_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "cli",
      "name": "contentcontribution_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "mcp",
      "name": "contentcontribution_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "mcp",
      "name": "contentcontribution_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "mcp",
      "name": "contentcontribution_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "mcp",
      "name": "contentcontribution_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContribution"
    },
    {
      "kind": "api",
      "name": "contentcontributions.submitWebContribution",
      "operation": "submitWebContribution",
      "objectName": "@happyvertical/smrt-content:ContentContributions",
      "path": "/contentcontributions/submitWebContribution",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.ingestEmailContribution",
      "operation": "ingestEmailContribution",
      "objectName": "@happyvertical/smrt-content:ContentContributions",
      "path": "/contentcontributions/ingestEmailContribution",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.listForContributor",
      "operation": "listForContributor",
      "objectName": "@happyvertical/smrt-content:ContentContributions",
      "path": "/contentcontributions/listForContributor",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.listInboxAction",
      "operation": "listInboxAction",
      "objectName": "@happyvertical/smrt-content:ContentContributions",
      "path": "/contentcontributions/listInboxAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributions.getContributionTypesAction",
      "operation": "getContributionTypesAction",
      "objectName": "@happyvertical/smrt-content:ContentContributions",
      "path": "/contentcontributions/getContributionTypesAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributors.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributor",
      "path": "/contentcontributors",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributors.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributor",
      "path": "/contentcontributors/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcontributors.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributor",
      "path": "/contentcontributors",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcontributors.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributor",
      "path": "/contentcontributors/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentcontributors.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributor",
      "path": "/contentcontributors/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentcontributor_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "cli",
      "name": "contentcontributor_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "cli",
      "name": "contentcontributor_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "cli",
      "name": "contentcontributor_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "cli",
      "name": "contentcontributor_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "mcp",
      "name": "contentcontributor_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "mcp",
      "name": "contentcontributor_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "mcp",
      "name": "contentcontributor_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "mcp",
      "name": "contentcontributor_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "mcp",
      "name": "contentcontributor_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentContributor"
    },
    {
      "kind": "api",
      "name": "contentcorrections.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentCorrection",
      "path": "/contentcorrections",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcorrections.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentCorrection",
      "path": "/contentcorrections/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentcorrections.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentCorrection",
      "path": "/contentcorrections",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentcorrections.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentCorrection",
      "path": "/contentcorrections/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "contentcorrection_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "cli",
      "name": "contentcorrection_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "cli",
      "name": "contentcorrection_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "cli",
      "name": "contentcorrection_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "cli",
      "name": "contentcorrection_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "mcp",
      "name": "contentcorrection_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "mcp",
      "name": "contentcorrection_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "mcp",
      "name": "contentcorrection_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "mcp",
      "name": "contentcorrection_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentCorrection"
    },
    {
      "kind": "api",
      "name": "contentfeedsources.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource",
      "path": "/contentfeedsources",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentfeedsources.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource",
      "path": "/contentfeedsources/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentfeedsources.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource",
      "path": "/contentfeedsources",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentfeedsources.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource",
      "path": "/contentfeedsources/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentfeedsources.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource",
      "path": "/contentfeedsources/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentfeedsource_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "cli",
      "name": "contentfeedsource_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "cli",
      "name": "contentfeedsource_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "cli",
      "name": "contentfeedsource_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "cli",
      "name": "contentfeedsource_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "mcp",
      "name": "contentfeedsource_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "mcp",
      "name": "contentfeedsource_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "mcp",
      "name": "contentfeedsource_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "mcp",
      "name": "contentfeedsource_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "mcp",
      "name": "contentfeedsource_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentFeedSource"
    },
    {
      "kind": "api",
      "name": "contentgovernanceassignments.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
      "path": "/contentgovernanceassignments",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentgovernanceassignments.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
      "path": "/contentgovernanceassignments/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentgovernanceassignments.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
      "path": "/contentgovernanceassignments",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentgovernanceassignments.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
      "path": "/contentgovernanceassignments/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentgovernanceassignments.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment",
      "path": "/contentgovernanceassignments/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceassignment_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceassignment_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceassignment_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceassignment_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceassignment_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceassignment_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceassignment_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceassignment_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceassignment_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceassignment_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceAssignment"
    },
    {
      "kind": "api",
      "name": "contentgovernancepolicies.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
      "path": "/contentgovernancepolicies",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentgovernancepolicies.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
      "path": "/contentgovernancepolicies/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentgovernancepolicies.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
      "path": "/contentgovernancepolicies",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentgovernancepolicies.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
      "path": "/contentgovernancepolicies/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentgovernancepolicies.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy",
      "path": "/contentgovernancepolicies/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentgovernancepolicy_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "cli",
      "name": "contentgovernancepolicy_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "cli",
      "name": "contentgovernancepolicy_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "cli",
      "name": "contentgovernancepolicy_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "cli",
      "name": "contentgovernancepolicy_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "mcp",
      "name": "contentgovernancepolicy_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "mcp",
      "name": "contentgovernancepolicy_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "mcp",
      "name": "contentgovernancepolicy_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "mcp",
      "name": "contentgovernancepolicy_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "mcp",
      "name": "contentgovernancepolicy_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernancePolicy"
    },
    {
      "kind": "api",
      "name": "contentgovernanceprofiles.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
      "path": "/contentgovernanceprofiles",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentgovernanceprofiles.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
      "path": "/contentgovernanceprofiles/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentgovernanceprofiles.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
      "path": "/contentgovernanceprofiles",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentgovernanceprofiles.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
      "path": "/contentgovernanceprofiles/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contentgovernanceprofiles.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile",
      "path": "/contentgovernanceprofiles/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceprofile_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceprofile_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceprofile_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceprofile_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "cli",
      "name": "contentgovernanceprofile_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceprofile_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceprofile_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceprofile_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceprofile_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "mcp",
      "name": "contentgovernanceprofile_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentGovernanceProfile"
    },
    {
      "kind": "api",
      "name": "contentreviews.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentReview",
      "path": "/contentreviews",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentreviews.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentReview",
      "path": "/contentreviews/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentreviews.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentReview",
      "path": "/contentreviews",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentreviews.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentReview",
      "path": "/contentreviews/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "contentreview_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "cli",
      "name": "contentreview_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "cli",
      "name": "contentreview_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "cli",
      "name": "contentreview_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "cli",
      "name": "contentreview_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "mcp",
      "name": "contentreview_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "mcp",
      "name": "contentreview_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "mcp",
      "name": "contentreview_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "mcp",
      "name": "contentreview_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentReview"
    },
    {
      "kind": "api",
      "name": "contentversions.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentVersion",
      "path": "/contentversions",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentversions.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentVersion",
      "path": "/contentversions/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contentversions.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentVersion",
      "path": "/contentversions",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contentversions.getTransparencyAction",
      "operation": "getTransparencyAction",
      "objectName": "@happyvertical/smrt-content:ContentVersion",
      "path": "/contentversions/getTransparencyAction",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "contentversion_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "cli",
      "name": "contentversion_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "cli",
      "name": "contentversion_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "cli",
      "name": "contentversion_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "cli",
      "name": "contentversion_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "mcp",
      "name": "contentversion_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "mcp",
      "name": "contentversion_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "mcp",
      "name": "contentversion_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:ContentVersion"
    },
    {
      "kind": "api",
      "name": "contents.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contents.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/[id]",
      "method": "DELETE"
    },
    {
      "kind": "api",
      "name": "contents.getFactsState",
      "operation": "getFactsState",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/getFactsState",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.syncFactsState",
      "operation": "syncFactsState",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/syncFactsState",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.getFactAuditStateAction",
      "operation": "getFactAuditStateAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/getFactAuditStateAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.repairFactAuditAction",
      "operation": "repairFactAuditAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/repairFactAuditAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.repairFactEvidenceAction",
      "operation": "repairFactEvidenceAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/repairFactEvidenceAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.recheckFactClaimsAction",
      "operation": "recheckFactClaimsAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/recheckFactClaimsAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.updateFactEvidenceStatusAction",
      "operation": "updateFactEvidenceStatusAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/updateFactEvidenceStatusAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.getGovernanceStateAction",
      "operation": "getGovernanceStateAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/getGovernanceStateAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.listReviews",
      "operation": "listReviews",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/listReviews",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.runReviewAction",
      "operation": "runReviewAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/runReviewAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.listReviewProfilesAction",
      "operation": "listReviewProfilesAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/listReviewProfilesAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.evaluateReviewProfileAction",
      "operation": "evaluateReviewProfileAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/evaluateReviewProfileAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.getPublishedTransparencyAction",
      "operation": "getPublishedTransparencyAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/getPublishedTransparencyAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.previewTransparencyAction",
      "operation": "previewTransparencyAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/previewTransparencyAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.listCorrections",
      "operation": "listCorrections",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/listCorrections",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.issueCorrectionAction",
      "operation": "issueCorrectionAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/issueCorrectionAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.listVersions",
      "operation": "listVersions",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/listVersions",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.mutateVersionAction",
      "operation": "mutateVersionAction",
      "objectName": "@happyvertical/smrt-content:Content",
      "path": "/contents/mutateVersionAction",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "content_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "cli",
      "name": "content_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "cli",
      "name": "content_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "cli",
      "name": "content_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "cli",
      "name": "content_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "mcp",
      "name": "content_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "mcp",
      "name": "content_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "mcp",
      "name": "content_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "mcp",
      "name": "content_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-content:Content"
    },
    {
      "kind": "api",
      "name": "contents.browseFacts",
      "operation": "browseFacts",
      "objectName": "@happyvertical/smrt-content:Contents",
      "path": "/contents/browseFacts",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.getBySlug",
      "operation": "getBySlug",
      "objectName": "@happyvertical/smrt-content:Contents",
      "path": "/contents/getBySlug",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.getGovernanceDefinitionsAction",
      "operation": "getGovernanceDefinitionsAction",
      "objectName": "@happyvertical/smrt-content:Contents",
      "path": "/contents/getGovernanceDefinitionsAction",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.resolveGovernanceAction",
      "operation": "resolveGovernanceAction",
      "objectName": "@happyvertical/smrt-content:Contents",
      "path": "/contents/resolveGovernanceAction",
      "method": "POST"
    }
  ],
  "prompts": [
    {
      "filePath": "src/content-chat-prompts.ts"
    },
    {
      "filePath": "src/content-prompts.ts"
    }
  ],
  "relationshipsV2": {
    "foreignKeyFields": 14,
    "crossPackageRefFields": 11,
    "junctionCollections": 2,
    "hierarchicalObjects": 0,
    "polymorphicAssociations": 0,
    "uuidColumns": 79
  },
  "agentDoc": "# @happyvertical/smrt-content\n\nSTI content management with governance workflows, contribution intake, AI reviews, fact-checking, corrections, versioning, transparency reports, and thumbnail generation.\n\n## Models\n\n- **Content** (STI base): `type`, `variant` (generator:domain:specific format), `status` (published/draft/review/archived/deleted), `state`, `category` (hierarchical path with `/` separator), `metadata` JSON, `tags` array, `thumbnailAssetId`\n- **Article**, **ContentDocument**, **Mirror**: STI subclasses — all share `contents` table via `_meta_type`\n- **ContentReview**: AI review result tied to a governance policy. Fields: `contentId`, `policyKey`, `kind`, `status` (accepted/flagged/rejected), `findings`, `fingerprint`, `metadata`\n- **ContentCorrection**: Post-publication change record. Fields: `contentId`, `type` (correction/retraction/update/clarification), `summary`, `note`, `status`, `metadata`\n- **ContentVersion**: Content snapshot. Fields: `contentId`, `kind` (manual/draft/review/publication/correction/auto-generated), `versionNumber`, `summary`, `metadata` (includes `transparency` for publication versions)\n- **ContentReference**: Junction model for content-to-content links (`content_references` table). Nullable `targetVersion` pins a citation to a specific `ContentVersion.version` for drift detection.\n- **ContentGovernancePolicy**: Persisted review policy (key, label, kind, instructions)\n- **ContentGovernanceProfile**: Persisted review profile (key, label, requirements array)\n- **ContentGovernanceAssignment**: Governs content type/variant → profile mapping, feature flags\n- **ContentContribution**: Held inbound submission with status lifecycle (submitted → approved/rejected/withdrawn → promoted)\n- **ContentContributor**: Contributor profile resolved by email, with trust level (standard/trusted/blocked)\n- **ContentContributionType**: Configures intake channels, rules, and promotion mapping\n- **ContentContributionRevision**: Revision history for held submissions\n- **ContentContributionAttachment**: Held file metadata; becomes an `Asset` on promotion\n\n## Contents Collection\n\n| Method | Purpose |\n|--------|---------| \n| `mirror({ url })` | Downloads URL content, extracts text, creates `type: 'mirror'`. Idempotent. |\n| `syncContentDir({ contentDir })` | Batch exports articles as markdown with YAML frontmatter |\n| `generateMissingThumbnails(options)` | Bulk thumbnail generation for content missing `thumbnailAssetId` |\n| `findWithGlobals(tenantId)` | Returns tenant-specific + global (tenantId=null) content |\n| `getOrUpsert({ slug, context })` | Upsert by slug+context combination |\n| `browseFacts()` | Browse fact catalog linked to content |\n| `getGovernanceDefinitionsAction()` | Get all governance policy/profile/assignment definitions |\n| `resolveGovernanceAction({ type, variant })` | Resolve effective governance for a content type |\n\n## Content Instance Methods\n\n| Method | Purpose |\n|--------|---------|\n| `resolveGovernance()` | Resolve effective governance config for this content |\n| `runReviewAction(options)` | Run AI review against a policy; returns `ContentReview` |\n| `listReviews()` | List all reviews for this content |\n| `listReviewProfilesAction()` | Get readiness for all profiles |\n| `evaluateReviewProfile(key)` | Evaluate one profile's requirements |\n| `issueCorrectionAction(options)` | Issue a post-publication correction |\n| `listCorrections()` | List corrections for this content |\n| `listVersions()` | List version history |\n| `mutateVersionAction(options)` | Create a version snapshot |\n| `getPublishedTransparencyAction()` | Get frozen transparency from latest publication version |\n| `previewTransparencyAction()` | Preview live transparency state |\n| `addFact(factId, relationship)` | Link a fact (supports/contradicts/referenced_in) |\n| `getFacts(options)` | Get linked facts |\n| `getFactLinks()` | Get fact-content link records |\n| `getFactsState()` / `syncFactsState(options)` | API-level facts get/sync |\n| `addAsset(asset, relationship, sortOrder)` | Add asset association |\n| `setThumbnail(image)` | Convenience: adds asset + updates `thumbnailAssetId` |\n| `addReference(content, options?)` | Link to another content; `options.targetVersion` pins citation-time `ContentVersion.version` |\n| `getReferences()` | Get content references |\n| `getReferenceDrift()` | Per-edge `{ citedVersion, currentVersion, isDrifted }` for drift detection |\n\n## Governance Workflow\n\n1. `configureContentGovernance({ policies, profiles, assignments })` — static config\n2. Or persist `ContentGovernancePolicy/Profile/Assignment` objects — DB overrides static\n3. Effective config: DB layer merges over static defaults\n4. `content.resolveGovernance()` → `ResolvedContentGovernance` with `isGoverned`, `reviewPolicies`, profile keys, feature flags\n5. `content.runReviewAction()` creates a `ContentReview` with fingerprint for staleness detection\n6. `content.evaluateReviewProfile(key)` checks all requirements\n7. `content.save()` auto-validates publish readiness when `enforcePublishReadiness` is true\n8. Publication auto-creates a `ContentVersion` with frozen transparency data\n\n## Thumbnail Generation\n\nThree strategies via ThumbnailGenerator:\n- **headline-card**: title on branded background (via `@happyvertical/images`)\n- **static-map**: requires `metadata.latitude`/`longitude` (via `@happyvertical/geo`)\n- **ai-generate**: AI image generation (dynamic import of `@happyvertical/ai`)\n\n## Svelte Components\n\n### Content Management\n`ContentList`, `ContentEditor`, `GovernedContentEditor`, `ContentAgentChat`, `ContentTitleField`, `ContentStatusFields`, `ContentMetadataFields`, `ContentReferencesPanel`, `ContentImageBrowser`, `ContentReviewStatusTray`, `ArticleCard`, `ArticleList`, `ImageThumbnail`, `Markdown`\n\n### Governance\n`ContentGovernanceManager`, `ContentGovernancePanel`, `ContentGovernancePolicyEditor`, `ContentGovernanceProfileEditor`, `ContentGovernanceAssignmentEditor`, `ContentTransparencyReport`\n\n### Contributions\n`ContentContributionForm`, `ContentContributionInbox`, `ContentContributionPortal`, `ContentContributionTypeManager`, `ContentContributorManager`\n\n## Dev Server\n\n`npm run dev` starts SvelteKit at `localhost:5173` with 4 pages:\n\n- `/` — Content catalog (CRUD, search, filters, card/list views)\n- `/governance` — Policy/profile/assignment management\n- `/contributions` — Inbox, submit form, contributor/type management\n- `/api-explorer` — Browse 69 endpoints with try-it-live for GET\n\nOn startup, `hooks.server.ts` bootstraps schemas for all 13 local classes,\nloads cross-package manifests, and seeds 3 sample content items.\n\n## Chat Integration\n\nContent `GET/POST /api/v1/contents/{id}/chat` endpoint creates\nchat sessions via `@happyvertical/smrt-chat`. Gracefully handles\nmissing chat tables (returns `session: null` with notice).\n`ContentAgentChat` Svelte component provides the UI.\n\nFor global assistant shells, `ContentEditor` and `GovernedContentEditor`\nsupport `onAssistantContextChange`. The callback receives a serializable\n`ContentEditorAssistantContext` plus local editor actions, and still fires when\n`hideChat={true}`. `ContentAgentChat` can be mounted outside the editor with an\n`assistantContext` prop. Server-side consumers can reuse the exported\n`getOrCreateContentEditorChatSession`, `createContentEditorChatThread`,\n`listContentEditorChatThreadMessages`, and\n`sendContentEditorChatThreadMessage` helpers for app-specific tenancy/auth/AI\nroute wiring.\n\nThese handlers go exclusively through the tenant-bound `ChatService` facade\n(S5 #1392) — `getAgentSession`/`findActiveAgentSessions`/`getThread`/\n`listRoomThreads`/`getThreadMessages` for reads and `startThread`/`sendMessage`/\n`sendAgentReply` (internal agent-runtime subpath) for writes. They never reach\ninto the now-`#private` chat collections, so cross-tenant chat state can no\nlonger be selected by raw id before authorization.\n\nThe content-editor session is created with a content-scoped `sessionKey`\n(`contentChatSessionKey(contentId)` → `content:<id>`, S5 #1392). Without it,\n`createAgentSession` reuses ANY active `content_editor` session for the same\nprofile/tenant, so a request about a new content id would reuse — and the\nhandler would rewrite — a session created for a different content and return the\nother content's room/threads. Keying on the content id makes each content get a\ndistinct session/room.\n\n## Relationship Models\n\n- **ContentReference**: SMRT junction model backing `content_references` for content-to-content links\n- **ContentAsset**: dedicated SMRT junction model backing `content_assets` for content-owned asset links\n\n```typescript\nawait content.addAsset(image, 'thumbnail', 0);  // relationship, sortOrder\nawait content.getAssets('attachment');\nawait content.setThumbnail(image);  // convenience: adds asset + updates thumbnailAssetId\nawait content.addReference(otherContent);                            // unpinned\nawait content.addReference(otherContent, { targetVersion: 2 });      // pinned to v2\nawait content.getReferences();\nawait content.getReferenceDrift();  // → [{ targetId, citedVersion, currentVersion, isDrifted }, ...]\n```\n\n## API Contracts\n\n`Content` implements `AssetAssociable` and `MetadataAccessor` (issue #1162). Consumers can type their parameters as `Content` (or the interfaces directly) and rely on the methods existing without `typeof === 'function'` defensive checks:\n\n```typescript\nimport type { AssetAssociable, MetadataAccessor } from '@happyvertical/smrt-content';\n\nasync function attachThumbnail(doc: AssetAssociable, asset: Asset) {\n  await doc.addAsset(asset, 'thumbnail', 0); // contract guaranteed\n}\n\nfunction bumpRevision(doc: MetadataAccessor) {\n  const meta = doc.getMetadata();\n  doc.updateMetadata({ revision: (meta.revision ?? 0) + 1 });\n}\n```\n\n## Category Navigation\n\n`getCategorySegments()`, `getParentCategory()`, `getRootCategory()`, `getAncestorPaths()`, `isInCategory(path, includeChildren?)`\n\n## Prompt Registry\n\nContent prompts are registered with `@happyvertical/smrt-prompts` so tenants can override template/profile/model/params at runtime:\n\n```typescript\nimport {\n  smrtContentReviewPrompt,             // key: 'smrtContent.review'\n  smrtContentApplyCorrectionPrompt,    // key: 'smrtContent.applyCorrection'\n  smrtContentThumbnailAIGeneratePrompt, // key: 'smrtContent.thumbnail.aiGenerate'\n} from '@happyvertical/smrt-content';\n```\n\n`smrtContent.thumbnail.aiGenerate` powers the AI image-generation prompt used by `ThumbnailGenerator` (strategy `'ai-generate'`). Variables substituted into the template: `style`, `title`, `styleHint`, `descriptionClause`. Internal foreign-key fields (`id`, `tenantId`) and the freeform `metadata` blob are intentionally excluded — `metadata` may carry tenant-private configuration or coordinates unrelated to the visual prompt.\n\n## Gotchas\n\n- **STI discriminator**: qualified names like `@happyvertical/smrt-content:Article`\n- **Optional tenancy**: `@TenantScoped({ mode: 'optional' })` — null tenantId = global content\n- **Metadata is primary extension pattern**: use JSON `metadata` field, not additional class fields\n- **Static map coordinates**: uses unary `+` for strict parsing (rejects \"45invalid\" unlike parseFloat)\n- **Review fingerprints**: reviews track content state at review time; stale reviews are detected by fingerprint mismatch\n- **Publish readiness enforcement**: `save()` throws `ValidationError` if blocking requirements aren't met when setting status to `'published'`\n- **Transparency snapshots**: published transparency is frozen into `ContentVersion.metadata.transparency` — use published for public display, preview for editors\n- **Reference pinning**: `ContentReference` is keyed on `(source_id, target_id)`; `targetVersion` is an attribute of the edge, not part of identity. Re-calling `addReference(target, { targetVersion })` updates the pin in place. Unpinned references (`targetVersion: null`) report `isDrifted: false` regardless of how stale the target is — pin them only when you want drift to be detectable.\n- **Generated API routes are not tracked**: everything the vite plugin emits under `src/routes/api/v1` is build output, listed in the bounded `.gitignore` block and regenerated on `npm run dev`. The handwritten handlers beside them (`contents/[id]/chat/**`, `images/**`) stay tracked and linted. Do not commit generated routes — they are not Biome-formatted, so tracking them turns the Lint job red (#2198)\n- **`pnpm typecheck` regenerates package-owned routes safely**: Svelte's analysis may load dependent package Vite configs, but those configs anchor their root to their own package. Content's generated API routes therefore remain under `src/routes/api/v1` and the bounded `.gitignore` block stays stable (#2199).\n- **Tests import generated routes and that is fine**: `contents-api.test.ts` imports `contents/+server.ts` and `contents/[id]/+server.ts` to exercise the generated CRUD handlers against a real SQLite database. The `test` script runs `svelte-kit sync` first, which regenerates the whole route tree, so those files exist by the time Vitest loads — no committed copy needed. Run `pnpm test`, never bare `vitest`, or the imports fail to resolve\n- **`generate:test` exists for the callers that bypass `test`**: `scripts/check-coverage.mjs` runs bare `vitest --coverage`, so without a `generate:test` hook the route imports above fail and the Coverage Gate reports `no coverage produced` rather than a real percentage. It is `cache: false` in `packages/content/turbo.json` — the root task's `outputs` describe core's manifest, so a turbo cache hit would restore nothing and silently skip `svelte-kit sync`\n- **Chat tables**: chat endpoint requires `@happyvertical/smrt-chat` tables; dev server handles missing tables gracefully\n- **Dev server bootstraps all classes**: `hooks.server.ts` generates schemas for all 13 local `@smrt()` classes plus cross-package manifests\n"
}