{
  "schemaVersion": 1,
  "sensitiveFieldsExcluded": true,
  "generatedAt": "1970-01-01T00:00:00.000Z",
  "packageName": "@happyvertical/smrt-video",
  "packageVersion": "0.42.7",
  "sourceManifestPath": "dist/manifest.json",
  "agentDocPath": "AGENTS.md",
  "sourceHashes": {
    "manifest": "8db7aff2dc873f125802d50293317ae29a5dd6d824d3d40cef684b52570a0f67",
    "packageJson": "c6ee4167bca8002fc737326292cac83cd132b3cdb4bc4b37bf164c5262617cd7",
    "agents": "01c6489f21d949868550deecb68d3a1e264b9dee396ef437330aa3eb81c6a0c9"
  },
  "exports": [
    ".",
    "./manifest",
    "./manifest.json"
  ],
  "dependencies": {
    "@happyvertical/logger": "catalog:",
    "@happyvertical/smrt-assets": "workspace:*",
    "@happyvertical/smrt-config": "workspace:*",
    "@happyvertical/smrt-content": "workspace:*",
    "@happyvertical/smrt-core": "workspace:*",
    "@happyvertical/smrt-profiles": "workspace:*",
    "@happyvertical/smrt-tenancy": "workspace:*",
    "@happyvertical/smrt-voice": "workspace:*",
    "@happyvertical/utils": "catalog:",
    "@happyvertical/smrt-vitest": "workspace:*",
    "@happyvertical/sql": "catalog:",
    "@types/node": "24.13.2",
    "typescript": "5.9.3",
    "vite": "8.1.4",
    "vitest": "4.1.10",
    "svelte": "^5.56.4"
  },
  "smrtDependencies": [
    "@happyvertical/smrt-assets",
    "@happyvertical/smrt-config",
    "@happyvertical/smrt-content",
    "@happyvertical/smrt-core",
    "@happyvertical/smrt-profiles",
    "@happyvertical/smrt-tenancy",
    "@happyvertical/smrt-vitest",
    "@happyvertical/smrt-voice"
  ],
  "sdkDependencies": [
    "@happyvertical/logger",
    "@happyvertical/sql",
    "@happyvertical/utils"
  ],
  "tags": [],
  "risks": [],
  "objects": [
    {
      "name": "CharacterAsset",
      "qualifiedName": "@happyvertical/smrt-video:CharacterAsset",
      "collection": "assets",
      "tableName": "assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "Asset",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceUri",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "mimeType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "version",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "typeSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "statusSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalRefs",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "characterId",
          "type": "foreignKey",
          "required": false,
          "related": "Character",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "seed-image"
        }
      ],
      "relationships": [
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "characterId",
          "type": "foreignKey",
          "required": false,
          "related": "Character",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "associateWith",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssociations",
        "getAvailableTools",
        "getBySlug",
        "getDerivatives",
        "getEmbedding",
        "getExternalRef",
        "getExternalRefs",
        "getFields",
        "getId",
        "getMetadata",
        "getRelated",
        "getSavedId",
        "getSlug",
        "getSource",
        "getStatus",
        "getTags",
        "getType",
        "hasStaleEmbeddings",
        "hasTag",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mergeMetadata",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "setExternalRef",
        "setMetadata",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "associateWith",
          "async": true,
          "params": [
            "metaType: string",
            "metaId: string",
            "role?: any"
          ],
          "returns": "Promise<AssetAssociation>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssociations",
          "async": true,
          "returns": "Promise<AssetAssociation[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getBySlug",
          "async": true,
          "static": true,
          "params": [
            "_slug: string"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getDerivatives",
          "async": true,
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getExternalRef",
          "params": [
            "provider: string"
          ],
          "returns": "AssetExternalReference | null"
        },
        {
          "name": "getExternalRefs",
          "returns": "Record<string, AssetExternalReference>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSource",
          "async": true,
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getStatus",
          "async": true,
          "returns": "Promise<AssetStatus | null>"
        },
        {
          "name": "getTags",
          "async": true,
          "returns": "Promise<Tag[]>"
        },
        {
          "name": "getType",
          "async": true,
          "returns": "Promise<AssetType | null>"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "hasTag",
          "async": true,
          "params": [
            "tagSlug: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "mergeMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setExternalRef",
          "params": [
            "provider: string",
            "reference: any"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "assets.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:CharacterAsset",
          "path": "/assets",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:CharacterAsset",
          "path": "/assets/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:CharacterAsset",
          "path": "/assets",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "assets.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:CharacterAsset",
          "path": "/assets/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "assets.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:CharacterAsset",
          "path": "/assets/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "characterasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:CharacterAsset"
        },
        {
          "kind": "cli",
          "name": "characterasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:CharacterAsset"
        },
        {
          "kind": "cli",
          "name": "characterasset_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:CharacterAsset"
        },
        {
          "kind": "cli",
          "name": "characterasset_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:CharacterAsset"
        },
        {
          "kind": "cli",
          "name": "characterasset_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:CharacterAsset"
        },
        {
          "kind": "mcp",
          "name": "characterasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:CharacterAsset"
        },
        {
          "kind": "mcp",
          "name": "characterasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:CharacterAsset"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "CharacterOwnedAssetCollection",
      "qualifiedName": "@happyvertical/smrt-video:CharacterOwnedAssetCollection",
      "collection": "characterownedassets",
      "tableName": "character_assets",
      "packageName": "@happyvertical/smrt-video",
      "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": "CharacterOwnedAsset",
      "qualifiedName": "@happyvertical/smrt-video:CharacterOwnedAsset",
      "collection": "characterownedassets",
      "tableName": "character_assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "characterId",
          "type": "foreignKey",
          "required": true,
          "related": "Character",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": "seed-image"
        },
        {
          "name": "sortOrder",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "characterId",
          "type": "foreignKey",
          "required": true,
          "related": "Character",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "character_id",
        "asset_id",
        "role"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Character",
      "qualifiedName": "@happyvertical/smrt-video:Character",
      "collection": "characters",
      "tableName": "characters",
      "packageName": "@happyvertical/smrt-video",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "imageAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "baseMotionAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "voiceProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-voice:VoiceProfile",
          "columnType": "UUID"
        },
        {
          "name": "brandingKit",
          "type": "json",
          "required": false,
          "columnType": "JSON"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "pending"
        },
        {
          "name": "performerId",
          "type": "foreignKey",
          "required": false,
          "related": "Performer",
          "columnType": "UUID"
        },
        {
          "name": "defaultSceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "sceneConfigs",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "relationships": [
        {
          "name": "imageAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "baseMotionAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "voiceProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-voice:VoiceProfile",
          "columnType": "UUID"
        },
        {
          "name": "performerId",
          "type": "foreignKey",
          "required": false,
          "related": "Performer",
          "columnType": "UUID"
        },
        {
          "name": "defaultSceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssetByRole",
        "getAssets",
        "getAvailableTools",
        "getEmbedding",
        "getFields",
        "getId",
        "getRelated",
        "getSavedId",
        "getSlug",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "recall",
        "recallAll",
        "remember",
        "removeAsset",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "addAsset",
          "async": true,
          "params": [
            "asset: Asset",
            "role?: CharacterAssetRole",
            "sortOrder?: any"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssetByRole",
          "async": true,
          "params": [
            "role: CharacterAssetRole"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getAssets",
          "async": true,
          "params": [
            "role?: CharacterAssetRole"
          ],
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "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": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeAsset",
          "async": true,
          "params": [
            "assetId: string",
            "role?: CharacterAssetRole"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "characters.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Character",
          "path": "/characters",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "characters.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Character",
          "path": "/characters/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "characters.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:Character",
          "path": "/characters",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "characters.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:Character",
          "path": "/characters/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "characters.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:Character",
          "path": "/characters/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "character_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Character"
        },
        {
          "kind": "cli",
          "name": "character_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Character"
        },
        {
          "kind": "cli",
          "name": "character_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:Character"
        },
        {
          "kind": "cli",
          "name": "character_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:Character"
        },
        {
          "kind": "cli",
          "name": "character_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:Character"
        },
        {
          "kind": "mcp",
          "name": "character_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Character"
        },
        {
          "kind": "mcp",
          "name": "character_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Character"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "CharacterCollection",
      "qualifiedName": "@happyvertical/smrt-video:CharacterCollection",
      "collection": "characters",
      "tableName": "character_collections",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findByPerformer",
        "findByTenant",
        "findGlobal",
        "findReady"
      ],
      "methodSignatures": [
        {
          "name": "findByPerformer",
          "async": true,
          "params": [
            "performerId: string"
          ],
          "returns": "Promise<Character[]>"
        },
        {
          "name": "findByTenant",
          "async": true,
          "params": [
            "tenantId: string"
          ],
          "returns": "Promise<Character[]>"
        },
        {
          "name": "findGlobal",
          "async": true,
          "returns": "Promise<Character[]>"
        },
        {
          "name": "findReady",
          "async": true,
          "returns": "Promise<Character[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "CompositeJob",
      "qualifiedName": "@happyvertical/smrt-video:CompositeJob",
      "collection": "compositejobs",
      "tableName": "composite_jobs",
      "packageName": "@happyvertical/smrt-video",
      "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": "characterVideoAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "viewpointId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "anchorPointId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "scale",
          "type": "decimal",
          "required": false,
          "columnType": "REAL",
          "default": 1
        },
        {
          "name": "position",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "pending"
        },
        {
          "name": "progress",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "outputAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "errorMessage",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "characterVideoAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "outputAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAvailableTools",
        "getEmbedding",
        "getFields",
        "getId",
        "getRelated",
        "getSavedId",
        "getSlug",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "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": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "compositejobs.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:CompositeJob",
          "path": "/compositejobs",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "compositejobs.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:CompositeJob",
          "path": "/compositejobs/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "compositejobs.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:CompositeJob",
          "path": "/compositejobs",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "compositejobs.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:CompositeJob",
          "path": "/compositejobs/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "compositejob_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:CompositeJob"
        },
        {
          "kind": "cli",
          "name": "compositejob_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:CompositeJob"
        },
        {
          "kind": "cli",
          "name": "compositejob_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:CompositeJob"
        },
        {
          "kind": "cli",
          "name": "compositejob_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:CompositeJob"
        },
        {
          "kind": "cli",
          "name": "compositejob_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:CompositeJob"
        },
        {
          "kind": "mcp",
          "name": "compositejob_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:CompositeJob"
        },
        {
          "kind": "mcp",
          "name": "compositejob_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:CompositeJob"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "PerformerAsset",
      "qualifiedName": "@happyvertical/smrt-video:PerformerAsset",
      "collection": "assets",
      "tableName": "assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "Asset",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceUri",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "mimeType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "version",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "typeSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "statusSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalRefs",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "performerId",
          "type": "foreignKey",
          "required": false,
          "related": "Performer",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "reference"
        }
      ],
      "relationships": [
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "performerId",
          "type": "foreignKey",
          "required": false,
          "related": "Performer",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "associateWith",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssociations",
        "getAvailableTools",
        "getBySlug",
        "getDerivatives",
        "getEmbedding",
        "getExternalRef",
        "getExternalRefs",
        "getFields",
        "getId",
        "getMetadata",
        "getRelated",
        "getSavedId",
        "getSlug",
        "getSource",
        "getStatus",
        "getTags",
        "getType",
        "hasStaleEmbeddings",
        "hasTag",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mergeMetadata",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "setExternalRef",
        "setMetadata",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "associateWith",
          "async": true,
          "params": [
            "metaType: string",
            "metaId: string",
            "role?: any"
          ],
          "returns": "Promise<AssetAssociation>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssociations",
          "async": true,
          "returns": "Promise<AssetAssociation[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getBySlug",
          "async": true,
          "static": true,
          "params": [
            "_slug: string"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getDerivatives",
          "async": true,
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getExternalRef",
          "params": [
            "provider: string"
          ],
          "returns": "AssetExternalReference | null"
        },
        {
          "name": "getExternalRefs",
          "returns": "Record<string, AssetExternalReference>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSource",
          "async": true,
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getStatus",
          "async": true,
          "returns": "Promise<AssetStatus | null>"
        },
        {
          "name": "getTags",
          "async": true,
          "returns": "Promise<Tag[]>"
        },
        {
          "name": "getType",
          "async": true,
          "returns": "Promise<AssetType | null>"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "hasTag",
          "async": true,
          "params": [
            "tagSlug: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "mergeMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setExternalRef",
          "params": [
            "provider: string",
            "reference: any"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "assets.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:PerformerAsset",
          "path": "/assets",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:PerformerAsset",
          "path": "/assets/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:PerformerAsset",
          "path": "/assets",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "assets.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:PerformerAsset",
          "path": "/assets/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "assets.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:PerformerAsset",
          "path": "/assets/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "performerasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:PerformerAsset"
        },
        {
          "kind": "cli",
          "name": "performerasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:PerformerAsset"
        },
        {
          "kind": "cli",
          "name": "performerasset_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:PerformerAsset"
        },
        {
          "kind": "cli",
          "name": "performerasset_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:PerformerAsset"
        },
        {
          "kind": "cli",
          "name": "performerasset_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:PerformerAsset"
        },
        {
          "kind": "mcp",
          "name": "performerasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:PerformerAsset"
        },
        {
          "kind": "mcp",
          "name": "performerasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:PerformerAsset"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "PerformerOwnedAssetCollection",
      "qualifiedName": "@happyvertical/smrt-video:PerformerOwnedAssetCollection",
      "collection": "performerownedassets",
      "tableName": "performer_assets",
      "packageName": "@happyvertical/smrt-video",
      "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": "PerformerOwnedAsset",
      "qualifiedName": "@happyvertical/smrt-video:PerformerOwnedAsset",
      "collection": "performerownedassets",
      "tableName": "performer_assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "performerId",
          "type": "foreignKey",
          "required": true,
          "related": "Performer",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": "reference"
        },
        {
          "name": "sortOrder",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "performerId",
          "type": "foreignKey",
          "required": true,
          "related": "Performer",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "performer_id",
        "asset_id",
        "role"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Performer",
      "qualifiedName": "@happyvertical/smrt-video:Performer",
      "collection": "performers",
      "tableName": "performers",
      "packageName": "@happyvertical/smrt-video",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "dna",
          "type": "json",
          "required": false,
          "columnType": "JSON"
        },
        {
          "name": "referenceAssetIds",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "seedImageAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "voiceProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-voice:VoiceProfile",
          "columnType": "UUID"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "pending"
        },
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "relationships": [
        {
          "name": "seedImageAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "voiceProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-voice:VoiceProfile",
          "columnType": "UUID"
        },
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssetByRole",
        "getAssets",
        "getAvailableTools",
        "getEmbedding",
        "getFields",
        "getId",
        "getRelated",
        "getSavedId",
        "getSlug",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "recall",
        "recallAll",
        "remember",
        "removeAsset",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "addAsset",
          "async": true,
          "params": [
            "asset: Asset",
            "role?: PerformerAssetRole",
            "sortOrder?: any"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssetByRole",
          "async": true,
          "params": [
            "role: PerformerAssetRole"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getAssets",
          "async": true,
          "params": [
            "role?: PerformerAssetRole"
          ],
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "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": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeAsset",
          "async": true,
          "params": [
            "assetId: string",
            "role?: PerformerAssetRole"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "performers.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Performer",
          "path": "/performers",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "performers.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Performer",
          "path": "/performers/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "performers.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:Performer",
          "path": "/performers",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "performers.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:Performer",
          "path": "/performers/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "performers.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:Performer",
          "path": "/performers/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "performer_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Performer"
        },
        {
          "kind": "cli",
          "name": "performer_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Performer"
        },
        {
          "kind": "cli",
          "name": "performer_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:Performer"
        },
        {
          "kind": "cli",
          "name": "performer_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:Performer"
        },
        {
          "kind": "cli",
          "name": "performer_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:Performer"
        },
        {
          "kind": "mcp",
          "name": "performer_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Performer"
        },
        {
          "kind": "mcp",
          "name": "performer_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Performer"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SceneAsset",
      "qualifiedName": "@happyvertical/smrt-video:SceneAsset",
      "collection": "assets",
      "tableName": "assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "Asset",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceUri",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "mimeType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "version",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "typeSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "statusSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalRefs",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "source"
        }
      ],
      "relationships": [
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "associateWith",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssociations",
        "getAvailableTools",
        "getBySlug",
        "getDerivatives",
        "getEmbedding",
        "getExternalRef",
        "getExternalRefs",
        "getFields",
        "getId",
        "getMetadata",
        "getRelated",
        "getSavedId",
        "getSlug",
        "getSource",
        "getStatus",
        "getTags",
        "getType",
        "hasStaleEmbeddings",
        "hasTag",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mergeMetadata",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "setExternalRef",
        "setMetadata",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "associateWith",
          "async": true,
          "params": [
            "metaType: string",
            "metaId: string",
            "role?: any"
          ],
          "returns": "Promise<AssetAssociation>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssociations",
          "async": true,
          "returns": "Promise<AssetAssociation[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getBySlug",
          "async": true,
          "static": true,
          "params": [
            "_slug: string"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getDerivatives",
          "async": true,
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getExternalRef",
          "params": [
            "provider: string"
          ],
          "returns": "AssetExternalReference | null"
        },
        {
          "name": "getExternalRefs",
          "returns": "Record<string, AssetExternalReference>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSource",
          "async": true,
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getStatus",
          "async": true,
          "returns": "Promise<AssetStatus | null>"
        },
        {
          "name": "getTags",
          "async": true,
          "returns": "Promise<Tag[]>"
        },
        {
          "name": "getType",
          "async": true,
          "returns": "Promise<AssetType | null>"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "hasTag",
          "async": true,
          "params": [
            "tagSlug: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "mergeMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setExternalRef",
          "params": [
            "provider: string",
            "reference: any"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "assets.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:SceneAsset",
          "path": "/assets",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:SceneAsset",
          "path": "/assets/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:SceneAsset",
          "path": "/assets",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "assets.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:SceneAsset",
          "path": "/assets/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "assets.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:SceneAsset",
          "path": "/assets/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "sceneasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:SceneAsset"
        },
        {
          "kind": "cli",
          "name": "sceneasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:SceneAsset"
        },
        {
          "kind": "cli",
          "name": "sceneasset_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:SceneAsset"
        },
        {
          "kind": "cli",
          "name": "sceneasset_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:SceneAsset"
        },
        {
          "kind": "cli",
          "name": "sceneasset_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:SceneAsset"
        },
        {
          "kind": "mcp",
          "name": "sceneasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:SceneAsset"
        },
        {
          "kind": "mcp",
          "name": "sceneasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:SceneAsset"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SceneOwnedAssetCollection",
      "qualifiedName": "@happyvertical/smrt-video:SceneOwnedAssetCollection",
      "collection": "sceneownedassets",
      "tableName": "scene_assets",
      "packageName": "@happyvertical/smrt-video",
      "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": "SceneOwnedAsset",
      "qualifiedName": "@happyvertical/smrt-video:SceneOwnedAsset",
      "collection": "sceneownedassets",
      "tableName": "scene_assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": true,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": true,
          "columnType": "TEXT",
          "default": "source"
        },
        {
          "name": "sortOrder",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": true,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "assetId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "scene_id",
        "asset_id",
        "role"
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "Scene",
      "qualifiedName": "@happyvertical/smrt-video:Scene",
      "collection": "scenes",
      "tableName": "scenes",
      "packageName": "@happyvertical/smrt-video",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "image"
        },
        {
          "name": "projection",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "viewpoints",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "lightingProfile",
          "type": "json",
          "required": false,
          "columnType": "JSON"
        },
        {
          "name": "location",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": {}
        },
        {
          "name": "anchorPoints",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "pending"
        }
      ],
      "relationships": [
        {
          "name": "sourceAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssetByRole",
        "getAssets",
        "getAvailableTools",
        "getEmbedding",
        "getFields",
        "getId",
        "getRelated",
        "getSavedId",
        "getSlug",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "recall",
        "recallAll",
        "remember",
        "removeAsset",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "addAsset",
          "async": true,
          "params": [
            "asset: Asset",
            "role?: SceneAssetRole",
            "sortOrder?: any"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssetByRole",
          "async": true,
          "params": [
            "role: SceneAssetRole"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getAssets",
          "async": true,
          "params": [
            "role?: SceneAssetRole"
          ],
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "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": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "removeAsset",
          "async": true,
          "params": [
            "assetId: string",
            "role?: SceneAssetRole"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "scenes.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Scene",
          "path": "/scenes",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "scenes.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Scene",
          "path": "/scenes/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "scenes.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:Scene",
          "path": "/scenes",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "scenes.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:Scene",
          "path": "/scenes/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "scenes.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:Scene",
          "path": "/scenes/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "scene_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Scene"
        },
        {
          "kind": "cli",
          "name": "scene_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Scene"
        },
        {
          "kind": "cli",
          "name": "scene_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:Scene"
        },
        {
          "kind": "cli",
          "name": "scene_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:Scene"
        },
        {
          "kind": "cli",
          "name": "scene_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:Scene"
        },
        {
          "kind": "mcp",
          "name": "scene_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:Scene"
        },
        {
          "kind": "mcp",
          "name": "scene_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:Scene"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoCompositionAsset",
      "qualifiedName": "@happyvertical/smrt-video:VideoCompositionAsset",
      "collection": "assets",
      "tableName": "assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "Asset",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceUri",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "mimeType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "version",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "typeSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "statusSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalRefs",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "videoCompositionId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoComposition",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "video"
        }
      ],
      "relationships": [
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "videoCompositionId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoComposition",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "associateWith",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssociations",
        "getAvailableTools",
        "getBySlug",
        "getDerivatives",
        "getEmbedding",
        "getExternalRef",
        "getExternalRefs",
        "getFields",
        "getId",
        "getMetadata",
        "getRelated",
        "getSavedId",
        "getSlug",
        "getSource",
        "getStatus",
        "getTags",
        "getType",
        "hasStaleEmbeddings",
        "hasTag",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mergeMetadata",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "setExternalRef",
        "setMetadata",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "associateWith",
          "async": true,
          "params": [
            "metaType: string",
            "metaId: string",
            "role?: any"
          ],
          "returns": "Promise<AssetAssociation>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssociations",
          "async": true,
          "returns": "Promise<AssetAssociation[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getBySlug",
          "async": true,
          "static": true,
          "params": [
            "_slug: string"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getDerivatives",
          "async": true,
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getExternalRef",
          "params": [
            "provider: string"
          ],
          "returns": "AssetExternalReference | null"
        },
        {
          "name": "getExternalRefs",
          "returns": "Record<string, AssetExternalReference>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSource",
          "async": true,
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getStatus",
          "async": true,
          "returns": "Promise<AssetStatus | null>"
        },
        {
          "name": "getTags",
          "async": true,
          "returns": "Promise<Tag[]>"
        },
        {
          "name": "getType",
          "async": true,
          "returns": "Promise<AssetType | null>"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "hasTag",
          "async": true,
          "params": [
            "tagSlug: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "mergeMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setExternalRef",
          "params": [
            "provider: string",
            "reference: any"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "assets.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
          "path": "/assets",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
          "path": "/assets/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
          "path": "/assets",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "assets.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
          "path": "/assets/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "assets.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
          "path": "/assets/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "videocompositionasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
        },
        {
          "kind": "cli",
          "name": "videocompositionasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
        },
        {
          "kind": "cli",
          "name": "videocompositionasset_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
        },
        {
          "kind": "cli",
          "name": "videocompositionasset_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
        },
        {
          "kind": "cli",
          "name": "videocompositionasset_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
        },
        {
          "kind": "mcp",
          "name": "videocompositionasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
        },
        {
          "kind": "mcp",
          "name": "videocompositionasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoComposition",
      "qualifiedName": "@happyvertical/smrt-video:VideoComposition",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-video",
      "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": "fps",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 30
        },
        {
          "name": "width",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 1920
        },
        {
          "name": "height",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 1080
        },
        {
          "name": "durationInFrames",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "renderStatus",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "draft"
        },
        {
          "name": "renderProgress",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "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",
        "getAssetByRole",
        "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"
      ],
      "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": "getAssetByRole",
          "async": true,
          "params": [
            "role: VideoCompositionAssetRole"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "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>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "contents.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoComposition",
          "path": "/contents",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoComposition",
          "path": "/contents/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoComposition",
          "path": "/contents",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoComposition",
          "path": "/contents/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contents.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoComposition",
          "path": "/contents/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "videocomposition_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoComposition"
        },
        {
          "kind": "cli",
          "name": "videocomposition_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoComposition"
        },
        {
          "kind": "cli",
          "name": "videocomposition_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoComposition"
        },
        {
          "kind": "cli",
          "name": "videocomposition_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoComposition"
        },
        {
          "kind": "cli",
          "name": "videocomposition_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoComposition"
        },
        {
          "kind": "mcp",
          "name": "videocomposition_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoComposition"
        },
        {
          "kind": "mcp",
          "name": "videocomposition_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoComposition"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoCompositionCollection",
      "qualifiedName": "@happyvertical/smrt-video:VideoCompositionCollection",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findByRenderStatus",
        "findReady"
      ],
      "methodSignatures": [
        {
          "name": "findByRenderStatus",
          "async": true,
          "params": [
            "renderStatus: RenderStatus"
          ],
          "returns": "Promise<VideoComposition[]>"
        },
        {
          "name": "findReady",
          "async": true,
          "returns": "Promise<VideoComposition[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoSequenceAsset",
      "qualifiedName": "@happyvertical/smrt-video:VideoSequenceAsset",
      "collection": "assets",
      "tableName": "assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "Asset",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceUri",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "mimeType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "version",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "typeSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "statusSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalRefs",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "videoSequenceId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoSequence",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "video"
        }
      ],
      "relationships": [
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "videoSequenceId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoSequence",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "associateWith",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssociations",
        "getAvailableTools",
        "getBySlug",
        "getDerivatives",
        "getEmbedding",
        "getExternalRef",
        "getExternalRefs",
        "getFields",
        "getId",
        "getMetadata",
        "getRelated",
        "getSavedId",
        "getSlug",
        "getSource",
        "getStatus",
        "getTags",
        "getType",
        "hasStaleEmbeddings",
        "hasTag",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mergeMetadata",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "setExternalRef",
        "setMetadata",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "associateWith",
          "async": true,
          "params": [
            "metaType: string",
            "metaId: string",
            "role?: any"
          ],
          "returns": "Promise<AssetAssociation>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssociations",
          "async": true,
          "returns": "Promise<AssetAssociation[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getBySlug",
          "async": true,
          "static": true,
          "params": [
            "_slug: string"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getDerivatives",
          "async": true,
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getExternalRef",
          "params": [
            "provider: string"
          ],
          "returns": "AssetExternalReference | null"
        },
        {
          "name": "getExternalRefs",
          "returns": "Record<string, AssetExternalReference>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSource",
          "async": true,
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getStatus",
          "async": true,
          "returns": "Promise<AssetStatus | null>"
        },
        {
          "name": "getTags",
          "async": true,
          "returns": "Promise<Tag[]>"
        },
        {
          "name": "getType",
          "async": true,
          "returns": "Promise<AssetType | null>"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "hasTag",
          "async": true,
          "params": [
            "tagSlug: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "mergeMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setExternalRef",
          "params": [
            "provider: string",
            "reference: any"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "assets.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
          "path": "/assets",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
          "path": "/assets/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
          "path": "/assets",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "assets.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
          "path": "/assets/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "assets.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
          "path": "/assets/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "videosequenceasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
        },
        {
          "kind": "cli",
          "name": "videosequenceasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
        },
        {
          "kind": "cli",
          "name": "videosequenceasset_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
        },
        {
          "kind": "cli",
          "name": "videosequenceasset_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
        },
        {
          "kind": "cli",
          "name": "videosequenceasset_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
        },
        {
          "kind": "mcp",
          "name": "videosequenceasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
        },
        {
          "kind": "mcp",
          "name": "videosequenceasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoSequence",
      "qualifiedName": "@happyvertical/smrt-video:VideoSequence",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-video",
      "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": "compositionId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoComposition",
          "columnType": "UUID"
        },
        {
          "name": "position",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "durationInFrames",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "transitionType",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "none"
        },
        {
          "name": "transitionDurationFrames",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "compositionId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoComposition",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "addFact",
        "addReference",
        "browseFacts",
        "classifyConstraintError",
        "clearEmbeddings",
        "createVersion",
        "delete",
        "describe",
        "destroy",
        "do",
        "evaluateReviewProfile",
        "evaluateReviewProfileAction",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "generateThumbnail",
        "getAiUsageSnapshot",
        "getAncestorPaths",
        "getAssetByRole",
        "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"
      ],
      "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": "getAssetByRole",
          "async": true,
          "params": [
            "role: VideoSequenceAssetRole"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "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>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "contents.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoSequence",
          "path": "/contents",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoSequence",
          "path": "/contents/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoSequence",
          "path": "/contents",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoSequence",
          "path": "/contents/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contents.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoSequence",
          "path": "/contents/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "videosequence_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoSequence"
        },
        {
          "kind": "cli",
          "name": "videosequence_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoSequence"
        },
        {
          "kind": "cli",
          "name": "videosequence_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoSequence"
        },
        {
          "kind": "cli",
          "name": "videosequence_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoSequence"
        },
        {
          "kind": "cli",
          "name": "videosequence_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoSequence"
        },
        {
          "kind": "mcp",
          "name": "videosequence_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoSequence"
        },
        {
          "kind": "mcp",
          "name": "videosequence_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoSequence"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoSequenceCollection",
      "qualifiedName": "@happyvertical/smrt-video:VideoSequenceCollection",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findByComposition",
        "findStandalone"
      ],
      "methodSignatures": [
        {
          "name": "findByComposition",
          "async": true,
          "params": [
            "compositionId: string"
          ],
          "returns": "Promise<VideoSequence[]>"
        },
        {
          "name": "findStandalone",
          "async": true,
          "returns": "Promise<VideoSequence[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoShotAsset",
      "qualifiedName": "@happyvertical/smrt-video:VideoShotAsset",
      "collection": "assets",
      "tableName": "assets",
      "packageName": "@happyvertical/smrt-video",
      "extends": "Asset",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceUri",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "mimeType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "version",
          "type": "integer",
          "required": true,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "typeSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "statusSlug",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalRefs",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "createdAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "updatedAt",
          "type": "text",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "videoShotId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoShot",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "video"
        }
      ],
      "relationships": [
        {
          "name": "primaryVersionId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "ownerProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "sourceAssetId",
          "type": "foreignKey",
          "required": false,
          "related": "Asset",
          "columnType": "UUID"
        },
        {
          "name": "folderId",
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "columnType": "UUID"
        },
        {
          "name": "videoShotId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoShot",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "associateWith",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAssociations",
        "getAvailableTools",
        "getBySlug",
        "getDerivatives",
        "getEmbedding",
        "getExternalRef",
        "getExternalRefs",
        "getFields",
        "getId",
        "getMetadata",
        "getRelated",
        "getSavedId",
        "getSlug",
        "getSource",
        "getStatus",
        "getTags",
        "getType",
        "hasStaleEmbeddings",
        "hasTag",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "mergeMetadata",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "setExternalRef",
        "setMetadata",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "associateWith",
          "async": true,
          "params": [
            "metaType: string",
            "metaId: string",
            "role?: any"
          ],
          "returns": "Promise<AssetAssociation>"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAssociations",
          "async": true,
          "returns": "Promise<AssetAssociation[]>"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getBySlug",
          "async": true,
          "static": true,
          "params": [
            "_slug: string"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getDerivatives",
          "async": true,
          "returns": "Promise<Asset[]>"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getExternalRef",
          "params": [
            "provider: string"
          ],
          "returns": "AssetExternalReference | null"
        },
        {
          "name": "getExternalRefs",
          "returns": "Record<string, AssetExternalReference>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string>"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSource",
          "async": true,
          "returns": "Promise<Asset | null>"
        },
        {
          "name": "getStatus",
          "async": true,
          "returns": "Promise<AssetStatus | null>"
        },
        {
          "name": "getTags",
          "async": true,
          "returns": "Promise<Tag[]>"
        },
        {
          "name": "getType",
          "async": true,
          "returns": "Promise<AssetType | null>"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "hasTag",
          "async": true,
          "params": [
            "tagSlug: string"
          ],
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "mergeMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "setExternalRef",
          "params": [
            "provider: string",
            "reference: any"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "metadata: Record<string>"
          ],
          "returns": "void"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "assets.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset",
          "path": "/assets",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset",
          "path": "/assets/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "assets.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset",
          "path": "/assets",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "assets.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset",
          "path": "/assets/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "assets.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset",
          "path": "/assets/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "videoshotasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset"
        },
        {
          "kind": "cli",
          "name": "videoshotasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset"
        },
        {
          "kind": "cli",
          "name": "videoshotasset_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset"
        },
        {
          "kind": "cli",
          "name": "videoshotasset_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset"
        },
        {
          "kind": "cli",
          "name": "videoshotasset_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset"
        },
        {
          "kind": "mcp",
          "name": "videoshotasset_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset"
        },
        {
          "kind": "mcp",
          "name": "videoshotasset_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShotAsset"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoShotCharacter",
      "qualifiedName": "@happyvertical/smrt-video:VideoShotCharacter",
      "collection": "videoshotcharacters",
      "tableName": "video_shot_characters",
      "packageName": "@happyvertical/smrt-video",
      "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": "videoShotId",
          "type": "foreignKey",
          "required": true,
          "related": "VideoShot",
          "columnType": "UUID"
        },
        {
          "name": "characterId",
          "type": "foreignKey",
          "required": true,
          "related": "Character",
          "columnType": "UUID"
        },
        {
          "name": "role",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "primary"
        },
        {
          "name": "position",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        }
      ],
      "relationships": [
        {
          "name": "videoShotId",
          "type": "foreignKey",
          "required": true,
          "related": "VideoShot",
          "columnType": "UUID"
        },
        {
          "name": "characterId",
          "type": "foreignKey",
          "required": true,
          "related": "Character",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAvailableTools",
        "getEmbedding",
        "getFields",
        "getId",
        "getRelated",
        "getSavedId",
        "getSlug",
        "hasStaleEmbeddings",
        "initialize",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "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": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "videoshotcharacters.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
          "path": "/videoshotcharacters",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "videoshotcharacters.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
          "path": "/videoshotcharacters/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "videoshotcharacters.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
          "path": "/videoshotcharacters",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "videoshotcharacters.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
          "path": "/videoshotcharacters/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "videoshotcharacter_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
        },
        {
          "kind": "cli",
          "name": "videoshotcharacter_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
        },
        {
          "kind": "cli",
          "name": "videoshotcharacter_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
        },
        {
          "kind": "cli",
          "name": "videoshotcharacter_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
        },
        {
          "kind": "cli",
          "name": "videoshotcharacter_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
        },
        {
          "kind": "mcp",
          "name": "videoshotcharacter_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
        },
        {
          "kind": "mcp",
          "name": "videoshotcharacter_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoShotCharacterCollection",
      "qualifiedName": "@happyvertical/smrt-video:VideoShotCharacterCollection",
      "collection": "videoshotcharacters",
      "tableName": "video_shot_character_collections",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findByCharacter",
        "findByShot"
      ],
      "methodSignatures": [
        {
          "name": "findByCharacter",
          "async": true,
          "params": [
            "characterId: string"
          ],
          "returns": "Promise<VideoShotCharacter[]>"
        },
        {
          "name": "findByShot",
          "async": true,
          "params": [
            "videoShotId: string"
          ],
          "returns": "Promise<VideoShotCharacter[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoShot",
      "qualifiedName": "@happyvertical/smrt-video:VideoShot",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-video",
      "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": "sequenceId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoSequence",
          "columnType": "UUID"
        },
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        },
        {
          "name": "position",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "durationInFrames",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "trimBeforeFrames",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "trimAfterFrames",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "scriptText",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "scriptWordCount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "targetDuration",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 30
        },
        {
          "name": "shotStatus",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "draft"
        },
        {
          "name": "progress",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "errorMessage",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "statusMessage",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "videoMetadata",
          "type": "json",
          "required": false,
          "columnType": "JSON"
        }
      ],
      "relationships": [
        {
          "name": "thumbnailAssetId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-assets:Asset",
          "columnType": "UUID"
        },
        {
          "name": "sequenceId",
          "type": "foreignKey",
          "required": false,
          "related": "VideoSequence",
          "columnType": "UUID"
        },
        {
          "name": "sceneId",
          "type": "foreignKey",
          "required": false,
          "related": "Scene",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "_setLoadedRelationship",
        "addAsset",
        "addFact",
        "addReference",
        "browseFacts",
        "classifyConstraintError",
        "clearEmbeddings",
        "createVersion",
        "delete",
        "describe",
        "destroy",
        "do",
        "evaluateReviewProfile",
        "evaluateReviewProfileAction",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "generateThumbnail",
        "getAiUsageSnapshot",
        "getAncestorPaths",
        "getAssetByRole",
        "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",
        "setScript",
        "setThumbnail",
        "summarizeAiUsage",
        "syncFacts",
        "syncFactsState",
        "toJSON",
        "toPlainObject",
        "toPublicJSON",
        "updateFactEvidenceStatus",
        "updateFactEvidenceStatusAction",
        "updateMetadata"
      ],
      "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": "getAssetByRole",
          "async": true,
          "params": [
            "role: VideoShotAssetRole"
          ],
          "returns": "Promise<Asset | null>"
        },
        {
          "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": "setScript",
          "params": [
            "text: string"
          ],
          "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>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "surfaces": [
        {
          "kind": "api",
          "name": "contents.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShot",
          "path": "/contents",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShot",
          "path": "/contents/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "contents.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoShot",
          "path": "/contents",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "contents.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoShot",
          "path": "/contents/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "contents.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoShot",
          "path": "/contents/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "videoshot_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShot"
        },
        {
          "kind": "cli",
          "name": "videoshot_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShot"
        },
        {
          "kind": "cli",
          "name": "videoshot_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoShot"
        },
        {
          "kind": "cli",
          "name": "videoshot_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoShot"
        },
        {
          "kind": "cli",
          "name": "videoshot_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoShot"
        },
        {
          "kind": "mcp",
          "name": "videoshot_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoShot"
        },
        {
          "kind": "mcp",
          "name": "videoshot_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoShot"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoShotCollection",
      "qualifiedName": "@happyvertical/smrt-video:VideoShotCollection",
      "collection": "contents",
      "tableName": "contents",
      "packageName": "@happyvertical/smrt-video",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findBySequence",
        "findByStatus",
        "findStandalone"
      ],
      "methodSignatures": [
        {
          "name": "findBySequence",
          "async": true,
          "params": [
            "sequenceId: string"
          ],
          "returns": "Promise<VideoShot[]>"
        },
        {
          "name": "findByStatus",
          "async": true,
          "params": [
            "shotStatus: VideoShotStatus"
          ],
          "returns": "Promise<VideoShot[]>"
        },
        {
          "name": "findStandalone",
          "async": true,
          "returns": "Promise<VideoShot[]>"
        }
      ],
      "surfaces": [],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "VideoWorkflow",
      "qualifiedName": "@happyvertical/smrt-video:VideoWorkflow",
      "collection": "videoworkflows",
      "tableName": "video_workflows",
      "packageName": "@happyvertical/smrt-video",
      "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": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "workflowType",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": "custom"
        },
        {
          "name": "workflowJson",
          "type": "json",
          "required": false,
          "columnType": "JSON"
        },
        {
          "name": "nodeMapping",
          "type": "json",
          "required": false,
          "columnType": "JSON"
        },
        {
          "name": "estimatedTime",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 300
        },
        {
          "name": "isActive",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN",
          "default": true
        },
        {
          "name": "requiredModels",
          "type": "json",
          "required": false,
          "columnType": "JSON",
          "default": []
        }
      ],
      "relationships": [],
      "methods": [
        "_setLoadedRelationship",
        "classifyConstraintError",
        "clearEmbeddings",
        "delete",
        "describe",
        "destroy",
        "do",
        "executeToolCall",
        "forget",
        "forgetScope",
        "generateEmbeddings",
        "getAiUsageSnapshot",
        "getAvailableTools",
        "getEmbedding",
        "getFields",
        "getId",
        "getRelated",
        "getSavedId",
        "getSlug",
        "hasStaleEmbeddings",
        "initialize",
        "injectParameters",
        "is",
        "isRelatedLoaded",
        "isSaved",
        "listAiUsage",
        "loadDataFromDb",
        "loadFromId",
        "loadFromSlug",
        "loadRelated",
        "loadRelatedMany",
        "markAsPersisted",
        "recall",
        "recallAll",
        "remember",
        "requireInsertOnSave",
        "resetAiUsage",
        "save",
        "summarizeAiUsage",
        "toJSON",
        "toPlainObject",
        "toPublicJSON"
      ],
      "methodSignatures": [
        {
          "name": "_setLoadedRelationship",
          "params": [
            "fieldName: string",
            "value: any"
          ],
          "returns": "void"
        },
        {
          "name": "classifyConstraintError",
          "static": true,
          "params": [
            "message: string"
          ],
          "returns": "'unique' | 'not_null' | null"
        },
        {
          "name": "clearEmbeddings",
          "async": true,
          "returns": "Promise<void>"
        },
        {
          "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": "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": "getAiUsageSnapshot",
          "returns": "AiUsageSnapshot | undefined"
        },
        {
          "name": "getAvailableTools",
          "returns": "AITool[]"
        },
        {
          "name": "getEmbedding",
          "async": true,
          "params": [
            "fieldName: string",
            "model?: string"
          ],
          "returns": "Promise<number[] | null>"
        },
        {
          "name": "getFields",
          "async": true,
          "returns": "Promise<any>"
        },
        {
          "name": "getId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getRelated",
          "async": true,
          "params": [
            "fieldName: string",
            "opts?: LoadRelatedOptions"
          ],
          "returns": "Promise<any>"
        },
        {
          "name": "getSavedId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "getSlug",
          "async": true,
          "returns": "any"
        },
        {
          "name": "hasStaleEmbeddings",
          "async": true,
          "returns": "Promise<boolean>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise"
        },
        {
          "name": "injectParameters",
          "params": [
            "params: Record<string>"
          ],
          "returns": "null"
        },
        {
          "name": "is",
          "async": true,
          "params": [
            "criteria: string",
            "options?: AiOperationOptions"
          ],
          "returns": "any"
        },
        {
          "name": "isRelatedLoaded",
          "params": [
            "fieldName: string"
          ],
          "returns": "boolean"
        },
        {
          "name": "isSaved",
          "async": true,
          "returns": "any"
        },
        {
          "name": "listAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageListOptions"
          ],
          "returns": "Promise<SmrtAiUsageRecord[]>"
        },
        {
          "name": "loadDataFromDb",
          "async": true,
          "params": [
            "data: Record<string>"
          ],
          "returns": "any"
        },
        {
          "name": "loadFromId",
          "async": true,
          "returns": "any"
        },
        {
          "name": "loadFromSlug",
          "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": "recall",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise"
        },
        {
          "name": "recallAll",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<Map<string>>"
        },
        {
          "name": "remember",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<void>"
        },
        {
          "name": "requireInsertOnSave",
          "returns": "void"
        },
        {
          "name": "resetAiUsage",
          "returns": "void"
        },
        {
          "name": "save",
          "async": true,
          "returns": "any"
        },
        {
          "name": "summarizeAiUsage",
          "async": true,
          "params": [
            "options?: AiUsageSummaryOptions"
          ],
          "returns": "Promise<Record<string, AiUsageStats>>"
        },
        {
          "name": "toJSON",
          "returns": "any"
        },
        {
          "name": "toPlainObject",
          "returns": "Record<string>"
        },
        {
          "name": "toPublicJSON",
          "params": [
            "options?: PublicJsonOptions"
          ],
          "returns": "Record<string>"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "tableStrategy": "sti",
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context",
        "_meta_type"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "videoworkflows.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow",
          "path": "/videoworkflows",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "videoworkflows.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow",
          "path": "/videoworkflows/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "videoworkflows.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow",
          "path": "/videoworkflows",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "videoworkflows.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow",
          "path": "/videoworkflows/[id]",
          "method": "PATCH"
        },
        {
          "kind": "cli",
          "name": "videoworkflow_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow"
        },
        {
          "kind": "cli",
          "name": "videoworkflow_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow"
        },
        {
          "kind": "cli",
          "name": "videoworkflow_create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow"
        },
        {
          "kind": "cli",
          "name": "videoworkflow_update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow"
        },
        {
          "kind": "cli",
          "name": "videoworkflow_delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow"
        },
        {
          "kind": "mcp",
          "name": "videoworkflow_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow"
        },
        {
          "kind": "mcp",
          "name": "videoworkflow_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-video:VideoWorkflow"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    }
  ],
  "surfaces": [
    {
      "kind": "api",
      "name": "assets.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:CharacterAsset",
      "path": "/assets",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:CharacterAsset",
      "path": "/assets/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:CharacterAsset",
      "path": "/assets",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "assets.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:CharacterAsset",
      "path": "/assets/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "assets.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:CharacterAsset",
      "path": "/assets/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "characterasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:CharacterAsset"
    },
    {
      "kind": "cli",
      "name": "characterasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:CharacterAsset"
    },
    {
      "kind": "cli",
      "name": "characterasset_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:CharacterAsset"
    },
    {
      "kind": "cli",
      "name": "characterasset_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:CharacterAsset"
    },
    {
      "kind": "cli",
      "name": "characterasset_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:CharacterAsset"
    },
    {
      "kind": "mcp",
      "name": "characterasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:CharacterAsset"
    },
    {
      "kind": "mcp",
      "name": "characterasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:CharacterAsset"
    },
    {
      "kind": "api",
      "name": "characters.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Character",
      "path": "/characters",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "characters.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Character",
      "path": "/characters/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "characters.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:Character",
      "path": "/characters",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "characters.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:Character",
      "path": "/characters/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "characters.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:Character",
      "path": "/characters/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "character_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Character"
    },
    {
      "kind": "cli",
      "name": "character_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Character"
    },
    {
      "kind": "cli",
      "name": "character_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:Character"
    },
    {
      "kind": "cli",
      "name": "character_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:Character"
    },
    {
      "kind": "cli",
      "name": "character_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:Character"
    },
    {
      "kind": "mcp",
      "name": "character_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Character"
    },
    {
      "kind": "mcp",
      "name": "character_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Character"
    },
    {
      "kind": "api",
      "name": "compositejobs.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:CompositeJob",
      "path": "/compositejobs",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "compositejobs.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:CompositeJob",
      "path": "/compositejobs/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "compositejobs.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:CompositeJob",
      "path": "/compositejobs",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "compositejobs.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:CompositeJob",
      "path": "/compositejobs/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "compositejob_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:CompositeJob"
    },
    {
      "kind": "cli",
      "name": "compositejob_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:CompositeJob"
    },
    {
      "kind": "cli",
      "name": "compositejob_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:CompositeJob"
    },
    {
      "kind": "cli",
      "name": "compositejob_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:CompositeJob"
    },
    {
      "kind": "cli",
      "name": "compositejob_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:CompositeJob"
    },
    {
      "kind": "mcp",
      "name": "compositejob_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:CompositeJob"
    },
    {
      "kind": "mcp",
      "name": "compositejob_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:CompositeJob"
    },
    {
      "kind": "api",
      "name": "assets.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:PerformerAsset",
      "path": "/assets",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:PerformerAsset",
      "path": "/assets/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:PerformerAsset",
      "path": "/assets",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "assets.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:PerformerAsset",
      "path": "/assets/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "assets.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:PerformerAsset",
      "path": "/assets/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "performerasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:PerformerAsset"
    },
    {
      "kind": "cli",
      "name": "performerasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:PerformerAsset"
    },
    {
      "kind": "cli",
      "name": "performerasset_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:PerformerAsset"
    },
    {
      "kind": "cli",
      "name": "performerasset_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:PerformerAsset"
    },
    {
      "kind": "cli",
      "name": "performerasset_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:PerformerAsset"
    },
    {
      "kind": "mcp",
      "name": "performerasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:PerformerAsset"
    },
    {
      "kind": "mcp",
      "name": "performerasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:PerformerAsset"
    },
    {
      "kind": "api",
      "name": "performers.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Performer",
      "path": "/performers",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "performers.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Performer",
      "path": "/performers/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "performers.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:Performer",
      "path": "/performers",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "performers.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:Performer",
      "path": "/performers/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "performers.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:Performer",
      "path": "/performers/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "performer_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Performer"
    },
    {
      "kind": "cli",
      "name": "performer_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Performer"
    },
    {
      "kind": "cli",
      "name": "performer_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:Performer"
    },
    {
      "kind": "cli",
      "name": "performer_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:Performer"
    },
    {
      "kind": "cli",
      "name": "performer_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:Performer"
    },
    {
      "kind": "mcp",
      "name": "performer_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Performer"
    },
    {
      "kind": "mcp",
      "name": "performer_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Performer"
    },
    {
      "kind": "api",
      "name": "assets.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:SceneAsset",
      "path": "/assets",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:SceneAsset",
      "path": "/assets/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:SceneAsset",
      "path": "/assets",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "assets.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:SceneAsset",
      "path": "/assets/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "assets.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:SceneAsset",
      "path": "/assets/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "sceneasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:SceneAsset"
    },
    {
      "kind": "cli",
      "name": "sceneasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:SceneAsset"
    },
    {
      "kind": "cli",
      "name": "sceneasset_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:SceneAsset"
    },
    {
      "kind": "cli",
      "name": "sceneasset_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:SceneAsset"
    },
    {
      "kind": "cli",
      "name": "sceneasset_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:SceneAsset"
    },
    {
      "kind": "mcp",
      "name": "sceneasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:SceneAsset"
    },
    {
      "kind": "mcp",
      "name": "sceneasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:SceneAsset"
    },
    {
      "kind": "api",
      "name": "scenes.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Scene",
      "path": "/scenes",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "scenes.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Scene",
      "path": "/scenes/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "scenes.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:Scene",
      "path": "/scenes",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "scenes.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:Scene",
      "path": "/scenes/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "scenes.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:Scene",
      "path": "/scenes/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "scene_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Scene"
    },
    {
      "kind": "cli",
      "name": "scene_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Scene"
    },
    {
      "kind": "cli",
      "name": "scene_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:Scene"
    },
    {
      "kind": "cli",
      "name": "scene_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:Scene"
    },
    {
      "kind": "cli",
      "name": "scene_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:Scene"
    },
    {
      "kind": "mcp",
      "name": "scene_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:Scene"
    },
    {
      "kind": "mcp",
      "name": "scene_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:Scene"
    },
    {
      "kind": "api",
      "name": "assets.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
      "path": "/assets",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
      "path": "/assets/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
      "path": "/assets",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "assets.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
      "path": "/assets/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "assets.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset",
      "path": "/assets/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "videocompositionasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
    },
    {
      "kind": "cli",
      "name": "videocompositionasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
    },
    {
      "kind": "cli",
      "name": "videocompositionasset_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
    },
    {
      "kind": "cli",
      "name": "videocompositionasset_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
    },
    {
      "kind": "cli",
      "name": "videocompositionasset_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
    },
    {
      "kind": "mcp",
      "name": "videocompositionasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
    },
    {
      "kind": "mcp",
      "name": "videocompositionasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoCompositionAsset"
    },
    {
      "kind": "api",
      "name": "contents.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoComposition",
      "path": "/contents",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoComposition",
      "path": "/contents/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoComposition",
      "path": "/contents",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoComposition",
      "path": "/contents/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contents.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoComposition",
      "path": "/contents/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "videocomposition_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoComposition"
    },
    {
      "kind": "cli",
      "name": "videocomposition_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoComposition"
    },
    {
      "kind": "cli",
      "name": "videocomposition_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoComposition"
    },
    {
      "kind": "cli",
      "name": "videocomposition_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoComposition"
    },
    {
      "kind": "cli",
      "name": "videocomposition_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoComposition"
    },
    {
      "kind": "mcp",
      "name": "videocomposition_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoComposition"
    },
    {
      "kind": "mcp",
      "name": "videocomposition_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoComposition"
    },
    {
      "kind": "api",
      "name": "assets.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
      "path": "/assets",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
      "path": "/assets/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
      "path": "/assets",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "assets.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
      "path": "/assets/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "assets.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset",
      "path": "/assets/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "videosequenceasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
    },
    {
      "kind": "cli",
      "name": "videosequenceasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
    },
    {
      "kind": "cli",
      "name": "videosequenceasset_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
    },
    {
      "kind": "cli",
      "name": "videosequenceasset_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
    },
    {
      "kind": "cli",
      "name": "videosequenceasset_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
    },
    {
      "kind": "mcp",
      "name": "videosequenceasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
    },
    {
      "kind": "mcp",
      "name": "videosequenceasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoSequenceAsset"
    },
    {
      "kind": "api",
      "name": "contents.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoSequence",
      "path": "/contents",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoSequence",
      "path": "/contents/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoSequence",
      "path": "/contents",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoSequence",
      "path": "/contents/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contents.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoSequence",
      "path": "/contents/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "videosequence_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoSequence"
    },
    {
      "kind": "cli",
      "name": "videosequence_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoSequence"
    },
    {
      "kind": "cli",
      "name": "videosequence_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoSequence"
    },
    {
      "kind": "cli",
      "name": "videosequence_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoSequence"
    },
    {
      "kind": "cli",
      "name": "videosequence_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoSequence"
    },
    {
      "kind": "mcp",
      "name": "videosequence_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoSequence"
    },
    {
      "kind": "mcp",
      "name": "videosequence_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoSequence"
    },
    {
      "kind": "api",
      "name": "assets.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset",
      "path": "/assets",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset",
      "path": "/assets/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "assets.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset",
      "path": "/assets",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "assets.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset",
      "path": "/assets/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "assets.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset",
      "path": "/assets/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "videoshotasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset"
    },
    {
      "kind": "cli",
      "name": "videoshotasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset"
    },
    {
      "kind": "cli",
      "name": "videoshotasset_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset"
    },
    {
      "kind": "cli",
      "name": "videoshotasset_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset"
    },
    {
      "kind": "cli",
      "name": "videoshotasset_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset"
    },
    {
      "kind": "mcp",
      "name": "videoshotasset_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset"
    },
    {
      "kind": "mcp",
      "name": "videoshotasset_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShotAsset"
    },
    {
      "kind": "api",
      "name": "videoshotcharacters.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
      "path": "/videoshotcharacters",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "videoshotcharacters.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
      "path": "/videoshotcharacters/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "videoshotcharacters.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
      "path": "/videoshotcharacters",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "videoshotcharacters.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter",
      "path": "/videoshotcharacters/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "videoshotcharacter_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
    },
    {
      "kind": "cli",
      "name": "videoshotcharacter_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
    },
    {
      "kind": "cli",
      "name": "videoshotcharacter_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
    },
    {
      "kind": "cli",
      "name": "videoshotcharacter_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
    },
    {
      "kind": "cli",
      "name": "videoshotcharacter_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
    },
    {
      "kind": "mcp",
      "name": "videoshotcharacter_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
    },
    {
      "kind": "mcp",
      "name": "videoshotcharacter_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShotCharacter"
    },
    {
      "kind": "api",
      "name": "contents.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShot",
      "path": "/contents",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShot",
      "path": "/contents/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "contents.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoShot",
      "path": "/contents",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "contents.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoShot",
      "path": "/contents/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "contents.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoShot",
      "path": "/contents/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "videoshot_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShot"
    },
    {
      "kind": "cli",
      "name": "videoshot_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShot"
    },
    {
      "kind": "cli",
      "name": "videoshot_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoShot"
    },
    {
      "kind": "cli",
      "name": "videoshot_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoShot"
    },
    {
      "kind": "cli",
      "name": "videoshot_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoShot"
    },
    {
      "kind": "mcp",
      "name": "videoshot_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoShot"
    },
    {
      "kind": "mcp",
      "name": "videoshot_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoShot"
    },
    {
      "kind": "api",
      "name": "videoworkflows.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow",
      "path": "/videoworkflows",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "videoworkflows.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow",
      "path": "/videoworkflows/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "videoworkflows.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow",
      "path": "/videoworkflows",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "videoworkflows.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow",
      "path": "/videoworkflows/[id]",
      "method": "PATCH"
    },
    {
      "kind": "cli",
      "name": "videoworkflow_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow"
    },
    {
      "kind": "cli",
      "name": "videoworkflow_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow"
    },
    {
      "kind": "cli",
      "name": "videoworkflow_create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow"
    },
    {
      "kind": "cli",
      "name": "videoworkflow_update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow"
    },
    {
      "kind": "cli",
      "name": "videoworkflow_delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow"
    },
    {
      "kind": "mcp",
      "name": "videoworkflow_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow"
    },
    {
      "kind": "mcp",
      "name": "videoworkflow_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-video:VideoWorkflow"
    }
  ],
  "prompts": [],
  "relationshipsV2": {
    "foreignKeyFields": 35,
    "crossPackageRefFields": 22,
    "junctionCollections": 3,
    "hierarchicalObjects": 0,
    "polymorphicAssociations": 0,
    "uuidColumns": 146
  },
  "agentDoc": "# @happyvertical/smrt-video\n\nAI video production pipeline: characters, performers, scenes, shots, sequences, compositions, and ComfyUI workflow integration.\n\n## Models\n\n- **Character** (renamed from PersonalityProfile): visual + voice identity. `imageAssetId`, `voiceProfileId` FK, branding config (logo, colors, fonts, lower-thirds). Scene-specific position/scale configs.\n- **Performer**: physical likeness for IP-Adapter FaceID. `faceEmbedding` (512-dim), `referenceAssetIds`, `ipAdapterWeight`.\n- **Scene**: virtual background. `sourceType` (image/video/panorama_360/panorama_180), `projection`, `viewpoints` array (pan/tilt/fov), `lightingProfile`, `anchorPoints`.\n- **VideoShot** (extends Content): atomic generation unit. `durationInFrames`, `scriptText`, `scriptWordCount`. Estimated duration: `scriptWordCount / 2.7` words/sec (±15% tolerance). `videoMetadata` includes `wordTimings` for lip-sync.\n- **VideoSequence** (extends Content): thematic section with `transitionType` (none/fade/slide/wipe), position ordering.\n- **VideoComposition** (extends Content): top-level container — `fps`, `width`, `height`, `durationInFrames`, `renderStatus`/`renderProgress`.\n- **VideoShotCharacter**: junction (shot ↔ character) with role (primary/secondary/background), position, duration.\n- **VideoWorkflow**: ComfyUI template. `workflowJson`, `nodeMapping` (maps semantic names → node IDs), `workflowType` (prebake/broadcast/lipsync/postprod/custom). `injectParameters()` deep-clones workflow + overwrites `node.inputs`.\n\n## Design Principles\n\n- **Store frames, compute seconds**: `durationInFrames` everywhere; seconds = frames / fps\n- **Content inheritance**: VideoShot, VideoSequence, VideoComposition all extend Content from smrt-content\n- **Hierarchy**: Composition → Sequence → Shot → ShotCharacter\n- **Owned asset normalization**: `CharacterOwnedAsset`, `PerformerOwnedAsset`, and `SceneOwnedAsset` are canonical noun joins; `VideoShot`/`VideoSequence`/`VideoComposition` use inherited `content_assets`\n\n## Gotchas\n\n- **PersonalityProfile → Character rename**: old name still exported for backwards compatibility\n- **Legacy video STI asset rows**: reads still union canonical joins with legacy STI asset records during migration, but new writes go through the model helpers / join tables\n- **Schema rollout**: run `smrt db:migrate` before relying on `character_assets` / `performer_assets` / `scene_assets` writes; reads still tolerate those tables being absent during migration\n- **ComfyUI injectParameters()**: assumes `node.inputs` exists; warnings logged in dev mode\n- **Frame arithmetic**: `trimBeforeFrames`/`trimAfterFrames` require manual effective frame calculation\n- **Word timings from external TTS**: `wordTimings` array not generated by framework — requires external provider\n- **IP-Adapter weights**: `faceEmbedding` upload not handled; weight is metadata-only (0.5-1.0)\n- **Optional tenancy** on all core models\n"
}