@happyvertical/smrt-images 0.49.2 → 0.49.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/manifest.json +148 -8
- package/dist/smrt-knowledge.json +4 -4
- package/package.json +9 -9
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { join } from "node:path";
|
|
|
7
7
|
import { Asset, persistMediaBundleInspection as persistImageMediaBundleInspection } from "@happyvertical/smrt-assets";
|
|
8
8
|
import { TenantIsolationError, TenantScoped, getCurrentTenant, isSuperAdminBypass } from "@happyvertical/smrt-tenancy";
|
|
9
9
|
//#region src/__smrt-register__.ts
|
|
10
|
-
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-images\",\"packageVersion\":\"0.49.2\",\"objects\":{\"@happyvertical/smrt-images:Image\":{\"name\":\"image\",\"className\":\"Image\",\"qualifiedName\":\"@happyvertical/smrt-images:Image\",\"collection\":\"assets\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/images/src/image.ts\",\"packageName\":\"@happyvertical/smrt-images\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"generated\":true,\"source\":\"tenantScoped_decorator\",\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"autoFilter\":true,\"autoPopulate\":true,\"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},\"width\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"height\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"alt\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"mergeMetadata\":{\"name\":\"mergeMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"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,\"typeUnresolved\":true}],\"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},\"isValidImageFormat\":{\"name\":\"isValidImageFormat\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isHighResolution\":{\"name\":\"isHighResolution\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"generateAltText\":{\"name\":\"generateAltText\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<string>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"generateAltText\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"assets\",\"tableStrategy\":\"sti\"},\"extends\":\"Asset\",\"exportName\":\"Image\",\"collectionExportName\":\"ImageCollection\",\"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 \\\"width\\\" INTEGER DEFAULT 0,\\n \\\"height\\\" INTEGER DEFAULT 0,\\n \\\"alt\\\" TEXT DEFAULT ''\\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,\"foreignKey\":{\"table\":\"assets\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"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,\"foreignKey\":{\"table\":\"assets\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"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},\"width\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"height\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"alt\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"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\":\"dd79a8b6\"}},\"@happyvertical/smrt-images:ImageCollection\":{\"name\":\"imagecollection\",\"className\":\"ImageCollection\",\"qualifiedName\":\"@happyvertical/smrt-images:ImageCollection\",\"collection\":\"assets\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/images/src/images.ts\",\"packageName\":\"@happyvertical/smrt-images\",\"fields\":{},\"methods\":{\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getByMinDimensions\":{\"name\":\"getByMinDimensions\",\"async\":true,\"parameters\":[{\"name\":\"minWidth\",\"type\":\"number\",\"optional\":false},{\"name\":\"minHeight\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getByMaxDimensions\":{\"name\":\"getByMaxDimensions\",\"async\":true,\"parameters\":[{\"name\":\"maxWidth\",\"type\":\"number\",\"optional\":false},{\"name\":\"maxHeight\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getLandscape\":{\"name\":\"getLandscape\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getPortrait\":{\"name\":\"getPortrait\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getSquare\":{\"name\":\"getSquare\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getMissingAltText\":{\"name\":\"getMissingAltText\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getHighResolution\":{\"name\":\"getHighResolution\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getByAspectRatio\":{\"name\":\"getByAspectRatio\",\"async\":true,\"parameters\":[{\"name\":\"minRatio\",\"type\":\"number\",\"optional\":false},{\"name\":\"maxRatio\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"assets\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Image\",\"exportName\":\"ImageCollection\",\"collectionExportName\":\"ImageCollectionCollection\",\"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 \\\"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\":\"assets_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"assets_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"90ab8d34\"}}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-assets\",\"@happyvertical/smrt-core\",\"@happyvertical/smrt-prompts\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
10
|
+
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-images\",\"packageVersion\":\"0.49.4\",\"objects\":{\"@happyvertical/smrt-images:Image\":{\"name\":\"image\",\"className\":\"Image\",\"qualifiedName\":\"@happyvertical/smrt-images:Image\",\"collection\":\"assets\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/images/src/image.ts\",\"packageName\":\"@happyvertical/smrt-images\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"generated\":true,\"source\":\"tenantScoped_decorator\",\"sqlType\":\"UUID\",\"__tenancy\":{\"isTenantIdField\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"autoFilter\":true,\"autoPopulate\":true,\"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},\"width\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"height\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"alt\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"mergeMetadata\":{\"name\":\"mergeMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"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,\"typeUnresolved\":true}],\"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},\"isValidImageFormat\":{\"name\":\"isValidImageFormat\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isHighResolution\":{\"name\":\"isHighResolution\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"generateAltText\":{\"name\":\"generateAltText\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<string>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"generateAltText\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"tableName\":\"assets\",\"tableStrategy\":\"sti\"},\"extends\":\"Asset\",\"exportName\":\"Image\",\"collectionExportName\":\"ImageCollection\",\"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 \\\"width\\\" INTEGER DEFAULT 0,\\n \\\"height\\\" INTEGER DEFAULT 0,\\n \\\"alt\\\" TEXT DEFAULT ''\\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,\"foreignKey\":{\"table\":\"assets\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"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,\"foreignKey\":{\"table\":\"assets\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"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},\"width\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"height\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"alt\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"assets_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":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\":\"dd79a8b6\"}},\"@happyvertical/smrt-images:ImageCollection\":{\"name\":\"imagecollection\",\"className\":\"ImageCollection\",\"qualifiedName\":\"@happyvertical/smrt-images:ImageCollection\",\"collection\":\"assets\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/images/src/images.ts\",\"packageName\":\"@happyvertical/smrt-images\",\"fields\":{},\"methods\":{\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getByMinDimensions\":{\"name\":\"getByMinDimensions\",\"async\":true,\"parameters\":[{\"name\":\"minWidth\",\"type\":\"number\",\"optional\":false},{\"name\":\"minHeight\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getByMaxDimensions\":{\"name\":\"getByMaxDimensions\",\"async\":true,\"parameters\":[{\"name\":\"maxWidth\",\"type\":\"number\",\"optional\":false},{\"name\":\"maxHeight\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getLandscape\":{\"name\":\"getLandscape\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getPortrait\":{\"name\":\"getPortrait\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getSquare\":{\"name\":\"getSquare\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getMissingAltText\":{\"name\":\"getMissingAltText\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getHighResolution\":{\"name\":\"getHighResolution\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true},\"getByAspectRatio\":{\"name\":\"getByAspectRatio\",\"async\":true,\"parameters\":[{\"name\":\"minRatio\",\"type\":\"number\",\"optional\":false},{\"name\":\"maxRatio\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<Image[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"assets\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Image\",\"exportName\":\"ImageCollection\",\"collectionExportName\":\"ImageCollectionCollection\",\"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 \\\"width\\\" INTEGER DEFAULT 0,\\n \\\"height\\\" INTEGER DEFAULT 0,\\n \\\"alt\\\" TEXT DEFAULT ''\\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,\"foreignKey\":{\"table\":\"assets\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"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,\"foreignKey\":{\"table\":\"assets\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"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},\"width\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"height\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"alt\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"assets_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":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\":\"dd79a8b6\"}}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-assets\",\"@happyvertical/smrt-core\",\"@happyvertical/smrt-prompts\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
11
11
|
//#endregion
|
|
12
12
|
//#region src/prompts.ts
|
|
13
13
|
var smrtImagesGenerateAltTextPrompt = definePrompt({
|
package/dist/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"timestamp": 0,
|
|
4
4
|
"packageName": "@happyvertical/smrt-images",
|
|
5
|
-
"packageVersion": "0.49.
|
|
5
|
+
"packageVersion": "0.49.4",
|
|
6
6
|
"objects": {
|
|
7
7
|
"@happyvertical/smrt-images:Image": {
|
|
8
8
|
"name": "image",
|
|
@@ -513,7 +513,8 @@
|
|
|
513
513
|
"context",
|
|
514
514
|
"_meta_type"
|
|
515
515
|
],
|
|
516
|
-
"unique": true
|
|
516
|
+
"unique": true,
|
|
517
|
+
"nullsNotDistinct": true
|
|
517
518
|
},
|
|
518
519
|
{
|
|
519
520
|
"name": "assets_meta_type_idx",
|
|
@@ -708,7 +709,7 @@
|
|
|
708
709
|
"collectionExportName": "ImageCollectionCollection",
|
|
709
710
|
"schema": {
|
|
710
711
|
"tableName": "assets",
|
|
711
|
-
"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 \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
|
|
712
|
+
"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 \"width\" INTEGER DEFAULT 0,\n \"height\" INTEGER DEFAULT 0,\n \"alt\" TEXT DEFAULT ''\n);",
|
|
712
713
|
"columns": {
|
|
713
714
|
"id": {
|
|
714
715
|
"type": "UUID",
|
|
@@ -725,6 +726,14 @@
|
|
|
725
726
|
"notNull": true,
|
|
726
727
|
"default": ""
|
|
727
728
|
},
|
|
729
|
+
"_meta_type": {
|
|
730
|
+
"type": "TEXT",
|
|
731
|
+
"notNull": true
|
|
732
|
+
},
|
|
733
|
+
"_meta_data": {
|
|
734
|
+
"type": "JSON",
|
|
735
|
+
"notNull": false
|
|
736
|
+
},
|
|
728
737
|
"created_at": {
|
|
729
738
|
"type": "TIMESTAMP",
|
|
730
739
|
"notNull": true,
|
|
@@ -734,25 +743,156 @@
|
|
|
734
743
|
"type": "TIMESTAMP",
|
|
735
744
|
"notNull": true,
|
|
736
745
|
"default": "current_timestamp"
|
|
746
|
+
},
|
|
747
|
+
"tenant_id": {
|
|
748
|
+
"type": "UUID",
|
|
749
|
+
"referenceKind": "tenantId",
|
|
750
|
+
"notNull": false
|
|
751
|
+
},
|
|
752
|
+
"name": {
|
|
753
|
+
"type": "TEXT",
|
|
754
|
+
"notNull": false
|
|
755
|
+
},
|
|
756
|
+
"source_uri": {
|
|
757
|
+
"type": "TEXT",
|
|
758
|
+
"notNull": false
|
|
759
|
+
},
|
|
760
|
+
"mime_type": {
|
|
761
|
+
"type": "TEXT",
|
|
762
|
+
"notNull": false
|
|
763
|
+
},
|
|
764
|
+
"description": {
|
|
765
|
+
"type": "TEXT",
|
|
766
|
+
"notNull": false
|
|
767
|
+
},
|
|
768
|
+
"metadata": {
|
|
769
|
+
"type": "TEXT",
|
|
770
|
+
"notNull": false
|
|
771
|
+
},
|
|
772
|
+
"version": {
|
|
773
|
+
"type": "INTEGER",
|
|
774
|
+
"notNull": false,
|
|
775
|
+
"default": 1
|
|
776
|
+
},
|
|
777
|
+
"primary_version_id": {
|
|
778
|
+
"type": "UUID",
|
|
779
|
+
"referenceKind": "foreignKey",
|
|
780
|
+
"notNull": false,
|
|
781
|
+
"foreignKey": {
|
|
782
|
+
"table": "assets",
|
|
783
|
+
"column": "id",
|
|
784
|
+
"onDelete": "NO ACTION",
|
|
785
|
+
"onUpdate": "CASCADE"
|
|
786
|
+
}
|
|
787
|
+
},
|
|
788
|
+
"type_slug": {
|
|
789
|
+
"type": "TEXT",
|
|
790
|
+
"notNull": false
|
|
791
|
+
},
|
|
792
|
+
"status_slug": {
|
|
793
|
+
"type": "TEXT",
|
|
794
|
+
"notNull": false
|
|
795
|
+
},
|
|
796
|
+
"owner_profile_id": {
|
|
797
|
+
"type": "UUID",
|
|
798
|
+
"referenceKind": "crossPackageRef",
|
|
799
|
+
"notNull": false
|
|
800
|
+
},
|
|
801
|
+
"source_asset_id": {
|
|
802
|
+
"type": "UUID",
|
|
803
|
+
"referenceKind": "foreignKey",
|
|
804
|
+
"notNull": false,
|
|
805
|
+
"foreignKey": {
|
|
806
|
+
"table": "assets",
|
|
807
|
+
"column": "id",
|
|
808
|
+
"onDelete": "NO ACTION",
|
|
809
|
+
"onUpdate": "CASCADE"
|
|
810
|
+
}
|
|
811
|
+
},
|
|
812
|
+
"folder_id": {
|
|
813
|
+
"type": "UUID",
|
|
814
|
+
"referenceKind": "foreignKey",
|
|
815
|
+
"notNull": false
|
|
816
|
+
},
|
|
817
|
+
"source_type": {
|
|
818
|
+
"type": "TEXT",
|
|
819
|
+
"notNull": false
|
|
820
|
+
},
|
|
821
|
+
"external_id": {
|
|
822
|
+
"type": "TEXT",
|
|
823
|
+
"notNull": false
|
|
824
|
+
},
|
|
825
|
+
"external_refs": {
|
|
826
|
+
"type": "TEXT",
|
|
827
|
+
"notNull": false
|
|
828
|
+
},
|
|
829
|
+
"width": {
|
|
830
|
+
"type": "INTEGER",
|
|
831
|
+
"notNull": false,
|
|
832
|
+
"default": 0
|
|
833
|
+
},
|
|
834
|
+
"height": {
|
|
835
|
+
"type": "INTEGER",
|
|
836
|
+
"notNull": false,
|
|
837
|
+
"default": 0
|
|
838
|
+
},
|
|
839
|
+
"alt": {
|
|
840
|
+
"type": "TEXT",
|
|
841
|
+
"notNull": false,
|
|
842
|
+
"default": ""
|
|
737
843
|
}
|
|
738
844
|
},
|
|
739
845
|
"indexes": [
|
|
740
846
|
{
|
|
741
|
-
"name": "
|
|
847
|
+
"name": "assets_slug_context_meta_type_idx",
|
|
742
848
|
"columns": [
|
|
849
|
+
"tenant_id",
|
|
743
850
|
"slug",
|
|
744
|
-
"context"
|
|
851
|
+
"context",
|
|
852
|
+
"_meta_type"
|
|
745
853
|
],
|
|
746
|
-
"unique": true
|
|
854
|
+
"unique": true,
|
|
855
|
+
"nullsNotDistinct": true
|
|
747
856
|
},
|
|
748
857
|
{
|
|
749
|
-
"name": "
|
|
858
|
+
"name": "assets_meta_type_idx",
|
|
859
|
+
"columns": [
|
|
860
|
+
"_meta_type"
|
|
861
|
+
]
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"name": "assets_tenant_id_created_at_idx",
|
|
750
865
|
"columns": [
|
|
866
|
+
"tenant_id",
|
|
751
867
|
"created_at"
|
|
752
868
|
]
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"name": "assets_primary_version_id_idx",
|
|
872
|
+
"columns": [
|
|
873
|
+
"primary_version_id"
|
|
874
|
+
]
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"name": "assets_owner_profile_id_idx",
|
|
878
|
+
"columns": [
|
|
879
|
+
"owner_profile_id"
|
|
880
|
+
]
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"name": "assets_source_asset_id_idx",
|
|
884
|
+
"columns": [
|
|
885
|
+
"source_asset_id"
|
|
886
|
+
]
|
|
887
|
+
},
|
|
888
|
+
{
|
|
889
|
+
"name": "assets_folder_id_idx",
|
|
890
|
+
"columns": [
|
|
891
|
+
"folder_id"
|
|
892
|
+
]
|
|
753
893
|
}
|
|
754
894
|
],
|
|
755
|
-
"version": "
|
|
895
|
+
"version": "dd79a8b6"
|
|
756
896
|
}
|
|
757
897
|
}
|
|
758
898
|
},
|
package/dist/smrt-knowledge.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"sensitiveFieldsExcluded": true,
|
|
4
4
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
5
5
|
"packageName": "@happyvertical/smrt-images",
|
|
6
|
-
"packageVersion": "0.49.
|
|
6
|
+
"packageVersion": "0.49.4",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
10
|
+
"manifest": "14a99999e289be68f9efcb1bfb7b82e5b800b9ff7cb70247c904affcf55e2894",
|
|
11
|
+
"packageJson": "218bb6f4e327f83e3508a9a82e06778110ddba9fccb4c5d34d780bcc3f88bb0e",
|
|
12
12
|
"agents": "b0cf63bd78f00cc1729ea7f1425291f8e23ab5591161cbbf0d08f4b16ace07fd"
|
|
13
13
|
},
|
|
14
14
|
"exports": [
|
|
@@ -1497,7 +1497,7 @@
|
|
|
1497
1497
|
"junctionCollections": 0,
|
|
1498
1498
|
"hierarchicalObjects": 0,
|
|
1499
1499
|
"polymorphicAssociations": 0,
|
|
1500
|
-
"uuidColumns":
|
|
1500
|
+
"uuidColumns": 12
|
|
1501
1501
|
},
|
|
1502
1502
|
"agentDoc": "# @happyvertical/smrt-images\n\nImage management with AI categorization, editing, and metadata extraction. Extends Asset via cross-package STI.\n\n## Models\n\n- **Image**: STI subclass of Asset (from smrt-assets) — stored in same `assets` table with `_meta_type='Image'`. Adds `width`, `height`, `alt` text.\n\n## Key Services\n\n- **ImageCollection**: dimension/orientation filters — `getByMinDimensions()`, `getByAspectRatio()`, `getLandscape()`, `getPortrait()`, `getSquare()`, `getHighResolution()`, `getMissingAltText()`\n- **ImageMetadataExtractor**: dimensions, format, EXIF from buffers (via `@happyvertical/images`)\n- **ImageCategorizer**: AI vision analysis → tags, description, confidence, subjects (via `@happyvertical/ai`)\n- **ImageEditor**: resize/crop/convert/thumbnail + AI editing. Creates new Image records with `parentId` linking to source.\n- **ImageDeriver**: creates derived images and, when requested, records source provenance through generic `AssetAssociation` links\n- **ImageSearch**: text search across name/description/alt with orientation filters\n- **UpstreamManager**: import from external providers with provenance tracking\n\n## AI Operations\n\n`generateAltText()` uses the `smrtImages.image.generateAltText` prompt registered via `@happyvertical/smrt-prompts` (resolves tenant overrides via `resolvePrompt()` then dispatches through `getAiClient().message()`). Computed properties: `isLandscape`, `isPortrait`, `aspectRatio`.\n\n## Prompt Registry\n\n`Image.generateAltText()` is registered with `@happyvertical/smrt-prompts` so tenants can override template/model/params at runtime:\n\n```typescript\nimport { smrtImagesGenerateAltTextPrompt } from '@happyvertical/smrt-images';\n// key: 'smrtImages.image.generateAltText'\n```\n\nOnly non-PII metadata fields are passed to the AI provider: `name`, `description`. Source URIs, internal foreign-key fields (`parentId`, `tenantId`), and the extensible `metadata` blob are intentionally excluded — source URIs may embed signed/private bucket paths and `metadata` may contain EXIF GPS data or tenant-private configuration.\n\n## UI Registry\n\nSvelte components auto-register with `ModuleUIRegistry` on import of `@happyvertical/smrt-images/svelte`. UI slot declarations live in `src/ui.ts` and are exported via `@happyvertical/smrt-images/ui`:\n\n- `assets-gallery` — `AssetsGallery.svelte`\n- `image-editor` — `ImageEditor.svelte`\n- `image-uploader` — `ImageUploader.svelte`\n\n## Gotchas\n\n- **Cross-package STI**: Image extends Asset from different package — fragile if Asset schema changes\n- **AssetAssociation usage is intentional here**: image derivation uses it for provenance, not for base-model-owned asset storage\n- **Editor bypasses collection.create()**: creates Image instances directly (skips collection validation)\n- **Derivative creation**: 3 DB calls — `collection.create()` + `store.storeFile()` + `save()`\n- **Orientation filtering is in-memory**: queries all images, then filters by dimensions\n"
|
|
1503
1503
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-images",
|
|
3
|
-
"version": "0.49.
|
|
3
|
+
"version": "0.49.4",
|
|
4
4
|
"description": "Image asset management with AI-powered categorization, search, editing, and metadata extraction for SMRT framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"smrtRawPrimitives": "strict",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@happyvertical/ai": "^0.89.6",
|
|
42
42
|
"@happyvertical/images": "^0.89.6",
|
|
43
|
-
"@happyvertical/smrt-assets": "0.49.
|
|
44
|
-
"@happyvertical/smrt-core": "0.49.
|
|
45
|
-
"@happyvertical/smrt-prompts": "0.49.
|
|
46
|
-
"@happyvertical/smrt-tenancy": "0.49.
|
|
47
|
-
"@happyvertical/smrt-types": "0.49.
|
|
48
|
-
"@happyvertical/smrt-ui": "0.49.
|
|
43
|
+
"@happyvertical/smrt-assets": "0.49.4",
|
|
44
|
+
"@happyvertical/smrt-core": "0.49.4",
|
|
45
|
+
"@happyvertical/smrt-prompts": "0.49.4",
|
|
46
|
+
"@happyvertical/smrt-tenancy": "0.49.4",
|
|
47
|
+
"@happyvertical/smrt-types": "0.49.4",
|
|
48
|
+
"@happyvertical/smrt-ui": "0.49.4",
|
|
49
49
|
"@happyvertical/utils": "^0.89.6",
|
|
50
50
|
"jimp": "^1.6.1",
|
|
51
51
|
"sharp": "^0.35.4"
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"svelte": "^5.56.4"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@happyvertical/smrt-playground": "0.49.
|
|
58
|
-
"@happyvertical/smrt-vitest": "0.49.
|
|
57
|
+
"@happyvertical/smrt-playground": "0.49.4",
|
|
58
|
+
"@happyvertical/smrt-vitest": "0.49.4",
|
|
59
59
|
"@happyvertical/sql": "^0.89.6",
|
|
60
60
|
"@sveltejs/kit": "^2.69.1",
|
|
61
61
|
"@sveltejs/package": "^2.5.8",
|