{
  "version": "1.0.0",
  "timestamp": 0,
  "packageName": "@happyvertical/smrt-assets",
  "packageVersion": "0.42.7",
  "objects": {
    "@happyvertical/smrt-assets:AssetAssociation": {
      "name": "assetassociation",
      "className": "AssetAssociation",
      "qualifiedName": "@happyvertical/smrt-assets:AssetAssociation",
      "collection": "assetassociations",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-association.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {
        "metaType": {
          "type": "text",
          "required": true,
          "_meta": {
            "required": true
          }
        },
        "metaId": {
          "type": "text",
          "required": true,
          "_meta": {
            "required": true
          }
        },
        "role": {
          "type": "text",
          "required": true,
          "_meta": {
            "required": true
          }
        },
        "sortOrder": {
          "type": "integer",
          "required": false,
          "default": 0
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "assetId": {
          "type": "foreignKey",
          "required": true,
          "related": "Asset",
          "_meta": {
            "required": true
          }
        }
      },
      "methods": {
        "hydrate": {
          "name": "hydrate",
          "async": true,
          "parameters": [],
          "returnType": "Promise<T | null>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "conflictColumns": [
          "asset_id",
          "meta_type",
          "meta_id",
          "role"
        ],
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get",
            "create"
          ]
        },
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        }
      },
      "extends": "SmrtPolymorphicAssociation",
      "exportName": "AssetAssociation",
      "collectionExportName": "AssetAssociationCollection",
      "validationRules": [
        {
          "field": "metaType",
          "rule": "required",
          "fieldType": "text"
        },
        {
          "field": "metaId",
          "rule": "required",
          "fieldType": "text"
        },
        {
          "field": "role",
          "rule": "required",
          "fieldType": "text"
        },
        {
          "field": "assetId",
          "rule": "required",
          "fieldType": "foreignKey"
        }
      ],
      "schema": {
        "tableName": "asset_associations",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_associations\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"meta_type\" TEXT NOT NULL,\n  \"meta_id\" TEXT NOT NULL,\n  \"role\" TEXT NOT NULL,\n  \"sort_order\" INTEGER DEFAULT 0,\n  \"tenant_id\" UUID,\n  \"asset_id\" UUID NOT NULL\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "meta_type": {
            "type": "TEXT",
            "notNull": true,
            "unique": false
          },
          "meta_id": {
            "type": "TEXT",
            "notNull": true,
            "unique": false
          },
          "role": {
            "type": "TEXT",
            "notNull": true,
            "unique": false
          },
          "sort_order": {
            "type": "INTEGER",
            "notNull": false,
            "unique": false,
            "default": 0
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false,
            "unique": false
          },
          "asset_id": {
            "type": "UUID",
            "referenceKind": "foreignKey",
            "notNull": true,
            "unique": false
          }
        },
        "indexes": [
          {
            "name": "asset_associations_asset_id_meta_type_idx",
            "columns": [
              "asset_id",
              "meta_type",
              "meta_id",
              "role"
            ],
            "unique": true
          },
          {
            "name": "asset_associations_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ]
          },
          {
            "name": "asset_associations_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          },
          {
            "name": "asset_associations_meta_type_meta_id_idx",
            "columns": [
              "meta_type",
              "meta_id"
            ]
          }
        ],
        "version": "36798691"
      }
    },
    "@happyvertical/smrt-assets:AssetAssociationCollection": {
      "name": "assetassociationcollection",
      "className": "AssetAssociationCollection",
      "qualifiedName": "@happyvertical/smrt-assets:AssetAssociationCollection",
      "collection": "assetassociations",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-associations.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {},
      "methods": {
        "byLeft": {
          "name": "byLeft",
          "async": true,
          "parameters": [
            {
              "name": "metaType",
              "type": "string",
              "optional": false
            },
            {
              "name": "metaId",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "JunctionFilterOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<AssetAssociation[]>",
          "isStatic": false,
          "isPublic": true
        },
        "byRight": {
          "name": "byRight",
          "async": true,
          "parameters": [
            {
              "name": "rightId",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "JunctionFilterOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<TItem[]>",
          "isStatic": false,
          "isPublic": true
        },
        "attach": {
          "name": "attach",
          "async": true,
          "parameters": [
            {
              "name": "metaType",
              "type": "string",
              "optional": false
            },
            {
              "name": "metaId",
              "type": "string",
              "optional": false
            },
            {
              "name": "assetId",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "JunctionAttachOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<AssetAssociation>",
          "isStatic": false,
          "isPublic": true
        },
        "detach": {
          "name": "detach",
          "async": true,
          "parameters": [
            {
              "name": "metaType",
              "type": "string",
              "optional": false
            },
            {
              "name": "metaId",
              "type": "string",
              "optional": false
            },
            {
              "name": "assetId",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "JunctionFilterOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "setLinks": {
          "name": "setLinks",
          "async": true,
          "parameters": [
            {
              "name": "metaType",
              "type": "string",
              "optional": false
            },
            {
              "name": "metaId",
              "type": "string",
              "optional": false
            },
            {
              "name": "assetIds",
              "type": "string[]",
              "optional": false
            },
            {
              "name": "opts",
              "type": "JunctionAttachOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtJunction",
      "extendsTypeArg": "AssetAssociation",
      "exportName": "AssetAssociationCollection",
      "collectionExportName": "AssetAssociationCollectionCollection",
      "schema": {
        "tableName": "asset_association_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_association_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "asset_association_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "asset_association_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "0898b2a2"
      }
    },
    "@happyvertical/smrt-assets:AssetMetafield": {
      "name": "assetmetafield",
      "className": "AssetMetafield",
      "qualifiedName": "@happyvertical/smrt-assets:AssetMetafield",
      "collection": "assetmetafields",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-metafield.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "name": {
          "type": "text",
          "required": false
        },
        "validation": {
          "type": "text",
          "required": false
        }
      },
      "methods": {
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getValidation": {
          "name": "getValidation",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "setValidation": {
          "name": "setValidation",
          "async": false,
          "parameters": [
            {
              "name": "rules",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "getBySlug": {
          "name": "getBySlug",
          "async": true,
          "parameters": [
            {
              "name": "_slug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<AssetMetafield | null>",
          "isStatic": true,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get",
            "create"
          ]
        },
        "cli": true
      },
      "extends": "SmrtObject",
      "exportName": "AssetMetafield",
      "collectionExportName": "AssetMetafieldCollection",
      "schema": {
        "tableName": "asset_metafields",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_metafields\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"name\" TEXT,\n  \"validation\" TEXT\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "name": {
            "type": "TEXT",
            "notNull": false
          },
          "validation": {
            "type": "TEXT",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "asset_metafields_slug_context_meta_type_idx",
            "columns": [
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "asset_metafields_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "asset_metafields_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "7393718c"
      }
    },
    "@happyvertical/smrt-assets:AssetMetafieldCollection": {
      "name": "assetmetafieldcollection",
      "className": "AssetMetafieldCollection",
      "qualifiedName": "@happyvertical/smrt-assets:AssetMetafieldCollection",
      "collection": "assetmetafields",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-metafields.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {},
      "methods": {
        "getOrCreate": {
          "name": "getOrCreate",
          "async": true,
          "parameters": [
            {
              "name": "slug",
              "type": "string",
              "optional": false
            },
            {
              "name": "name",
              "type": "string",
              "optional": true
            },
            {
              "name": "validation",
              "type": "string | Record<string>",
              "optional": true
            }
          ],
          "returnType": "Promise<AssetMetafield>",
          "isStatic": false,
          "isPublic": true
        },
        "initializeCommonMetafields": {
          "name": "initializeCommonMetafields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "AssetMetafield",
      "exportName": "AssetMetafieldCollection",
      "collectionExportName": "AssetMetafieldCollectionCollection",
      "schema": {
        "tableName": "asset_metafield_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_metafield_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "asset_metafield_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "asset_metafield_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "912b98aa"
      }
    },
    "@happyvertical/smrt-assets:AssetStatus": {
      "name": "assetstatus",
      "className": "AssetStatus",
      "qualifiedName": "@happyvertical/smrt-assets:AssetStatus",
      "collection": "assetstatuses",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-status.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "name": {
          "type": "text",
          "required": false
        },
        "description": {
          "type": "text",
          "required": false
        }
      },
      "methods": {
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getBySlug": {
          "name": "getBySlug",
          "async": true,
          "parameters": [
            {
              "name": "_slug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<AssetStatus | null>",
          "isStatic": true,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get",
            "create"
          ]
        },
        "cli": true
      },
      "extends": "SmrtObject",
      "exportName": "AssetStatus",
      "collectionExportName": "AssetStatusCollection",
      "schema": {
        "tableName": "asset_statuses",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_statuses\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"name\" TEXT,\n  \"description\" TEXT\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "name": {
            "type": "TEXT",
            "notNull": false
          },
          "description": {
            "type": "TEXT",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "asset_statuses_slug_context_meta_type_idx",
            "columns": [
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "asset_statuses_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "asset_statuses_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "8251a52f"
      }
    },
    "@happyvertical/smrt-assets:AssetStatusCollection": {
      "name": "assetstatuscollection",
      "className": "AssetStatusCollection",
      "qualifiedName": "@happyvertical/smrt-assets:AssetStatusCollection",
      "collection": "assetstatuses",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-statuses.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {},
      "methods": {
        "getOrCreate": {
          "name": "getOrCreate",
          "async": true,
          "parameters": [
            {
              "name": "slug",
              "type": "string",
              "optional": false
            },
            {
              "name": "name",
              "type": "string",
              "optional": true
            },
            {
              "name": "description",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<AssetStatus>",
          "isStatic": false,
          "isPublic": true
        },
        "initializeCommonStatuses": {
          "name": "initializeCommonStatuses",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "AssetStatus",
      "exportName": "AssetStatusCollection",
      "collectionExportName": "AssetStatusCollectionCollection",
      "schema": {
        "tableName": "asset_status_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_status_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "asset_status_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "asset_status_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "1b138d50"
      }
    },
    "@happyvertical/smrt-assets:AssetType": {
      "name": "assettype",
      "className": "AssetType",
      "qualifiedName": "@happyvertical/smrt-assets:AssetType",
      "collection": "assettypes",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-type.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "name": {
          "type": "text",
          "required": false
        },
        "description": {
          "type": "text",
          "required": false
        }
      },
      "methods": {
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getBySlug": {
          "name": "getBySlug",
          "async": true,
          "parameters": [
            {
              "name": "_slug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<AssetType | null>",
          "isStatic": true,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get",
            "create"
          ]
        },
        "cli": true
      },
      "extends": "SmrtObject",
      "exportName": "AssetType",
      "collectionExportName": "AssetTypeCollection",
      "schema": {
        "tableName": "asset_types",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_types\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"name\" TEXT,\n  \"description\" TEXT\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "name": {
            "type": "TEXT",
            "notNull": false
          },
          "description": {
            "type": "TEXT",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "asset_types_slug_context_meta_type_idx",
            "columns": [
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "asset_types_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "asset_types_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "a9c93be2"
      }
    },
    "@happyvertical/smrt-assets:AssetTypeCollection": {
      "name": "assettypecollection",
      "className": "AssetTypeCollection",
      "qualifiedName": "@happyvertical/smrt-assets:AssetTypeCollection",
      "collection": "assettypes",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset-types.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {},
      "methods": {
        "getOrCreate": {
          "name": "getOrCreate",
          "async": true,
          "parameters": [
            {
              "name": "slug",
              "type": "string",
              "optional": false
            },
            {
              "name": "name",
              "type": "string",
              "optional": true
            },
            {
              "name": "description",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<AssetType>",
          "isStatic": false,
          "isPublic": true
        },
        "initializeCommonTypes": {
          "name": "initializeCommonTypes",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "AssetType",
      "exportName": "AssetTypeCollection",
      "collectionExportName": "AssetTypeCollectionCollection",
      "schema": {
        "tableName": "asset_type_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_type_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "asset_type_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "asset_type_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "40007bcf"
      }
    },
    "@happyvertical/smrt-assets:Asset": {
      "name": "asset",
      "className": "Asset",
      "qualifiedName": "@happyvertical/smrt-assets:Asset",
      "collection": "assets",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/asset.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {
        "created_at": {
          "type": "datetime",
          "required": false
        },
        "updated_at": {
          "type": "datetime",
          "required": false
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "name": {
          "type": "text",
          "required": false
        },
        "sourceUri": {
          "type": "text",
          "required": false
        },
        "mimeType": {
          "type": "text",
          "required": false
        },
        "description": {
          "type": "text",
          "required": false
        },
        "metadata": {
          "type": "text",
          "required": false
        },
        "version": {
          "type": "integer",
          "required": true,
          "default": 1
        },
        "primaryVersionId": {
          "type": "foreignKey",
          "required": false,
          "related": "Asset"
        },
        "typeSlug": {
          "type": "text",
          "required": false
        },
        "statusSlug": {
          "type": "text",
          "required": false
        },
        "ownerProfileId": {
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile"
        },
        "sourceAssetId": {
          "type": "foreignKey",
          "required": false,
          "related": "Asset"
        },
        "folderId": {
          "type": "foreignKey",
          "required": false,
          "related": "Folder"
        },
        "sourceType": {
          "type": "text",
          "required": false
        },
        "externalId": {
          "type": "text",
          "required": false
        },
        "externalRefs": {
          "type": "text",
          "required": false
        },
        "createdAt": {
          "type": "text",
          "required": false
        },
        "updatedAt": {
          "type": "text",
          "required": false
        }
      },
      "methods": {
        "getAiUsageSnapshot": {
          "name": "getAiUsageSnapshot",
          "async": false,
          "parameters": [],
          "returnType": "AiUsageSnapshot | undefined",
          "isStatic": false,
          "isPublic": true
        },
        "resetAiUsage": {
          "name": "resetAiUsage",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "listAiUsage": {
          "name": "listAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageListOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<SmrtAiUsageRecord[]>",
          "isStatic": false,
          "isPublic": true
        },
        "summarizeAiUsage": {
          "name": "summarizeAiUsage",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiUsageSummaryOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<Record<string, AiUsageStats>>",
          "isStatic": false,
          "isPublic": true
        },
        "destroy": {
          "name": "destroy",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "markAsPersisted": {
          "name": "markAsPersisted",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "requireInsertOnSave": {
          "name": "requireInsertOnSave",
          "async": false,
          "parameters": [],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "initialize": {
          "name": "initialize",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "loadDataFromDb": {
          "name": "loadDataFromDb",
          "async": true,
          "parameters": [
            {
              "name": "data",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getFields": {
          "name": "getFields",
          "async": true,
          "parameters": [],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "toJSON": {
          "name": "toJSON",
          "async": false,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "toPlainObject": {
          "name": "toPlainObject",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "toPublicJSON": {
          "name": "toPublicJSON",
          "async": false,
          "parameters": [
            {
              "name": "options",
              "type": "PublicJsonOptions",
              "optional": true
            }
          ],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "getId": {
          "name": "getId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSlug": {
          "name": "getSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "getSavedId": {
          "name": "getSavedId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "isSaved": {
          "name": "isSaved",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "save": {
          "name": "save",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "classifyConstraintError": {
          "name": "classifyConstraintError",
          "async": false,
          "parameters": [
            {
              "name": "message",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "'unique' | 'not_null' | null",
          "isStatic": true,
          "isPublic": true
        },
        "loadFromId": {
          "name": "loadFromId",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "loadFromSlug": {
          "name": "loadFromSlug",
          "async": true,
          "parameters": [],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "is": {
          "name": "is",
          "async": true,
          "parameters": [
            {
              "name": "criteria",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "do": {
          "name": "do",
          "async": true,
          "parameters": [
            {
              "name": "instructions",
              "type": "string",
              "optional": false
            },
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "describe": {
          "name": "describe",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "AiOperationOptions",
              "optional": true
            }
          ],
          "returnType": "any",
          "isStatic": false,
          "isPublic": true
        },
        "delete": {
          "name": "delete",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "isRelatedLoaded": {
          "name": "isRelatedLoaded",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "boolean",
          "isStatic": false,
          "isPublic": true
        },
        "_setLoadedRelationship": {
          "name": "_setLoadedRelationship",
          "async": false,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "value",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelated": {
          "name": "loadRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "loadRelatedMany": {
          "name": "loadRelatedMany",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getRelated": {
          "name": "getRelated",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "opts",
              "type": "LoadRelatedOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<any>",
          "isStatic": false,
          "isPublic": true
        },
        "getAvailableTools": {
          "name": "getAvailableTools",
          "async": false,
          "parameters": [],
          "returnType": "AITool[]",
          "isStatic": false,
          "isPublic": true
        },
        "executeToolCall": {
          "name": "executeToolCall",
          "async": true,
          "parameters": [
            {
              "name": "toolCall",
              "type": "ToolCall",
              "optional": false
            }
          ],
          "returnType": "Promise<ToolCallResult>",
          "isStatic": false,
          "isPublic": true
        },
        "remember": {
          "name": "remember",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "recall": {
          "name": "recall",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "recallAll": {
          "name": "recallAll",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": true
            }
          ],
          "returnType": "Promise<Map<string>>",
          "isStatic": false,
          "isPublic": true
        },
        "forget": {
          "name": "forget",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "forgetScope": {
          "name": "forgetScope",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "object",
              "optional": false
            }
          ],
          "returnType": "Promise<number>",
          "isStatic": false,
          "isPublic": true
        },
        "generateEmbeddings": {
          "name": "generateEmbeddings",
          "async": true,
          "parameters": [
            {
              "name": "options",
              "type": "GenerateEmbeddingsOptions",
              "optional": true
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getEmbedding": {
          "name": "getEmbedding",
          "async": true,
          "parameters": [
            {
              "name": "fieldName",
              "type": "string",
              "optional": false
            },
            {
              "name": "model",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<number[] | null>",
          "isStatic": false,
          "isPublic": true
        },
        "hasStaleEmbeddings": {
          "name": "hasStaleEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "clearEmbeddings": {
          "name": "clearEmbeddings",
          "async": true,
          "parameters": [],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getMetadata": {
          "name": "getMetadata",
          "async": false,
          "parameters": [],
          "returnType": "Record<string>",
          "isStatic": false,
          "isPublic": true
        },
        "setMetadata": {
          "name": "setMetadata",
          "async": false,
          "parameters": [
            {
              "name": "metadata",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "mergeMetadata": {
          "name": "mergeMetadata",
          "async": false,
          "parameters": [
            {
              "name": "metadata",
              "type": "Record<string>",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "getExternalRefs": {
          "name": "getExternalRefs",
          "async": false,
          "parameters": [],
          "returnType": "Record<string, AssetExternalReference>",
          "isStatic": false,
          "isPublic": true
        },
        "getExternalRef": {
          "name": "getExternalRef",
          "async": false,
          "parameters": [
            {
              "name": "provider",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "AssetExternalReference | null",
          "isStatic": false,
          "isPublic": true
        },
        "setExternalRef": {
          "name": "setExternalRef",
          "async": false,
          "parameters": [
            {
              "name": "provider",
              "type": "string",
              "optional": false
            },
            {
              "name": "reference",
              "type": "any",
              "optional": false
            }
          ],
          "returnType": "void",
          "isStatic": false,
          "isPublic": true
        },
        "getTags": {
          "name": "getTags",
          "async": true,
          "parameters": [],
          "returnType": "Promise<Tag[]>",
          "isStatic": false,
          "isPublic": true
        },
        "hasTag": {
          "name": "hasTag",
          "async": true,
          "parameters": [
            {
              "name": "tagSlug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<boolean>",
          "isStatic": false,
          "isPublic": true
        },
        "getSource": {
          "name": "getSource",
          "async": true,
          "parameters": [],
          "returnType": "Promise<Asset | null>",
          "isStatic": false,
          "isPublic": true
        },
        "getDerivatives": {
          "name": "getDerivatives",
          "async": true,
          "parameters": [],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getType": {
          "name": "getType",
          "async": true,
          "parameters": [],
          "returnType": "Promise<AssetType | null>",
          "isStatic": false,
          "isPublic": true
        },
        "getStatus": {
          "name": "getStatus",
          "async": true,
          "parameters": [],
          "returnType": "Promise<AssetStatus | null>",
          "isStatic": false,
          "isPublic": true
        },
        "getAssociations": {
          "name": "getAssociations",
          "async": true,
          "parameters": [],
          "returnType": "Promise<AssetAssociation[]>",
          "isStatic": false,
          "isPublic": true
        },
        "associateWith": {
          "name": "associateWith",
          "async": true,
          "parameters": [
            {
              "name": "metaType",
              "type": "string",
              "optional": false
            },
            {
              "name": "metaId",
              "type": "string",
              "optional": false
            },
            {
              "name": "role",
              "type": "any",
              "optional": true,
              "default": "default"
            }
          ],
          "returnType": "Promise<AssetAssociation>",
          "isStatic": false,
          "isPublic": true
        },
        "getBySlug": {
          "name": "getBySlug",
          "async": true,
          "parameters": [
            {
              "name": "_slug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset | null>",
          "isStatic": true,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "tableStrategy": "sti",
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get",
            "create",
            "update"
          ]
        },
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context",
          "_meta_type"
        ]
      },
      "extends": "SmrtObject",
      "exportName": "Asset",
      "collectionExportName": "AssetCollection",
      "validationRules": [
        {
          "field": "version",
          "rule": "required",
          "fieldType": "integer"
        }
      ],
      "schema": {
        "tableName": "assets",
        "ddl": "CREATE TABLE IF NOT EXISTS \"assets\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"_meta_type\" TEXT NOT NULL,\n  \"_meta_data\" JSON,\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"tenant_id\" UUID,\n  \"name\" TEXT,\n  \"source_uri\" TEXT,\n  \"mime_type\" TEXT,\n  \"description\" TEXT,\n  \"metadata\" TEXT,\n  \"version\" INTEGER DEFAULT 1,\n  \"primary_version_id\" UUID,\n  \"type_slug\" TEXT,\n  \"status_slug\" TEXT,\n  \"owner_profile_id\" UUID,\n  \"source_asset_id\" UUID,\n  \"folder_id\" UUID,\n  \"source_type\" TEXT,\n  \"external_id\" TEXT,\n  \"external_refs\" TEXT\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "_meta_type": {
            "type": "TEXT",
            "notNull": true
          },
          "_meta_data": {
            "type": "JSON",
            "notNull": false
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false
          },
          "name": {
            "type": "TEXT",
            "notNull": false
          },
          "source_uri": {
            "type": "TEXT",
            "notNull": false
          },
          "mime_type": {
            "type": "TEXT",
            "notNull": false
          },
          "description": {
            "type": "TEXT",
            "notNull": false
          },
          "metadata": {
            "type": "TEXT",
            "notNull": false
          },
          "version": {
            "type": "INTEGER",
            "notNull": false,
            "default": 1
          },
          "primary_version_id": {
            "type": "UUID",
            "referenceKind": "foreignKey",
            "notNull": false
          },
          "type_slug": {
            "type": "TEXT",
            "notNull": false
          },
          "status_slug": {
            "type": "TEXT",
            "notNull": false
          },
          "owner_profile_id": {
            "type": "UUID",
            "referenceKind": "crossPackageRef",
            "notNull": false
          },
          "source_asset_id": {
            "type": "UUID",
            "referenceKind": "foreignKey",
            "notNull": false
          },
          "folder_id": {
            "type": "UUID",
            "referenceKind": "foreignKey",
            "notNull": false
          },
          "source_type": {
            "type": "TEXT",
            "notNull": false
          },
          "external_id": {
            "type": "TEXT",
            "notNull": false
          },
          "external_refs": {
            "type": "TEXT",
            "notNull": false
          }
        },
        "indexes": [
          {
            "name": "assets_slug_context_meta_type_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context",
              "_meta_type"
            ],
            "unique": true
          },
          {
            "name": "assets_meta_type_idx",
            "columns": [
              "_meta_type"
            ]
          },
          {
            "name": "assets_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          },
          {
            "name": "assets_primary_version_id_idx",
            "columns": [
              "primary_version_id"
            ]
          },
          {
            "name": "assets_owner_profile_id_idx",
            "columns": [
              "owner_profile_id"
            ]
          },
          {
            "name": "assets_source_asset_id_idx",
            "columns": [
              "source_asset_id"
            ]
          },
          {
            "name": "assets_folder_id_idx",
            "columns": [
              "folder_id"
            ]
          }
        ],
        "version": "7ee7aade"
      }
    },
    "@happyvertical/smrt-assets:AssetCollection": {
      "name": "assetcollection",
      "className": "AssetCollection",
      "qualifiedName": "@happyvertical/smrt-assets:AssetCollection",
      "collection": "assets",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/assets.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {},
      "methods": {
        "findByTenant": {
          "name": "findByTenant",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findGlobal": {
          "name": "findGlobal",
          "async": true,
          "parameters": [],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "findWithGlobals": {
          "name": "findWithGlobals",
          "async": true,
          "parameters": [
            {
              "name": "tenantId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "addTag": {
          "name": "addTag",
          "async": true,
          "parameters": [
            {
              "name": "assetId",
              "type": "string",
              "optional": false
            },
            {
              "name": "tagSlug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "removeTag": {
          "name": "removeTag",
          "async": true,
          "parameters": [
            {
              "name": "assetId",
              "type": "string",
              "optional": false
            },
            {
              "name": "tagSlug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getByTag": {
          "name": "getByTag",
          "async": true,
          "parameters": [
            {
              "name": "tagSlug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getByType": {
          "name": "getByType",
          "async": true,
          "parameters": [
            {
              "name": "typeSlug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getByStatus": {
          "name": "getByStatus",
          "async": true,
          "parameters": [
            {
              "name": "statusSlug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getByOwner": {
          "name": "getByOwner",
          "async": true,
          "parameters": [
            {
              "name": "ownerProfileId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "createNewVersion": {
          "name": "createNewVersion",
          "async": true,
          "parameters": [
            {
              "name": "primaryVersionId",
              "type": "string",
              "optional": false
            },
            {
              "name": "newSourceUri",
              "type": "string",
              "optional": false
            },
            {
              "name": "updates",
              "type": "Partial<Asset>",
              "optional": true
            }
          ],
          "returnType": "Promise<Asset>",
          "isStatic": false,
          "isPublic": true
        },
        "getLatestVersion": {
          "name": "getLatestVersion",
          "async": true,
          "parameters": [
            {
              "name": "primaryVersionId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset | null>",
          "isStatic": false,
          "isPublic": true
        },
        "listVersions": {
          "name": "listVersions",
          "async": true,
          "parameters": [
            {
              "name": "primaryVersionId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getDerivatives": {
          "name": "getDerivatives",
          "async": true,
          "parameters": [
            {
              "name": "sourceAssetId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getByMimeType": {
          "name": "getByMimeType",
          "async": true,
          "parameters": [
            {
              "name": "mimePattern",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "rollbackToVersion": {
          "name": "rollbackToVersion",
          "async": true,
          "parameters": [
            {
              "name": "primaryVersionId",
              "type": "string",
              "optional": false
            },
            {
              "name": "targetVersion",
              "type": "number",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset>",
          "isStatic": false,
          "isPublic": true
        },
        "getByFolder": {
          "name": "getByFolder",
          "async": true,
          "parameters": [
            {
              "name": "folderId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "Asset",
      "exportName": "AssetCollection",
      "collectionExportName": "AssetCollectionCollection",
      "schema": {
        "tableName": "asset_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"asset_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "asset_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "asset_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "74006cef"
      }
    },
    "@happyvertical/smrt-assets:Folder": {
      "name": "folder",
      "className": "Folder",
      "qualifiedName": "@happyvertical/smrt-assets:Folder",
      "collection": "folders",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/folder.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {
        "parentId": {
          "type": "foreignKey",
          "required": false,
          "related": "Folder",
          "_meta": {
            "nullable": true
          }
        },
        "tenantId": {
          "type": "text",
          "required": false,
          "_meta": {
            "sqlType": "UUID",
            "nullable": true,
            "__tenancy": {
              "isTenantIdField": true,
              "autoFilter": true,
              "required": false,
              "autoPopulate": true,
              "nullable": true,
              "mode": "optional",
              "field": "tenantId",
              "allowSuperAdminBypass": false
            }
          }
        },
        "name": {
          "type": "text",
          "required": false
        },
        "description": {
          "type": "text",
          "required": false
        },
        "ownerProfileId": {
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile"
        },
        "createdAt": {
          "type": "text",
          "required": false
        },
        "updatedAt": {
          "type": "text",
          "required": false
        }
      },
      "methods": {
        "getParent": {
          "name": "getParent",
          "async": true,
          "parameters": [],
          "returnType": "Promise<null>",
          "isStatic": false,
          "isPublic": true
        },
        "getChildren": {
          "name": "getChildren",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "getAncestors": {
          "name": "getAncestors",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "getDescendants": {
          "name": "getDescendants",
          "async": true,
          "parameters": [],
          "returnType": "Promise",
          "isStatic": false,
          "isPublic": true
        },
        "getHierarchy": {
          "name": "getHierarchy",
          "async": true,
          "parameters": [],
          "returnType": "Promise<HierarchyView>",
          "isStatic": false,
          "isPublic": true
        },
        "moveTo": {
          "name": "moveTo",
          "async": true,
          "parameters": [
            {
              "name": "newParent",
              "type": "string | null",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        },
        "getBySlug": {
          "name": "getBySlug",
          "async": true,
          "parameters": [
            {
              "name": "_slug",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Folder | null>",
          "isStatic": true,
          "isPublic": true
        }
      },
      "decoratorConfig": {
        "api": {
          "include": [
            "list",
            "get",
            "create",
            "update",
            "delete"
          ]
        },
        "mcp": {
          "include": [
            "list",
            "get",
            "create",
            "update"
          ]
        },
        "cli": true,
        "tenantScoped": {
          "mode": "optional"
        },
        "conflictColumns": [
          "tenant_id",
          "slug",
          "context"
        ]
      },
      "extends": "SmrtHierarchical",
      "exportName": "Folder",
      "collectionExportName": "FolderCollection",
      "schema": {
        "tableName": "folders",
        "ddl": "CREATE TABLE IF NOT EXISTS \"folders\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"parent_id\" UUID,\n  \"tenant_id\" UUID,\n  \"name\" TEXT,\n  \"description\" TEXT,\n  \"owner_profile_id\" UUID\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "parent_id": {
            "type": "UUID",
            "referenceKind": "foreignKey",
            "notNull": false,
            "unique": false
          },
          "tenant_id": {
            "type": "UUID",
            "referenceKind": "tenantId",
            "notNull": false,
            "unique": false
          },
          "name": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "description": {
            "type": "TEXT",
            "notNull": false,
            "unique": false
          },
          "owner_profile_id": {
            "type": "UUID",
            "referenceKind": "crossPackageRef",
            "notNull": false,
            "unique": false
          }
        },
        "indexes": [
          {
            "name": "folders_slug_context_idx",
            "columns": [
              "tenant_id",
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "folders_tenant_id_created_at_idx",
            "columns": [
              "tenant_id",
              "created_at"
            ]
          },
          {
            "name": "folders_parent_id_idx",
            "columns": [
              "parent_id"
            ]
          },
          {
            "name": "folders_owner_profile_id_idx",
            "columns": [
              "owner_profile_id"
            ]
          }
        ],
        "version": "011c222c"
      }
    },
    "@happyvertical/smrt-assets:FolderCollection": {
      "name": "foldercollection",
      "className": "FolderCollection",
      "qualifiedName": "@happyvertical/smrt-assets:FolderCollection",
      "collection": "folders",
      "filePath": "/home/runner/work/smrt/smrt/packages/assets/src/folders.ts",
      "packageName": "@happyvertical/smrt-assets",
      "fields": {},
      "methods": {
        "getTree": {
          "name": "getTree",
          "async": true,
          "parameters": [
            {
              "name": "rootId",
              "type": "string",
              "optional": true
            }
          ],
          "returnType": "Promise<Folder[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getPath": {
          "name": "getPath",
          "async": true,
          "parameters": [
            {
              "name": "folderId",
              "type": "string",
              "optional": false
            }
          ],
          "returnType": "Promise<Folder[]>",
          "isStatic": false,
          "isPublic": true
        },
        "getContents": {
          "name": "getContents",
          "async": true,
          "parameters": [
            {
              "name": "folderId",
              "type": "string",
              "optional": false
            },
            {
              "name": "assetCollection",
              "type": "AssetCollection",
              "optional": false
            }
          ],
          "returnType": "Promise<Asset[]>",
          "isStatic": false,
          "isPublic": true
        },
        "moveAsset": {
          "name": "moveAsset",
          "async": true,
          "parameters": [
            {
              "name": "asset",
              "type": "Asset",
              "optional": false
            },
            {
              "name": "folderId",
              "type": "string | null",
              "optional": false
            }
          ],
          "returnType": "Promise<void>",
          "isStatic": false,
          "isPublic": true
        }
      },
      "decoratorConfig": {},
      "extends": "SmrtCollection",
      "extendsTypeArg": "Folder",
      "exportName": "FolderCollection",
      "collectionExportName": "FolderCollectionCollection",
      "schema": {
        "tableName": "folder_collections",
        "ddl": "CREATE TABLE IF NOT EXISTS \"folder_collections\" (\n  \"id\" UUID PRIMARY KEY NOT NULL,\n  \"slug\" TEXT NOT NULL,\n  \"context\" TEXT NOT NULL DEFAULT '',\n  \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n  \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
        "columns": {
          "id": {
            "type": "UUID",
            "primaryKey": true,
            "referenceKind": "id",
            "notNull": true
          },
          "slug": {
            "type": "TEXT",
            "notNull": true
          },
          "context": {
            "type": "TEXT",
            "notNull": true,
            "default": ""
          },
          "created_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          },
          "updated_at": {
            "type": "TIMESTAMP",
            "notNull": true,
            "default": "current_timestamp"
          }
        },
        "indexes": [
          {
            "name": "folder_collections_slug_context_idx",
            "columns": [
              "slug",
              "context"
            ],
            "unique": true
          },
          {
            "name": "folder_collections_created_at_idx",
            "columns": [
              "created_at"
            ]
          }
        ],
        "version": "7d4c3d6f"
      }
    }
  },
  "moduleType": "smrt",
  "smrtDependencies": [
    "@happyvertical/smrt-core",
    "@happyvertical/smrt-tags",
    "@happyvertical/smrt-tenancy"
  ]
}