@happyvertical/smrt-messages 0.57.52 → 0.58.0
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/chunks/{AccountCollection-CV8iICEf.js → AccountCollection-CGNYakaO.js} +2 -2
- package/dist/chunks/{AccountCollection-CV8iICEf.js.map → AccountCollection-CGNYakaO.js.map} +1 -1
- package/dist/chunks/{Email-Dq8qJKmo.js → Email-B7jCRz_O.js} +3 -3
- package/dist/chunks/{Email-Dq8qJKmo.js.map → Email-B7jCRz_O.js.map} +1 -1
- package/dist/chunks/{EmailFolder-B_YCXYDp.js → EmailFolder-C8MgZMsg.js} +2 -2
- package/dist/chunks/{EmailFolder-B_YCXYDp.js.map → EmailFolder-C8MgZMsg.js.map} +1 -1
- package/dist/chunks/{Message-CiCzpNEC.js → Message-BItpSs8j.js} +4 -4
- package/dist/chunks/{Message-CiCzpNEC.js.map → Message-BItpSs8j.js.map} +1 -1
- package/dist/chunks/{MessageCollection-HjNzdEuh.js → MessageCollection-DXcfjQEe.js} +2 -2
- package/dist/chunks/{MessageCollection-HjNzdEuh.js.map → MessageCollection-DXcfjQEe.js.map} +1 -1
- package/dist/chunks/__smrt-register__-Clr40cyC.js +6 -0
- package/dist/chunks/__smrt-register__-Clr40cyC.js.map +1 -0
- package/dist/index.js +9 -9
- package/dist/manifest.json +1 -1
- package/dist/smrt-knowledge.json +3 -3
- package/package.json +9 -9
- package/dist/chunks/__smrt-register__-C-M0NcUX.js +0 -6
- package/dist/chunks/__smrt-register__-C-M0NcUX.js.map +0 -1
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ObjectRegistry } from "@happyvertical/smrt-core";
|
|
2
|
-
//#region src/__smrt-register__.ts
|
|
3
|
-
ObjectRegistry.registerPackageManifest(JSON.parse(`{"version":"1.0.0","timestamp":0,"packageName":"@happyvertical/smrt-messages","packageVersion":"0.57.52","objects":{"@happyvertical/smrt-messages:AccountCollection":{"name":"accountcollection","className":"AccountCollection","qualifiedName":"@happyvertical/smrt-messages:AccountCollection","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/AccountCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"getActive":{"name":"getActive","async":true,"parameters":[],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"getInactive":{"name":"getInactive","async":true,"parameters":[],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"getByProviderType":{"name":"getByProviderType","async":true,"parameters":[{"name":"providerType","type":"string","optional":false}],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"getByType":{"name":"getByType","async":true,"parameters":[{"name":"accountType","type":"string","optional":false}],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"search":{"name":"search","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"filters","type":"AccountSearchFilters","optional":true}],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"getStats":{"name":"getStats","async":true,"parameters":[],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"Account","exportName":"AccountCollection","collectionExportName":"AccountCollectionCollection","collectionOf":"@happyvertical/smrt-messages:Account","inheritedExposure":["api","mcp","cli"],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:AttachmentCollection":{"name":"attachmentcollection","className":"AttachmentCollection","qualifiedName":"@happyvertical/smrt-messages:AttachmentCollection","collection":"attachments","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/AttachmentCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"getByMessage":{"name":"getByMessage","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getByContentType":{"name":"getByContentType","async":true,"parameters":[{"name":"contentType","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getImages":{"name":"getImages","async":true,"parameters":[{"name":"messageId","type":"string","optional":true}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getPdfs":{"name":"getPdfs","async":true,"parameters":[{"name":"messageId","type":"string","optional":true}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getInline":{"name":"getInline","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getRegular":{"name":"getRegular","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getWithExternalFiles":{"name":"getWithExternalFiles","async":true,"parameters":[],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getTotalSize":{"name":"getTotalSize","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"getLargest":{"name":"getLargest","async":true,"parameters":[{"name":"limit","type":"any","optional":true}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"searchByFilename":{"name":"searchByFilename","async":true,"parameters":[{"name":"query","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getByExtension":{"name":"getByExtension","async":true,"parameters":[{"name":"extension","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getStats":{"name":"getStats","async":true,"parameters":[],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"deleteByMessage":{"name":"deleteByMessage","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"Attachment","exportName":"AttachmentCollection","collectionExportName":"AttachmentCollectionCollection","collectionOf":"@happyvertical/smrt-messages:Attachment","inheritedExposure":["api","mcp"],"schema":{"tableName":"attachments","ddl":"CREATE TABLE IF NOT EXISTS \\"attachments\\" (\\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 \\"tenant_id\\" UUID,\\n \\"message_id\\" UUID,\\n \\"filename\\" TEXT,\\n \\"content_type\\" TEXT,\\n \\"size\\" INTEGER NOT NULL DEFAULT 0,\\n \\"content_id\\" TEXT,\\n \\"content_disposition\\" TEXT DEFAULT 'attachment',\\n \\"file_path\\" TEXT,\\n \\"source_url\\" TEXT\\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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"filename":{"type":"TEXT","notNull":false,"unique":false},"content_type":{"type":"TEXT","notNull":false,"unique":false},"size":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"content_id":{"type":"TEXT","notNull":false,"unique":false},"content_disposition":{"type":"TEXT","notNull":false,"unique":false,"default":"attachment"},"file_path":{"type":"TEXT","notNull":false,"unique":false},"source_url":{"type":"TEXT","notNull":false,"unique":false}},"indexes":[{"name":"attachments_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"attachments_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"attachments_message_id_idx","columns":["message_id"]}],"version":"ee5ae0dd"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:BlacklistCollection":{"name":"blacklistcollection","className":"BlacklistCollection","qualifiedName":"@happyvertical/smrt-messages:BlacklistCollection","collection":"blacklists","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/BlacklistCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"isBlacklisted":{"name":"isBlacklisted","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getMatchingEntry":{"name":"getMatchingEntry","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<Blacklist | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]}},"extends":"SmrtCollection","extendsTypeArg":"Blacklist","exportName":"BlacklistCollection","collectionExportName":"BlacklistCollectionCollection","collectionOf":"@happyvertical/smrt-messages:Blacklist","inheritedExposure":["api"],"schema":{"tableName":"blacklists","ddl":"CREATE TABLE IF NOT EXISTS \\"blacklists\\" (\\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 \\"pattern\\" TEXT DEFAULT '',\\n \\"type\\" TEXT DEFAULT 'email',\\n \\"reason\\" TEXT DEFAULT '',\\n \\"auto_archive\\" BOOLEAN DEFAULT TRUE,\\n \\"tenant_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"},"pattern":{"type":"TEXT","notNull":false,"unique":false,"default":""},"type":{"type":"TEXT","notNull":false,"unique":false,"default":"email"},"reason":{"type":"TEXT","notNull":false,"unique":false,"default":""},"auto_archive":{"type":"BOOLEAN","notNull":false,"unique":false,"default":true},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false}},"indexes":[{"name":"blacklists_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true},{"name":"blacklists_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"04efaa8d"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:EmailAccountCollection":{"name":"emailaccountcollection","className":"EmailAccountCollection","qualifiedName":"@happyvertical/smrt-messages:EmailAccountCollection","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/EmailAccountCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"getActive":{"name":"getActive","async":true,"parameters":[],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"getInactive":{"name":"getInactive","async":true,"parameters":[],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"getByProviderType":{"name":"getByProviderType","async":true,"parameters":[{"name":"providerType","type":"string","optional":false}],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"getByType":{"name":"getByType","async":true,"parameters":[{"name":"accountType","type":"string","optional":false}],"returnType":"Promise<Account[]>","isStatic":false,"isPublic":true},"search":{"name":"search","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"filters","type":"EmailAccountSearchFilters","optional":true}],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"getStats":{"name":"getStats","async":true,"parameters":[],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"getByEmail":{"name":"getByEmail","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<EmailAccount | null>","isStatic":false,"isPublic":true},"getByEmailProviderType":{"name":"getByEmailProviderType","async":true,"parameters":[{"name":"providerType","type":"ProviderType","optional":false}],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"getNeedingSync":{"name":"getNeedingSync","async":true,"parameters":[{"name":"maxAgeMinutes","type":"any","optional":true}],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"searchEmailAccounts":{"name":"searchEmailAccounts","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"filters","type":"EmailAccountSearchFilters","optional":true}],"returnType":"Promise<EmailAccount[]>","isStatic":false,"isPublic":true},"syncAll":{"name":"syncAll","async":true,"parameters":[{"name":"options","type":"SyncOptions","optional":true}],"returnType":"Promise<Map<string, object>>","isStatic":false,"isPublic":true},"getTotalUnreadCount":{"name":"getTotalUnreadCount","async":true,"parameters":[],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"getEmailStats":{"name":"getEmailStats","async":true,"parameters":[],"returnType":"Promise<object>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"accounts","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"AccountCollection","exportName":"EmailAccountCollection","collectionExportName":"EmailAccountCollectionCollection","collectionOf":"@happyvertical/smrt-messages:EmailAccount","inheritedExposure":["api","mcp","cli"],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:EmailAttachmentCollection":{"name":"emailattachmentcollection","className":"EmailAttachmentCollection","qualifiedName":"@happyvertical/smrt-messages:EmailAttachmentCollection","collection":"emailattachments","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/EmailAttachmentCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"getByMessage":{"name":"getByMessage","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getByContentType":{"name":"getByContentType","async":true,"parameters":[{"name":"contentType","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getImages":{"name":"getImages","async":true,"parameters":[{"name":"emailId","type":"string","optional":true}],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"getPdfs":{"name":"getPdfs","async":true,"parameters":[{"name":"emailId","type":"string","optional":true}],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"getInline":{"name":"getInline","async":true,"parameters":[{"name":"emailId","type":"string","optional":false}],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"getRegular":{"name":"getRegular","async":true,"parameters":[{"name":"emailId","type":"string","optional":false}],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"getWithExternalFiles":{"name":"getWithExternalFiles","async":true,"parameters":[],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getTotalSize":{"name":"getTotalSize","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"getLargest":{"name":"getLargest","async":true,"parameters":[{"name":"limit","type":"any","optional":true}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"searchByFilename":{"name":"searchByFilename","async":true,"parameters":[{"name":"query","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getByExtension":{"name":"getByExtension","async":true,"parameters":[{"name":"extension","type":"string","optional":false}],"returnType":"Promise<Attachment[]>","isStatic":false,"isPublic":true},"getStats":{"name":"getStats","async":true,"parameters":[],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"deleteByMessage":{"name":"deleteByMessage","async":true,"parameters":[{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"getByEmail":{"name":"getByEmail","async":true,"parameters":[{"name":"emailId","type":"string","optional":false}],"returnType":"Promise<EmailAttachment[]>","isStatic":false,"isPublic":true},"deleteByEmail":{"name":"deleteByEmail","async":true,"parameters":[{"name":"emailId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]}},"extends":"AttachmentCollection","exportName":"EmailAttachmentCollection","collectionExportName":"EmailAttachmentCollectionCollection","collectionOf":"@happyvertical/smrt-messages:EmailAttachment","inheritedExposure":["api","mcp"],"schema":{"tableName":"email_attachments","ddl":"CREATE TABLE IF NOT EXISTS \\"email_attachments\\" (\\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":"email_attachments_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"email_attachments_created_at_idx","columns":["created_at"]}],"version":"70291c59"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:EmailCollection":{"name":"emailcollection","className":"EmailCollection","qualifiedName":"@happyvertical/smrt-messages:EmailCollection","collection":"messages","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/EmailCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"search":{"name":"search","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"filters","type":"EmailSearchFilters","optional":true}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getByAccounts":{"name":"getByAccounts","async":true,"parameters":[{"name":"accountIds","type":"string[]","optional":false}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getByType":{"name":"getByType","async":true,"parameters":[{"name":"messageType","type":"string","optional":false}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getUnread":{"name":"getUnread","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getFlagged":{"name":"getFlagged","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getRecent":{"name":"getRecent","async":true,"parameters":[{"name":"limit","type":"any","optional":true},{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getByThread":{"name":"getByThread","async":true,"parameters":[{"name":"threadId","type":"string","optional":false}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"markAllRead":{"name":"markAllRead","async":true,"parameters":[{"name":"messageIds","type":"string[]","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getAccountStats":{"name":"getAccountStats","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"getDrafts":{"name":"getDrafts","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getSent":{"name":"getSent","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getScheduled":{"name":"getScheduled","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getFailedSends":{"name":"getFailedSends","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getOutbox":{"name":"getOutbox","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getByMessageId":{"name":"getByMessageId","async":true,"parameters":[{"name":"accountId","type":"string","optional":false},{"name":"messageId","type":"string","optional":false}],"returnType":"Promise<Email | null>","isStatic":false,"isPublic":true},"getByAccount":{"name":"getByAccount","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getByFolder":{"name":"getByFolder","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getWithAttachments":{"name":"getWithAttachments","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"countByFolder":{"name":"countByFolder","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"countUnreadByFolder":{"name":"countUnreadByFolder","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"countUnreadByAccount":{"name":"countUnreadByAccount","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"searchEmails":{"name":"searchEmails","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"filters","type":"EmailSearchFilters","optional":true}],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"markFolderRead":{"name":"markFolderRead","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"deleteByFolder":{"name":"deleteByFolder","async":true,"parameters":[{"name":"folderId","type":"string","optional":false}],"returnType":"Promise<number>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"messages","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"extends":"MessageCollection","exportName":"EmailCollection","collectionExportName":"EmailCollectionCollection","collectionOf":"@happyvertical/smrt-messages:Email","inheritedExposure":["api","mcp"],"schema":{"tableName":"messages","ddl":"CREATE TABLE IF NOT EXISTS \\"messages\\" (\\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 \\"account_id\\" UUID,\\n \\"persona_id\\" UUID,\\n \\"endpoint_id\\" UUID,\\n \\"correlation_id\\" TEXT,\\n \\"thread_id\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"body\\" TEXT,\\n \\"from_address\\" TEXT,\\n \\"from_name\\" TEXT,\\n \\"to_addresses\\" TEXT,\\n \\"date\\" TIMESTAMP,\\n \\"is_read\\" BOOLEAN DEFAULT FALSE,\\n \\"is_flagged\\" BOOLEAN DEFAULT FALSE,\\n \\"has_attachments\\" BOOLEAN DEFAULT FALSE,\\n \\"size\\" INTEGER DEFAULT 0,\\n \\"metadata\\" TEXT,\\n \\"send_status\\" TEXT DEFAULT 'draft',\\n \\"sent_at\\" TIMESTAMP,\\n \\"send_error\\" TEXT,\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"max_retries\\" INTEGER DEFAULT 3,\\n \\"scheduled_send_at\\" TIMESTAMP,\\n \\"in_reply_to_message_id\\" UUID,\\n \\"message_id\\" TEXT,\\n \\"in_reply_to\\" TEXT,\\n \\"cc_addresses\\" TEXT,\\n \\"bcc_addresses\\" TEXT,\\n \\"reply_to_address\\" TEXT,\\n \\"reply_to_name\\" TEXT,\\n \\"text_body\\" TEXT,\\n \\"html_body\\" TEXT,\\n \\"folder_id\\" TEXT,\\n \\"folder_path\\" TEXT,\\n \\"labels\\" TEXT,\\n \\"flags\\" TEXT,\\n \\"is_answered\\" BOOLEAN DEFAULT FALSE,\\n \\"is_draft\\" BOOLEAN DEFAULT FALSE,\\n \\"raw_message\\" TEXT,\\n \\"headers\\" TEXT,\\n \\"channel_id\\" TEXT,\\n \\"channel_name\\" TEXT,\\n \\"slack_ts\\" TEXT,\\n \\"slack_thread_ts\\" TEXT,\\n \\"reactions\\" TEXT,\\n \\"is_edited\\" BOOLEAN DEFAULT FALSE,\\n \\"message_type\\" TEXT,\\n \\"blocks\\" TEXT,\\n \\"tweet_id\\" TEXT,\\n \\"retweet_count\\" INTEGER DEFAULT 0,\\n \\"like_count\\" INTEGER DEFAULT 0,\\n \\"reply_count\\" INTEGER DEFAULT 0,\\n \\"is_retweet\\" BOOLEAN DEFAULT FALSE,\\n \\"is_reply\\" BOOLEAN DEFAULT FALSE,\\n \\"media_urls\\" TEXT,\\n \\"hashtags\\" TEXT,\\n \\"mentions\\" 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},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"correlation_id":{"type":"TEXT","notNull":false},"thread_id":{"type":"TEXT","notNull":false},"subject":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"from_address":{"type":"TEXT","notNull":false},"from_name":{"type":"TEXT","notNull":false},"to_addresses":{"type":"TEXT","notNull":false},"date":{"type":"TIMESTAMP","notNull":false},"is_read":{"type":"BOOLEAN","notNull":false,"default":false},"is_flagged":{"type":"BOOLEAN","notNull":false,"default":false},"has_attachments":{"type":"BOOLEAN","notNull":false,"default":false},"size":{"type":"INTEGER","notNull":false,"default":0},"metadata":{"type":"TEXT","notNull":false},"send_status":{"type":"TEXT","notNull":false,"default":"draft"},"sent_at":{"type":"TIMESTAMP","notNull":false},"send_error":{"type":"TEXT","notNull":false},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"max_retries":{"type":"INTEGER","notNull":false,"default":3},"scheduled_send_at":{"type":"TIMESTAMP","notNull":false},"in_reply_to_message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"message_id":{"type":"TEXT","notNull":false},"in_reply_to":{"type":"TEXT","notNull":false},"cc_addresses":{"type":"TEXT","notNull":false},"bcc_addresses":{"type":"TEXT","notNull":false},"reply_to_address":{"type":"TEXT","notNull":false},"reply_to_name":{"type":"TEXT","notNull":false},"text_body":{"type":"TEXT","notNull":false},"html_body":{"type":"TEXT","notNull":false},"folder_id":{"type":"TEXT","notNull":false},"folder_path":{"type":"TEXT","notNull":false},"labels":{"type":"TEXT","notNull":false},"flags":{"type":"TEXT","notNull":false},"is_answered":{"type":"BOOLEAN","notNull":false,"default":false},"is_draft":{"type":"BOOLEAN","notNull":false,"default":false},"raw_message":{"type":"TEXT","notNull":false},"headers":{"type":"TEXT","notNull":false},"channel_id":{"type":"TEXT","notNull":false},"channel_name":{"type":"TEXT","notNull":false},"slack_ts":{"type":"TEXT","notNull":false},"slack_thread_ts":{"type":"TEXT","notNull":false},"reactions":{"type":"TEXT","notNull":false},"is_edited":{"type":"BOOLEAN","notNull":false,"default":false},"message_type":{"type":"TEXT","notNull":false},"blocks":{"type":"TEXT","notNull":false},"tweet_id":{"type":"TEXT","notNull":false},"retweet_count":{"type":"INTEGER","notNull":false,"default":0},"like_count":{"type":"INTEGER","notNull":false,"default":0},"reply_count":{"type":"INTEGER","notNull":false,"default":0},"is_retweet":{"type":"BOOLEAN","notNull":false,"default":false},"is_reply":{"type":"BOOLEAN","notNull":false,"default":false},"media_urls":{"type":"TEXT","notNull":false},"hashtags":{"type":"TEXT","notNull":false},"mentions":{"type":"TEXT","notNull":false}},"indexes":[{"name":"messages_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"messages_meta_type_idx","columns":["_meta_type"]},{"name":"messages_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messages_account_id_idx","columns":["account_id"]},{"name":"messages_persona_id_idx","columns":["persona_id"]},{"name":"messages_endpoint_id_idx","columns":["endpoint_id"]},{"name":"messages_in_reply_to_message_id_idx","columns":["in_reply_to_message_id"]}],"version":"6ff29dd9"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:EmailFolderCollection":{"name":"emailfoldercollection","className":"EmailFolderCollection","qualifiedName":"@happyvertical/smrt-messages:EmailFolderCollection","collection":"emailfolders","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/EmailFolderCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"getByPath":{"name":"getByPath","async":true,"parameters":[{"name":"accountId","type":"string","optional":false},{"name":"path","type":"string","optional":false}],"returnType":"Promise<EmailFolder | null>","isStatic":false,"isPublic":true},"getByAccount":{"name":"getByAccount","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"getInbox":{"name":"getInbox","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder | null>","isStatic":false,"isPublic":true},"getSent":{"name":"getSent","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder | null>","isStatic":false,"isPublic":true},"getDrafts":{"name":"getDrafts","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder | null>","isStatic":false,"isPublic":true},"getTrash":{"name":"getTrash","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder | null>","isStatic":false,"isPublic":true},"getSpam":{"name":"getSpam","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder | null>","isStatic":false,"isPublic":true},"getSystemFolders":{"name":"getSystemFolders","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"getUserFolders":{"name":"getUserFolders","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"getSubscribed":{"name":"getSubscribed","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"getWithUnread":{"name":"getWithUnread","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"search":{"name":"search","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"filters","type":"EmailFolderSearchFilters","optional":true}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"refreshAllCounts":{"name":"refreshAllCounts","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getAccountStats":{"name":"getAccountStats","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"createSystemFolders":{"name":"createSystemFolders","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<EmailFolder[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"EmailFolder","exportName":"EmailFolderCollection","collectionExportName":"EmailFolderCollectionCollection","collectionOf":"@happyvertical/smrt-messages:EmailFolder","inheritedExposure":["api","mcp"],"schema":{"tableName":"email_folders","ddl":"CREATE TABLE IF NOT EXISTS \\"email_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 \\"tenant_id\\" UUID,\\n \\"account_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"path\\" TEXT,\\n \\"delimiter\\" TEXT,\\n \\"special_use\\" TEXT,\\n \\"message_count\\" INTEGER NOT NULL DEFAULT 0,\\n \\"unread_count\\" INTEGER NOT NULL DEFAULT 0,\\n \\"subscribed\\" BOOLEAN NOT NULL DEFAULT TRUE\\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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"unique":false},"path":{"type":"TEXT","notNull":false,"unique":false},"delimiter":{"type":"TEXT","notNull":false,"unique":false},"special_use":{"type":"TEXT","notNull":false,"unique":false},"message_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"unread_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"subscribed":{"type":"BOOLEAN","notNull":true,"unique":false,"default":true}},"indexes":[{"name":"email_folders_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"email_folders_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"email_folders_account_id_idx","columns":["account_id"]}],"version":"e895818f"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:MessageCollection":{"name":"messagecollection","className":"MessageCollection","qualifiedName":"@happyvertical/smrt-messages:MessageCollection","collection":"messages","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/MessageCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"search":{"name":"search","async":true,"parameters":[{"name":"query","type":"string","optional":false},{"name":"filters","type":"MessageSearchFilters","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getByAccounts":{"name":"getByAccounts","async":true,"parameters":[{"name":"accountIds","type":"string[]","optional":false}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getByType":{"name":"getByType","async":true,"parameters":[{"name":"messageType","type":"string","optional":false}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getUnread":{"name":"getUnread","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getFlagged":{"name":"getFlagged","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getRecent":{"name":"getRecent","async":true,"parameters":[{"name":"limit","type":"any","optional":true},{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getByThread":{"name":"getByThread","async":true,"parameters":[{"name":"threadId","type":"string","optional":false}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"markAllRead":{"name":"markAllRead","async":true,"parameters":[{"name":"messageIds","type":"string[]","optional":false}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"getAccountStats":{"name":"getAccountStats","async":true,"parameters":[{"name":"accountId","type":"string","optional":false}],"returnType":"Promise<object>","isStatic":false,"isPublic":true},"getDrafts":{"name":"getDrafts","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getSent":{"name":"getSent","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getScheduled":{"name":"getScheduled","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getFailedSends":{"name":"getFailedSends","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getOutbox":{"name":"getOutbox","async":true,"parameters":[{"name":"accountId","type":"string","optional":true}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"findByTenant":{"name":"findByTenant","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"findGlobal":{"name":"findGlobal","async":true,"parameters":[],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"findWithGlobals":{"name":"findWithGlobals","async":true,"parameters":[{"name":"tenantId","type":"string","optional":false}],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get"]},"mcp":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"Message","exportName":"MessageCollection","collectionExportName":"MessageCollectionCollection","collectionOf":"@happyvertical/smrt-messages:Message","inheritedExposure":["api","mcp"],"schema":{"tableName":"messages","ddl":"CREATE TABLE IF NOT EXISTS \\"messages\\" (\\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 \\"account_id\\" UUID,\\n \\"persona_id\\" UUID,\\n \\"endpoint_id\\" UUID,\\n \\"correlation_id\\" TEXT,\\n \\"thread_id\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"body\\" TEXT,\\n \\"from_address\\" TEXT,\\n \\"from_name\\" TEXT,\\n \\"to_addresses\\" TEXT,\\n \\"date\\" TIMESTAMP,\\n \\"is_read\\" BOOLEAN DEFAULT FALSE,\\n \\"is_flagged\\" BOOLEAN DEFAULT FALSE,\\n \\"has_attachments\\" BOOLEAN DEFAULT FALSE,\\n \\"size\\" INTEGER DEFAULT 0,\\n \\"metadata\\" TEXT,\\n \\"send_status\\" TEXT DEFAULT 'draft',\\n \\"sent_at\\" TIMESTAMP,\\n \\"send_error\\" TEXT,\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"max_retries\\" INTEGER DEFAULT 3,\\n \\"scheduled_send_at\\" TIMESTAMP,\\n \\"in_reply_to_message_id\\" UUID,\\n \\"message_id\\" TEXT,\\n \\"in_reply_to\\" TEXT,\\n \\"cc_addresses\\" TEXT,\\n \\"bcc_addresses\\" TEXT,\\n \\"reply_to_address\\" TEXT,\\n \\"reply_to_name\\" TEXT,\\n \\"text_body\\" TEXT,\\n \\"html_body\\" TEXT,\\n \\"folder_id\\" TEXT,\\n \\"folder_path\\" TEXT,\\n \\"labels\\" TEXT,\\n \\"flags\\" TEXT,\\n \\"is_answered\\" BOOLEAN DEFAULT FALSE,\\n \\"is_draft\\" BOOLEAN DEFAULT FALSE,\\n \\"raw_message\\" TEXT,\\n \\"headers\\" TEXT,\\n \\"channel_id\\" TEXT,\\n \\"channel_name\\" TEXT,\\n \\"slack_ts\\" TEXT,\\n \\"slack_thread_ts\\" TEXT,\\n \\"reactions\\" TEXT,\\n \\"is_edited\\" BOOLEAN DEFAULT FALSE,\\n \\"message_type\\" TEXT,\\n \\"blocks\\" TEXT,\\n \\"tweet_id\\" TEXT,\\n \\"retweet_count\\" INTEGER DEFAULT 0,\\n \\"like_count\\" INTEGER DEFAULT 0,\\n \\"reply_count\\" INTEGER DEFAULT 0,\\n \\"is_retweet\\" BOOLEAN DEFAULT FALSE,\\n \\"is_reply\\" BOOLEAN DEFAULT FALSE,\\n \\"media_urls\\" TEXT,\\n \\"hashtags\\" TEXT,\\n \\"mentions\\" 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},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"correlation_id":{"type":"TEXT","notNull":false},"thread_id":{"type":"TEXT","notNull":false},"subject":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"from_address":{"type":"TEXT","notNull":false},"from_name":{"type":"TEXT","notNull":false},"to_addresses":{"type":"TEXT","notNull":false},"date":{"type":"TIMESTAMP","notNull":false},"is_read":{"type":"BOOLEAN","notNull":false,"default":false},"is_flagged":{"type":"BOOLEAN","notNull":false,"default":false},"has_attachments":{"type":"BOOLEAN","notNull":false,"default":false},"size":{"type":"INTEGER","notNull":false,"default":0},"metadata":{"type":"TEXT","notNull":false},"send_status":{"type":"TEXT","notNull":false,"default":"draft"},"sent_at":{"type":"TIMESTAMP","notNull":false},"send_error":{"type":"TEXT","notNull":false},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"max_retries":{"type":"INTEGER","notNull":false,"default":3},"scheduled_send_at":{"type":"TIMESTAMP","notNull":false},"in_reply_to_message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"message_id":{"type":"TEXT","notNull":false},"in_reply_to":{"type":"TEXT","notNull":false},"cc_addresses":{"type":"TEXT","notNull":false},"bcc_addresses":{"type":"TEXT","notNull":false},"reply_to_address":{"type":"TEXT","notNull":false},"reply_to_name":{"type":"TEXT","notNull":false},"text_body":{"type":"TEXT","notNull":false},"html_body":{"type":"TEXT","notNull":false},"folder_id":{"type":"TEXT","notNull":false},"folder_path":{"type":"TEXT","notNull":false},"labels":{"type":"TEXT","notNull":false},"flags":{"type":"TEXT","notNull":false},"is_answered":{"type":"BOOLEAN","notNull":false,"default":false},"is_draft":{"type":"BOOLEAN","notNull":false,"default":false},"raw_message":{"type":"TEXT","notNull":false},"headers":{"type":"TEXT","notNull":false},"channel_id":{"type":"TEXT","notNull":false},"channel_name":{"type":"TEXT","notNull":false},"slack_ts":{"type":"TEXT","notNull":false},"slack_thread_ts":{"type":"TEXT","notNull":false},"reactions":{"type":"TEXT","notNull":false},"is_edited":{"type":"BOOLEAN","notNull":false,"default":false},"message_type":{"type":"TEXT","notNull":false},"blocks":{"type":"TEXT","notNull":false},"tweet_id":{"type":"TEXT","notNull":false},"retweet_count":{"type":"INTEGER","notNull":false,"default":0},"like_count":{"type":"INTEGER","notNull":false,"default":0},"reply_count":{"type":"INTEGER","notNull":false,"default":0},"is_retweet":{"type":"BOOLEAN","notNull":false,"default":false},"is_reply":{"type":"BOOLEAN","notNull":false,"default":false},"media_urls":{"type":"TEXT","notNull":false},"hashtags":{"type":"TEXT","notNull":false},"mentions":{"type":"TEXT","notNull":false}},"indexes":[{"name":"messages_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"messages_meta_type_idx","columns":["_meta_type"]},{"name":"messages_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messages_account_id_idx","columns":["account_id"]},{"name":"messages_persona_id_idx","columns":["persona_id"]},{"name":"messages_endpoint_id_idx","columns":["endpoint_id"]},{"name":"messages_in_reply_to_message_id_idx","columns":["in_reply_to_message_id"]}],"version":"c03791c7"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:MessagingEndpointCollection":{"name":"messagingendpointcollection","className":"MessagingEndpointCollection","qualifiedName":"@happyvertical/smrt-messages:MessagingEndpointCollection","collection":"messagingendpoints","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/MessagingEndpointCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{},"decoratorConfig":{"tableName":"messaging_endpoints","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"MessagingEndpoint","exportName":"MessagingEndpointCollection","collectionExportName":"MessagingEndpointCollectionCollection","collectionOf":"@happyvertical/smrt-messages:MessagingEndpoint","inheritedExposure":["api","mcp","cli"],"schema":{"tableName":"messaging_endpoints","ddl":"CREATE TABLE IF NOT EXISTS \\"messaging_endpoints\\" (\\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 \\"tenant_id\\" UUID NOT NULL,\\n \\"profile_id\\" UUID,\\n \\"label\\" TEXT NOT NULL,\\n \\"channel\\" TEXT NOT NULL DEFAULT 'email',\\n \\"address\\" TEXT NOT NULL,\\n \\"is_active\\" BOOLEAN NOT NULL DEFAULT TRUE,\\n \\"verified_at\\" 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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false,"unique":false},"label":{"type":"TEXT","notNull":true,"unique":false},"channel":{"type":"TEXT","notNull":true,"unique":false,"default":"email"},"address":{"type":"TEXT","notNull":true,"unique":false},"is_active":{"type":"BOOLEAN","notNull":true,"unique":false,"default":true},"verified_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"messaging_endpoints_tenant_id_channel_idx","columns":["tenant_id","channel","label"],"unique":true},{"name":"messaging_endpoints_slug_context_idx","columns":["slug","context"]},{"name":"messaging_endpoints_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messaging_endpoints_profile_id_idx","columns":["profile_id"]}],"version":"fca5554d"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:PersonaMessageRouteCollection":{"name":"personamessageroutecollection","className":"PersonaMessageRouteCollection","qualifiedName":"@happyvertical/smrt-messages:PersonaMessageRouteCollection","collection":"personamessageroutes","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/PersonaMessageRouteCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"forPersona":{"name":"forPersona","async":true,"parameters":[{"name":"personaId","type":"string","optional":false}],"returnType":"Promise<PersonaMessageRoute[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"persona_message_routes","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]}},"extends":"SmrtCollection","extendsTypeArg":"PersonaMessageRoute","exportName":"PersonaMessageRouteCollection","collectionExportName":"PersonaMessageRouteCollectionCollection","collectionOf":"@happyvertical/smrt-messages:PersonaMessageRoute","inheritedExposure":["api","mcp","cli"],"schema":{"tableName":"persona_message_routes","ddl":"CREATE TABLE IF NOT EXISTS \\"persona_message_routes\\" (\\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 \\"tenant_id\\" UUID NOT NULL,\\n \\"persona_id\\" UUID NOT NULL,\\n \\"account_id\\" UUID NOT NULL,\\n \\"endpoint_id\\" UUID NOT NULL,\\n \\"purpose\\" TEXT NOT NULL,\\n \\"priority\\" INTEGER NOT NULL DEFAULT 0,\\n \\"enabled\\" BOOLEAN NOT NULL DEFAULT TRUE\\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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"purpose":{"type":"TEXT","notNull":true,"unique":false},"priority":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"enabled":{"type":"BOOLEAN","notNull":true,"unique":false,"default":true}},"indexes":[{"name":"persona_message_routes_tenant_id_persona_id_idx","columns":["tenant_id","persona_id","account_id","endpoint_id","purpose"],"unique":true},{"name":"persona_message_routes_slug_context_idx","columns":["slug","context"]},{"name":"persona_message_routes_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"persona_message_routes_persona_id_idx","columns":["persona_id"]},{"name":"persona_message_routes_account_id_idx","columns":["account_id"]},{"name":"persona_message_routes_endpoint_id_idx","columns":["endpoint_id"]}],"version":"3dc1d5d0"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:UserNotificationCollection":{"name":"usernotificationcollection","className":"UserNotificationCollection","qualifiedName":"@happyvertical/smrt-messages:UserNotificationCollection","collection":"usernotifications","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/UserNotificationCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{},"decoratorConfig":{"tableName":"user_notifications","api":false,"mcp":false,"cli":false},"extends":"SmrtCollection","extendsTypeArg":"UserNotification","exportName":"UserNotificationCollection","collectionExportName":"UserNotificationCollectionCollection","collectionOf":"@happyvertical/smrt-messages:UserNotification","inheritedExposure":["api","mcp","cli"],"schema":{"tableName":"user_notifications","ddl":"CREATE TABLE IF NOT EXISTS \\"user_notifications\\" (\\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 \\"tenant_id\\" UUID NOT NULL,\\n \\"recipient_user_id\\" UUID NOT NULL,\\n \\"kind\\" TEXT NOT NULL,\\n \\"title\\" TEXT NOT NULL,\\n \\"body\\" TEXT,\\n \\"href\\" TEXT,\\n \\"severity\\" TEXT DEFAULT 'info',\\n \\"source_ref\\" TEXT NOT NULL,\\n \\"occurred_at\\" TEXT,\\n \\"read_at\\" TIMESTAMP,\\n \\"dismissed_at\\" 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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"recipient_user_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"kind":{"type":"TEXT","notNull":true,"unique":false},"title":{"type":"TEXT","notNull":true,"unique":false},"body":{"type":"TEXT","notNull":false,"unique":false},"href":{"type":"TEXT","notNull":false,"unique":false},"severity":{"type":"TEXT","notNull":false,"unique":false,"default":"info"},"source_ref":{"type":"TEXT","notNull":true,"unique":false},"occurred_at":{"type":"TEXT","notNull":false,"unique":false},"read_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"dismissed_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"user_notifications_tenant_id_recipient_user_id_idx","columns":["tenant_id","recipient_user_id","source_ref"],"unique":true},{"name":"user_notifications_slug_context_idx","columns":["slug","context"]},{"name":"user_notifications_recipient_occurred_idx","columns":["tenant_id","recipient_user_id","occurred_at"]},{"name":"user_notifications_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"user_notifications_recipient_user_id_idx","columns":["recipient_user_id"]}],"version":"0e68a388"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:WhitelistCollection":{"name":"whitelistcollection","className":"WhitelistCollection","qualifiedName":"@happyvertical/smrt-messages:WhitelistCollection","collection":"whitelists","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/collections/WhitelistCollection.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"isWhitelisted":{"name":"isWhitelisted","async":true,"parameters":[{"name":"email","type":"string","optional":false},{"name":"category","type":"string","optional":true}],"returnType":"Promise<boolean>","isStatic":false,"isPublic":true},"getMatchingEntry":{"name":"getMatchingEntry","async":true,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"Promise<Whitelist | null>","isStatic":false,"isPublic":true},"getByCategory":{"name":"getByCategory","async":true,"parameters":[{"name":"category","type":"string","optional":false}],"returnType":"Promise<Whitelist[]>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]}},"extends":"SmrtCollection","extendsTypeArg":"Whitelist","exportName":"WhitelistCollection","collectionExportName":"WhitelistCollectionCollection","collectionOf":"@happyvertical/smrt-messages:Whitelist","inheritedExposure":["api"],"schema":{"tableName":"whitelists","ddl":"CREATE TABLE IF NOT EXISTS \\"whitelists\\" (\\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 \\"pattern\\" TEXT DEFAULT '',\\n \\"type\\" TEXT DEFAULT 'email',\\n \\"category\\" TEXT,\\n \\"description\\" TEXT DEFAULT '',\\n \\"tenant_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"},"pattern":{"type":"TEXT","notNull":false,"unique":false,"default":""},"type":{"type":"TEXT","notNull":false,"unique":false,"default":"email"},"category":{"type":"TEXT","notNull":false,"unique":false},"description":{"type":"TEXT","notNull":false,"unique":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false}},"indexes":[{"name":"whitelists_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true},{"name":"whitelists_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"40a655a1"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:Account":{"name":"account","className":"Account","qualifiedName":"@happyvertical/smrt-messages:Account","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/Account.ts","packageName":"@happyvertical/smrt-messages","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,"description":"The display name for this connected messaging account.","_meta":{"description":"The display name for this connected messaging account."}},"providerType":{"type":"text","required":false,"description":"The service that connects this account to your application.","_meta":{"description":"The service that connects this account to your application."}},"channelType":{"type":"text","required":false,"description":"The kind of messaging this account supports, such as email or chat.","_meta":{"description":"The kind of messaging this account supports, such as email or chat."}},"credentialSecretId":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"isActive":{"type":"boolean","required":true,"default":true,"description":"Whether this account is enabled for messaging.","_meta":{"description":"Whether this account is enabled for messaging."}},"lastSyncAt":{"type":"datetime","required":false,"description":"When this account last checked for new messages.","_meta":{"description":"When this account last checked for new messages."}},"settings":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"configuration":{"type":"text","required":false,"description":"The public connection settings for this account; credentials are stored separately.","_meta":{"description":"The public connection settings for this account; credentials are stored separately."}},"createdAt":{"type":"text","required":false,"description":"When this account was added.","_meta":{"description":"When this account was added."}},"updatedAt":{"type":"text","required":false,"description":"When this account was last changed.","_meta":{"description":"When this account was last changed."}}},"methods":{"getSettings":{"name":"getSettings","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setSettings":{"name":"setSettings","async":false,"parameters":[{"name":"settings","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getConfiguration":{"name":"getConfiguration","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setConfiguration":{"name":"setConfiguration","async":false,"parameters":[{"name":"configuration","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"activate":{"name":"activate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"deactivate":{"name":"deactivate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setCredentials":{"name":"setCredentials","async":true,"parameters":[{"name":"credentials","type":"Record<string, unknown>","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"createSender":{"name":"createSender","async":true,"parameters":[],"returnType":"Promise<MessageSenderInterface>","isStatic":false,"isPublic":true},"getCredentials":{"name":"getCredentials","async":true,"parameters":[],"returnType":"Promise<Record<string, unknown> | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"Account","collectionExportName":"AccountCollection","displayLabelField":"name","validationRules":[{"field":"isActive","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:Attachment":{"name":"attachment","className":"Attachment","qualifiedName":"@happyvertical/smrt-messages:Attachment","collection":"attachments","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/Attachment.ts","packageName":"@happyvertical/smrt-messages","fields":{"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}}},"messageId":{"type":"foreignKey","required":false,"related":"Message"},"filename":{"type":"text","required":false},"contentType":{"type":"text","required":false},"size":{"type":"integer","required":true,"default":0},"contentId":{"type":"text","required":false},"contentDisposition":{"type":"text","required":false,"default":"attachment","enum":["attachment","inline"]},"filePath":{"type":"text","required":false},"sourceUrl":{"type":"text","required":false},"createdAt":{"type":"text","required":false}},"methods":{"getMessage":{"name":"getMessage","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"isImage":{"name":"isImage","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isPdf":{"name":"isPdf","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isInline":{"name":"isInline","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getExtension":{"name":"getExtension","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true},"getFormattedSize":{"name":"getFormattedSize","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true},"hasExternalFile":{"name":"hasExternalFile","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"readContent":{"name":"readContent","async":true,"parameters":[],"returnType":"Promise<Buffer | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"Attachment","collectionExportName":"AttachmentCollection","validationRules":[{"field":"size","rule":"required","fieldType":"integer"}],"schema":{"tableName":"attachments","ddl":"CREATE TABLE IF NOT EXISTS \\"attachments\\" (\\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 \\"tenant_id\\" UUID,\\n \\"message_id\\" UUID,\\n \\"filename\\" TEXT,\\n \\"content_type\\" TEXT,\\n \\"size\\" INTEGER NOT NULL DEFAULT 0,\\n \\"content_id\\" TEXT,\\n \\"content_disposition\\" TEXT DEFAULT 'attachment',\\n \\"file_path\\" TEXT,\\n \\"source_url\\" TEXT\\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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"filename":{"type":"TEXT","notNull":false,"unique":false},"content_type":{"type":"TEXT","notNull":false,"unique":false},"size":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"content_id":{"type":"TEXT","notNull":false,"unique":false},"content_disposition":{"type":"TEXT","notNull":false,"unique":false,"default":"attachment"},"file_path":{"type":"TEXT","notNull":false,"unique":false},"source_url":{"type":"TEXT","notNull":false,"unique":false}},"indexes":[{"name":"attachments_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"attachments_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"attachments_message_id_idx","columns":["message_id"]}],"version":"ee5ae0dd"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:Blacklist":{"name":"blacklist","className":"Blacklist","qualifiedName":"@happyvertical/smrt-messages:Blacklist","collection":"blacklists","description":"Block entries for email filtering","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/Blacklist.ts","packageName":"@happyvertical/smrt-messages","fields":{"pattern":{"type":"text","required":false,"default":""},"type":{"type":"text","required":false,"default":"email","enum":["email","domain","regex"]},"reason":{"type":"text","required":false,"default":""},"autoArchive":{"type":"boolean","required":false,"default":true},"tenantId":{"type":"text","required":true,"_meta":{"generated":true,"source":"tenantScoped_decorator","sqlType":"UUID","__tenancy":{"isTenantIdField":true,"mode":"required","field":"tenantId","autoFilter":true,"autoPopulate":true,"allowSuperAdminBypass":false}}}},"methods":{"matches":{"name":"matches","async":false,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"boolean","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"cli":{"skipApiCheck":true},"tenantScoped":true,"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"Blacklist","collectionExportName":"BlacklistCollection","validationRules":[],"schema":{"tableName":"blacklists","ddl":"CREATE TABLE IF NOT EXISTS \\"blacklists\\" (\\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 \\"pattern\\" TEXT DEFAULT '',\\n \\"type\\" TEXT DEFAULT 'email',\\n \\"reason\\" TEXT DEFAULT '',\\n \\"auto_archive\\" BOOLEAN DEFAULT TRUE,\\n \\"tenant_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"},"pattern":{"type":"TEXT","notNull":false,"unique":false,"default":""},"type":{"type":"TEXT","notNull":false,"unique":false,"default":"email"},"reason":{"type":"TEXT","notNull":false,"unique":false,"default":""},"auto_archive":{"type":"BOOLEAN","notNull":false,"unique":false,"default":true},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false}},"indexes":[{"name":"blacklists_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true},{"name":"blacklists_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"04efaa8d"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:Email":{"name":"email","className":"Email","qualifiedName":"@happyvertical/smrt-messages:Email","collection":"messages","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/Email.ts","packageName":"@happyvertical/smrt-messages","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}}},"accountId":{"type":"foreignKey","required":false,"related":"Account","description":"The connected account used to receive or send this message.","_meta":{"description":"The connected account used to receive or send this message."}},"personaId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-personas:AgentPersona","description":"The assistant identity associated with this message, when one was used.","_meta":{"description":"The assistant identity associated with this message, when one was used.","nullable":true}},"endpointId":{"type":"foreignKey","required":false,"related":"MessagingEndpoint","description":"The saved destination used to deliver this message.","_meta":{"description":"The saved destination used to deliver this message."}},"correlationId":{"type":"text","required":false,"description":"A tracking reference that connects this message to related activity.","_meta":{"description":"A tracking reference that connects this message to related activity."}},"threadId":{"type":"text","required":false,"description":"The conversation this message belongs to.","_meta":{"description":"The conversation this message belongs to."}},"subject":{"type":"text","required":false,"description":"The subject shown in the message list.","_meta":{"description":"The subject shown in the message list."}},"body":{"type":"text","required":false,"description":"The message content in plain text.","_meta":{"description":"The message content in plain text."}},"fromAddress":{"type":"text","required":false,"description":"The address the message was sent from.","_meta":{"description":"The address the message was sent from."}},"fromName":{"type":"text","required":false,"description":"The sender name shown beside their address.","_meta":{"description":"The sender name shown beside their address."}},"toAddresses":{"type":"text","required":false,"description":"The people or addresses receiving this message.","_meta":{"description":"The people or addresses receiving this message."}},"date":{"type":"datetime","required":false,"description":"When the message was sent or received.","_meta":{"description":"When the message was sent or received."}},"isRead":{"type":"boolean","required":true,"default":false,"description":"Whether this message has been marked as read.","_meta":{"description":"Whether this message has been marked as read."}},"isFlagged":{"type":"boolean","required":true,"default":false,"description":"Whether this message is flagged for follow-up.","_meta":{"description":"Whether this message is flagged for follow-up."}},"hasAttachments":{"type":"boolean","required":true,"default":false,"description":"Whether files are attached to this message.","_meta":{"description":"Whether files are attached to this message."}},"size":{"type":"integer","required":true,"default":0,"description":"The size of the message in bytes.","_meta":{"description":"The size of the message in bytes."}},"metadata":{"type":"text","required":false,"description":"Additional details supplied by the messaging connection.","_meta":{"description":"Additional details supplied by the messaging connection."}},"sendStatus":{"type":"text","required":false,"default":"draft","description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here.","_meta":{"description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here."},"enum":["draft","pending","sending","sent","failed","scheduled"]},"sentAt":{"type":"datetime","required":false,"description":"When the message was successfully sent.","_meta":{"description":"When the message was successfully sent."}},"sendError":{"type":"text","required":false,"description":"The reason the latest send attempt failed.","_meta":{"description":"The reason the latest send attempt failed."}},"retryCount":{"type":"integer","required":true,"default":0,"description":"How many times delivery has been retried.","_meta":{"description":"How many times delivery has been retried."}},"maxRetries":{"type":"integer","required":true,"default":3,"description":"The maximum number of delivery retries allowed.","_meta":{"description":"The maximum number of delivery retries allowed."}},"scheduledSendAt":{"type":"datetime","required":false,"description":"When this message is scheduled to be sent.","_meta":{"description":"When this message is scheduled to be sent."}},"inReplyToMessageId":{"type":"foreignKey","required":false,"related":"Message","description":"The earlier message this one replies to.","_meta":{"description":"The earlier message this one replies to."}},"createdAt":{"type":"text","required":false,"description":"When this message was recorded.","_meta":{"description":"When this message was recorded."}},"updatedAt":{"type":"text","required":false,"description":"When this message was last changed.","_meta":{"description":"When this message was last changed."}},"messageId":{"type":"text","required":false,"description":"The email reference assigned by the sender for tracking replies.","_meta":{"description":"The email reference assigned by the sender for tracking replies."}},"inReplyTo":{"type":"text","required":false,"description":"The sender-assigned reference of the email being replied to.","_meta":{"description":"The sender-assigned reference of the email being replied to."}},"ccAddresses":{"type":"text","required":false,"description":"Recipients receiving a visible copy of this email.","_meta":{"description":"Recipients receiving a visible copy of this email."}},"bccAddresses":{"type":"text","required":false,"description":"Recipients receiving a copy without appearing in the visible recipient list.","_meta":{"description":"Recipients receiving a copy without appearing in the visible recipient list."}},"replyToAddress":{"type":"text","required":false,"description":"The address replies should be sent to.","_meta":{"description":"The address replies should be sent to."}},"replyToName":{"type":"text","required":false,"description":"The name associated with the reply address.","_meta":{"description":"The name associated with the reply address."}},"textBody":{"type":"text","required":false,"description":"The plain-text version of the email.","_meta":{"description":"The plain-text version of the email."}},"htmlBody":{"type":"text","required":false,"description":"The formatted version of the email.","_meta":{"description":"The formatted version of the email."}},"folderId":{"type":"text","required":false,"description":"The mailbox folder reference supplied by the email connection.","_meta":{"description":"The mailbox folder reference supplied by the email connection."}},"folderPath":{"type":"text","required":false,"description":"The location of this email within the mailbox folders.","_meta":{"description":"The location of this email within the mailbox folders."}},"labels":{"type":"text","required":false,"description":"Labels applied to this email by the mailbox provider.","_meta":{"description":"Labels applied to this email by the mailbox provider."}},"flags":{"type":"text","required":false,"description":"Mailbox markers such as read, answered, or flagged.","_meta":{"description":"Mailbox markers such as read, answered, or flagged."}},"isAnswered":{"type":"boolean","required":true,"default":false,"description":"Whether this email has been replied to.","_meta":{"description":"Whether this email has been replied to."}},"isDraft":{"type":"boolean","required":true,"default":false,"description":"Whether this email is saved as an unfinished draft.","_meta":{"description":"Whether this email is saved as an unfinished draft."}},"rawMessage":{"type":"text","required":false,"description":"The original email content as received from the mail server.","_meta":{"description":"The original email content as received from the mail server."}},"headers":{"type":"text","required":false,"description":"Delivery and routing details included with the email.","_meta":{"description":"Delivery and routing details included with the email."}}},"methods":{"getToAddresses":{"name":"getToAddresses","async":false,"parameters":[],"returnType":"Array<object>","isStatic":false,"isPublic":true},"setToAddresses":{"name":"setToAddresses","async":false,"parameters":[{"name":"addresses","type":"Array<object>","optional":false,"memberTypes":["string"]}],"returnType":"void","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"data","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"markRead":{"name":"markRead","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"markUnread":{"name":"markUnread","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"toggleFlagged":{"name":"toggleFlagged","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"isUnread":{"name":"isUnread","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getPreview":{"name":"getPreview","async":false,"parameters":[{"name":"maxLength","type":"any","optional":true}],"returnType":"string","isStatic":false,"isPublic":true},"getAccount":{"name":"getAccount","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getEndpoint":{"name":"getEndpoint","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getThreadMessages":{"name":"getThreadMessages","async":true,"parameters":[],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getAttachments":{"name":"getAttachments","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"send":{"name":"send","async":true,"parameters":[{"name":"options","type":"SendEmailOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"retrySend":{"name":"retrySend","async":true,"parameters":[{"name":"options","type":"SendEmailOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"createReply":{"name":"createReply","async":false,"parameters":[{"name":"options","type":"object","optional":true,"memberTypes":["boolean"]}],"returnType":"Email","isStatic":false,"isPublic":true},"createForward":{"name":"createForward","async":false,"parameters":[],"returnType":"Email","isStatic":false,"isPublic":true},"getCcAddresses":{"name":"getCcAddresses","async":false,"parameters":[],"returnType":"Array<object>","isStatic":false,"isPublic":true},"getBccAddresses":{"name":"getBccAddresses","async":false,"parameters":[],"returnType":"Array<object>","isStatic":false,"isPublic":true},"getLabels":{"name":"getLabels","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"setLabels":{"name":"setLabels","async":false,"parameters":[{"name":"labels","type":"string[]","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getFlags":{"name":"getFlags","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"setFlags":{"name":"setFlags","async":false,"parameters":[{"name":"flags","type":"string[]","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getHeaders":{"name":"getHeaders","async":false,"parameters":[],"returnType":"Record<string, string | string[]>","isStatic":false,"isPublic":true},"setHeaders":{"name":"setHeaders","async":false,"parameters":[{"name":"headers","type":"Record<string, string | string[]>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getFolder":{"name":"getFolder","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getThreadEmails":{"name":"getThreadEmails","async":true,"parameters":[],"returnType":"Promise<Email[]>","isStatic":false,"isPublic":true},"getReferences":{"name":"getReferences","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"widenParentExposure":{"api":["create","update","delete"]},"tableName":"messages"},"extends":"Message","exportName":"Email","collectionExportName":"EmailCollection","validationRules":[{"field":"isRead","rule":"required","fieldType":"boolean"},{"field":"isFlagged","rule":"required","fieldType":"boolean"},{"field":"hasAttachments","rule":"required","fieldType":"boolean"},{"field":"size","rule":"required","fieldType":"integer"},{"field":"retryCount","rule":"required","fieldType":"integer"},{"field":"maxRetries","rule":"required","fieldType":"integer"},{"field":"isAnswered","rule":"required","fieldType":"boolean"},{"field":"isDraft","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"messages","ddl":"CREATE TABLE IF NOT EXISTS \\"messages\\" (\\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 \\"account_id\\" UUID,\\n \\"persona_id\\" UUID,\\n \\"endpoint_id\\" UUID,\\n \\"correlation_id\\" TEXT,\\n \\"thread_id\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"body\\" TEXT,\\n \\"from_address\\" TEXT,\\n \\"from_name\\" TEXT,\\n \\"to_addresses\\" TEXT,\\n \\"date\\" TIMESTAMP,\\n \\"is_read\\" BOOLEAN DEFAULT FALSE,\\n \\"is_flagged\\" BOOLEAN DEFAULT FALSE,\\n \\"has_attachments\\" BOOLEAN DEFAULT FALSE,\\n \\"size\\" INTEGER DEFAULT 0,\\n \\"metadata\\" TEXT,\\n \\"send_status\\" TEXT DEFAULT 'draft',\\n \\"sent_at\\" TIMESTAMP,\\n \\"send_error\\" TEXT,\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"max_retries\\" INTEGER DEFAULT 3,\\n \\"scheduled_send_at\\" TIMESTAMP,\\n \\"in_reply_to_message_id\\" UUID,\\n \\"message_id\\" TEXT,\\n \\"in_reply_to\\" TEXT,\\n \\"cc_addresses\\" TEXT,\\n \\"bcc_addresses\\" TEXT,\\n \\"reply_to_address\\" TEXT,\\n \\"reply_to_name\\" TEXT,\\n \\"text_body\\" TEXT,\\n \\"html_body\\" TEXT,\\n \\"folder_id\\" TEXT,\\n \\"folder_path\\" TEXT,\\n \\"labels\\" TEXT,\\n \\"flags\\" TEXT,\\n \\"is_answered\\" BOOLEAN DEFAULT FALSE,\\n \\"is_draft\\" BOOLEAN DEFAULT FALSE,\\n \\"raw_message\\" TEXT,\\n \\"headers\\" TEXT,\\n \\"channel_id\\" TEXT,\\n \\"channel_name\\" TEXT,\\n \\"slack_ts\\" TEXT,\\n \\"slack_thread_ts\\" TEXT,\\n \\"reactions\\" TEXT,\\n \\"is_edited\\" BOOLEAN DEFAULT FALSE,\\n \\"message_type\\" TEXT,\\n \\"blocks\\" TEXT,\\n \\"tweet_id\\" TEXT,\\n \\"retweet_count\\" INTEGER DEFAULT 0,\\n \\"like_count\\" INTEGER DEFAULT 0,\\n \\"reply_count\\" INTEGER DEFAULT 0,\\n \\"is_retweet\\" BOOLEAN DEFAULT FALSE,\\n \\"is_reply\\" BOOLEAN DEFAULT FALSE,\\n \\"media_urls\\" TEXT,\\n \\"hashtags\\" TEXT,\\n \\"mentions\\" 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},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"correlation_id":{"type":"TEXT","notNull":false},"thread_id":{"type":"TEXT","notNull":false},"subject":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"from_address":{"type":"TEXT","notNull":false},"from_name":{"type":"TEXT","notNull":false},"to_addresses":{"type":"TEXT","notNull":false},"date":{"type":"TIMESTAMP","notNull":false},"is_read":{"type":"BOOLEAN","notNull":false,"default":false},"is_flagged":{"type":"BOOLEAN","notNull":false,"default":false},"has_attachments":{"type":"BOOLEAN","notNull":false,"default":false},"size":{"type":"INTEGER","notNull":false,"default":0},"metadata":{"type":"TEXT","notNull":false},"send_status":{"type":"TEXT","notNull":false,"default":"draft"},"sent_at":{"type":"TIMESTAMP","notNull":false},"send_error":{"type":"TEXT","notNull":false},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"max_retries":{"type":"INTEGER","notNull":false,"default":3},"scheduled_send_at":{"type":"TIMESTAMP","notNull":false},"in_reply_to_message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"message_id":{"type":"TEXT","notNull":false},"in_reply_to":{"type":"TEXT","notNull":false},"cc_addresses":{"type":"TEXT","notNull":false},"bcc_addresses":{"type":"TEXT","notNull":false},"reply_to_address":{"type":"TEXT","notNull":false},"reply_to_name":{"type":"TEXT","notNull":false},"text_body":{"type":"TEXT","notNull":false},"html_body":{"type":"TEXT","notNull":false},"folder_id":{"type":"TEXT","notNull":false},"folder_path":{"type":"TEXT","notNull":false},"labels":{"type":"TEXT","notNull":false},"flags":{"type":"TEXT","notNull":false},"is_answered":{"type":"BOOLEAN","notNull":false,"default":false},"is_draft":{"type":"BOOLEAN","notNull":false,"default":false},"raw_message":{"type":"TEXT","notNull":false},"headers":{"type":"TEXT","notNull":false},"channel_id":{"type":"TEXT","notNull":false},"channel_name":{"type":"TEXT","notNull":false},"slack_ts":{"type":"TEXT","notNull":false},"slack_thread_ts":{"type":"TEXT","notNull":false},"reactions":{"type":"TEXT","notNull":false},"is_edited":{"type":"BOOLEAN","notNull":false,"default":false},"message_type":{"type":"TEXT","notNull":false},"blocks":{"type":"TEXT","notNull":false},"tweet_id":{"type":"TEXT","notNull":false},"retweet_count":{"type":"INTEGER","notNull":false,"default":0},"like_count":{"type":"INTEGER","notNull":false,"default":0},"reply_count":{"type":"INTEGER","notNull":false,"default":0},"is_retweet":{"type":"BOOLEAN","notNull":false,"default":false},"is_reply":{"type":"BOOLEAN","notNull":false,"default":false},"media_urls":{"type":"TEXT","notNull":false},"hashtags":{"type":"TEXT","notNull":false},"mentions":{"type":"TEXT","notNull":false}},"indexes":[{"name":"messages_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"messages_meta_type_idx","columns":["_meta_type"]},{"name":"messages_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messages_account_id_idx","columns":["account_id"]},{"name":"messages_persona_id_idx","columns":["persona_id"]},{"name":"messages_endpoint_id_idx","columns":["endpoint_id"]},{"name":"messages_in_reply_to_message_id_idx","columns":["in_reply_to_message_id"]}],"version":"6ff29dd9"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:EmailAccount":{"name":"emailaccount","className":"EmailAccount","qualifiedName":"@happyvertical/smrt-messages:EmailAccount","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/EmailAccount.ts","packageName":"@happyvertical/smrt-messages","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}}},"name":{"type":"text","required":false,"description":"The display name for this connected messaging account.","_meta":{"description":"The display name for this connected messaging account."}},"providerType":{"type":"text","required":false,"description":"The service that connects this account to your application.","_meta":{"description":"The service that connects this account to your application."}},"channelType":{"type":"text","required":false,"description":"The kind of messaging this account supports, such as email or chat.","_meta":{"description":"The kind of messaging this account supports, such as email or chat."}},"credentialSecretId":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"isActive":{"type":"boolean","required":true,"default":true,"description":"Whether this account is enabled for messaging.","_meta":{"description":"Whether this account is enabled for messaging."}},"lastSyncAt":{"type":"datetime","required":false,"description":"When this account last checked for new messages.","_meta":{"description":"When this account last checked for new messages."}},"settings":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"configuration":{"type":"text","required":false,"description":"The public connection settings for this account; credentials are stored separately.","_meta":{"description":"The public connection settings for this account; credentials are stored separately."}},"createdAt":{"type":"text","required":false,"description":"When this account was added.","_meta":{"description":"When this account was added."}},"updatedAt":{"type":"text","required":false,"description":"When this account was last changed.","_meta":{"description":"When this account was last changed."}},"email":{"type":"text","required":false,"description":"The email address associated with this mailbox.","_meta":{"description":"The email address associated with this mailbox."}},"syncIntervalMinutes":{"type":"integer","required":true,"default":60,"description":"The time in minutes between scheduled mailbox checks.","_meta":{"description":"The time in minutes between scheduled mailbox checks."}}},"methods":{"getSettings":{"name":"getSettings","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setSettings":{"name":"setSettings","async":false,"parameters":[{"name":"settings","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getConfiguration":{"name":"getConfiguration","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setConfiguration":{"name":"setConfiguration","async":false,"parameters":[{"name":"configuration","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"activate":{"name":"activate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"deactivate":{"name":"deactivate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setCredentials":{"name":"setCredentials","async":true,"parameters":[{"name":"credentials","type":"Record<string, unknown>","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"createSender":{"name":"createSender","async":true,"parameters":[],"returnType":"Promise<MessageSenderInterface>","isStatic":false,"isPublic":true},"getCredentials":{"name":"getCredentials","async":true,"parameters":[],"returnType":"Promise<Record<string, unknown> | null>","isStatic":false,"isPublic":true},"createClient":{"name":"createClient","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"readIntakeMessage":{"name":"readIntakeMessage","async":true,"parameters":[{"name":"locator","type":"string","optional":false},{"name":"maxBytes","type":"number","optional":false},{"name":"imapIdentity","type":"object","optional":true,"memberTypes":["string","number"]}],"returnType":"any","isStatic":false,"isPublic":true},"syncFrom":{"name":"syncFrom","async":true,"parameters":[{"name":"options","type":"SyncOptions","optional":true}],"returnType":"Promise<SyncResult>","isStatic":false,"isPublic":true},"getFolders":{"name":"getFolders","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getEmails":{"name":"getEmails","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getUnreadCount":{"name":"getUnreadCount","async":true,"parameters":[],"returnType":"Promise<number>","isStatic":false,"isPublic":true},"syncAll":{"name":"syncAll","async":true,"parameters":[{"name":"args","type":"Record<string, unknown>","optional":true}],"returnType":"Promise<Map<string, object>>","isStatic":false,"isPublic":true},"migrateToSecrets":{"name":"migrateToSecrets","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"tableName":"accounts"},"extends":"Account","exportName":"EmailAccount","collectionExportName":"EmailAccountCollection","displayLabelField":"name","validationRules":[{"field":"isActive","rule":"required","fieldType":"boolean"},{"field":"syncIntervalMinutes","rule":"required","fieldType":"integer"}],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:EmailAttachment":{"name":"emailattachment","className":"EmailAttachment","qualifiedName":"@happyvertical/smrt-messages:EmailAttachment","collection":"emailattachments","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/EmailAttachment.ts","packageName":"@happyvertical/smrt-messages","fields":{},"methods":{"getMessage":{"name":"getMessage","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"isImage":{"name":"isImage","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isPdf":{"name":"isPdf","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isInline":{"name":"isInline","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getExtension":{"name":"getExtension","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true},"getFormattedSize":{"name":"getFormattedSize","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true},"hasExternalFile":{"name":"hasExternalFile","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"readContent":{"name":"readContent","async":true,"parameters":[],"returnType":"Promise<Buffer | null>","isStatic":false,"isPublic":true},"getEmail":{"name":"getEmail","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true}},"extends":"Attachment","exportName":"EmailAttachment","collectionExportName":"EmailAttachmentCollection","schema":{"tableName":"email_attachments","ddl":"CREATE TABLE IF NOT EXISTS \\"email_attachments\\" (\\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":"email_attachments_slug_context_idx","columns":["slug","context"],"unique":true},{"name":"email_attachments_created_at_idx","columns":["created_at"]}],"version":"70291c59"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:EmailFolder":{"name":"emailfolder","className":"EmailFolder","qualifiedName":"@happyvertical/smrt-messages:EmailFolder","collection":"emailfolders","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/EmailFolder.ts","packageName":"@happyvertical/smrt-messages","fields":{"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}}},"accountId":{"type":"foreignKey","required":false,"related":"Account"},"name":{"type":"text","required":false},"path":{"type":"text","required":false},"delimiter":{"type":"text","required":false},"specialUse":{"type":"text","required":false},"messageCount":{"type":"integer","required":true,"default":0},"unreadCount":{"type":"integer","required":true,"default":0},"subscribed":{"type":"boolean","required":true,"default":true},"createdAt":{"type":"text","required":false},"updatedAt":{"type":"text","required":false}},"methods":{"getAccount":{"name":"getAccount","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getEmails":{"name":"getEmails","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"getUnreadEmails":{"name":"getUnreadEmails","async":true,"parameters":[{"name":"limit","type":"number","optional":true}],"returnType":"any","isStatic":false,"isPublic":true},"refreshCounts":{"name":"refreshCounts","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"isInbox":{"name":"isInbox","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isSent":{"name":"isSent","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isDrafts":{"name":"isDrafts","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isTrash":{"name":"isTrash","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isSpam":{"name":"isSpam","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"isSystemFolder":{"name":"isSystemFolder","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"subscribe":{"name":"subscribe","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"unsubscribe":{"name":"unsubscribe","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"EmailFolder","collectionExportName":"EmailFolderCollection","displayLabelField":"name","validationRules":[{"field":"messageCount","rule":"required","fieldType":"integer"},{"field":"unreadCount","rule":"required","fieldType":"integer"},{"field":"subscribed","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"email_folders","ddl":"CREATE TABLE IF NOT EXISTS \\"email_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 \\"tenant_id\\" UUID,\\n \\"account_id\\" UUID,\\n \\"name\\" TEXT,\\n \\"path\\" TEXT,\\n \\"delimiter\\" TEXT,\\n \\"special_use\\" TEXT,\\n \\"message_count\\" INTEGER NOT NULL DEFAULT 0,\\n \\"unread_count\\" INTEGER NOT NULL DEFAULT 0,\\n \\"subscribed\\" BOOLEAN NOT NULL DEFAULT TRUE\\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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":false,"unique":false},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"unique":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"name":{"type":"TEXT","notNull":false,"unique":false},"path":{"type":"TEXT","notNull":false,"unique":false},"delimiter":{"type":"TEXT","notNull":false,"unique":false},"special_use":{"type":"TEXT","notNull":false,"unique":false},"message_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"unread_count":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"subscribed":{"type":"BOOLEAN","notNull":true,"unique":false,"default":true}},"indexes":[{"name":"email_folders_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true,"nullsNotDistinct":true},{"name":"email_folders_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"email_folders_account_id_idx","columns":["account_id"]}],"version":"e895818f"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:Message":{"name":"message","className":"Message","qualifiedName":"@happyvertical/smrt-messages:Message","collection":"messages","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/Message.ts","packageName":"@happyvertical/smrt-messages","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}}},"accountId":{"type":"foreignKey","required":false,"related":"Account","description":"The connected account used to receive or send this message.","_meta":{"description":"The connected account used to receive or send this message."}},"personaId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-personas:AgentPersona","description":"The assistant identity associated with this message, when one was used.","_meta":{"description":"The assistant identity associated with this message, when one was used.","nullable":true}},"endpointId":{"type":"foreignKey","required":false,"related":"MessagingEndpoint","description":"The saved destination used to deliver this message.","_meta":{"description":"The saved destination used to deliver this message."}},"correlationId":{"type":"text","required":false,"description":"A tracking reference that connects this message to related activity.","_meta":{"description":"A tracking reference that connects this message to related activity."}},"threadId":{"type":"text","required":false,"description":"The conversation this message belongs to.","_meta":{"description":"The conversation this message belongs to."}},"subject":{"type":"text","required":false,"description":"The subject shown in the message list.","_meta":{"description":"The subject shown in the message list."}},"body":{"type":"text","required":false,"description":"The message content in plain text.","_meta":{"description":"The message content in plain text."}},"fromAddress":{"type":"text","required":false,"description":"The address the message was sent from.","_meta":{"description":"The address the message was sent from."}},"fromName":{"type":"text","required":false,"description":"The sender name shown beside their address.","_meta":{"description":"The sender name shown beside their address."}},"toAddresses":{"type":"text","required":false,"description":"The people or addresses receiving this message.","_meta":{"description":"The people or addresses receiving this message."}},"date":{"type":"datetime","required":false,"description":"When the message was sent or received.","_meta":{"description":"When the message was sent or received."}},"isRead":{"type":"boolean","required":true,"default":false,"description":"Whether this message has been marked as read.","_meta":{"description":"Whether this message has been marked as read."}},"isFlagged":{"type":"boolean","required":true,"default":false,"description":"Whether this message is flagged for follow-up.","_meta":{"description":"Whether this message is flagged for follow-up."}},"hasAttachments":{"type":"boolean","required":true,"default":false,"description":"Whether files are attached to this message.","_meta":{"description":"Whether files are attached to this message."}},"size":{"type":"integer","required":true,"default":0,"description":"The size of the message in bytes.","_meta":{"description":"The size of the message in bytes."}},"metadata":{"type":"text","required":false,"description":"Additional details supplied by the messaging connection.","_meta":{"description":"Additional details supplied by the messaging connection."}},"sendStatus":{"type":"text","required":false,"default":"draft","description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here.","_meta":{"description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here."},"enum":["draft","pending","sending","sent","failed","scheduled"]},"sentAt":{"type":"datetime","required":false,"description":"When the message was successfully sent.","_meta":{"description":"When the message was successfully sent."}},"sendError":{"type":"text","required":false,"description":"The reason the latest send attempt failed.","_meta":{"description":"The reason the latest send attempt failed."}},"retryCount":{"type":"integer","required":true,"default":0,"description":"How many times delivery has been retried.","_meta":{"description":"How many times delivery has been retried."}},"maxRetries":{"type":"integer","required":true,"default":3,"description":"The maximum number of delivery retries allowed.","_meta":{"description":"The maximum number of delivery retries allowed."}},"scheduledSendAt":{"type":"datetime","required":false,"description":"When this message is scheduled to be sent.","_meta":{"description":"When this message is scheduled to be sent."}},"inReplyToMessageId":{"type":"foreignKey","required":false,"related":"Message","description":"The earlier message this one replies to.","_meta":{"description":"The earlier message this one replies to."}},"createdAt":{"type":"text","required":false,"description":"When this message was recorded.","_meta":{"description":"When this message was recorded."}},"updatedAt":{"type":"text","required":false,"description":"When this message was last changed.","_meta":{"description":"When this message was last changed."}}},"methods":{"getToAddresses":{"name":"getToAddresses","async":false,"parameters":[],"returnType":"Array<object>","isStatic":false,"isPublic":true},"setToAddresses":{"name":"setToAddresses","async":false,"parameters":[{"name":"addresses","type":"Array<object>","optional":false,"memberTypes":["string"]}],"returnType":"void","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"data","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"markRead":{"name":"markRead","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"markUnread":{"name":"markUnread","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"toggleFlagged":{"name":"toggleFlagged","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"isUnread":{"name":"isUnread","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getPreview":{"name":"getPreview","async":false,"parameters":[{"name":"maxLength","type":"any","optional":true}],"returnType":"string","isStatic":false,"isPublic":true},"getAccount":{"name":"getAccount","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getEndpoint":{"name":"getEndpoint","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getThreadMessages":{"name":"getThreadMessages","async":true,"parameters":[],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getAttachments":{"name":"getAttachments","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"send":{"name":"send","async":true,"parameters":[{"name":"options","type":"SendMessageOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"retrySend":{"name":"retrySend","async":true,"parameters":[{"name":"options","type":"SendMessageOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"createReply":{"name":"createReply","async":false,"parameters":[{"name":"_options","type":"object","optional":true,"memberTypes":["boolean"]}],"returnType":"Message","isStatic":false,"isPublic":true},"createForward":{"name":"createForward","async":false,"parameters":[],"returnType":"Message","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"tenantScoped":{"mode":"optional"},"conflictColumns":["tenant_id","slug","context","_meta_type"]},"extends":"SmrtObject","exportName":"Message","collectionExportName":"MessageCollection","validationRules":[{"field":"isRead","rule":"required","fieldType":"boolean"},{"field":"isFlagged","rule":"required","fieldType":"boolean"},{"field":"hasAttachments","rule":"required","fieldType":"boolean"},{"field":"size","rule":"required","fieldType":"integer"},{"field":"retryCount","rule":"required","fieldType":"integer"},{"field":"maxRetries","rule":"required","fieldType":"integer"}],"schema":{"tableName":"messages","ddl":"CREATE TABLE IF NOT EXISTS \\"messages\\" (\\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 \\"account_id\\" UUID,\\n \\"persona_id\\" UUID,\\n \\"endpoint_id\\" UUID,\\n \\"correlation_id\\" TEXT,\\n \\"thread_id\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"body\\" TEXT,\\n \\"from_address\\" TEXT,\\n \\"from_name\\" TEXT,\\n \\"to_addresses\\" TEXT,\\n \\"date\\" TIMESTAMP,\\n \\"is_read\\" BOOLEAN DEFAULT FALSE,\\n \\"is_flagged\\" BOOLEAN DEFAULT FALSE,\\n \\"has_attachments\\" BOOLEAN DEFAULT FALSE,\\n \\"size\\" INTEGER DEFAULT 0,\\n \\"metadata\\" TEXT,\\n \\"send_status\\" TEXT DEFAULT 'draft',\\n \\"sent_at\\" TIMESTAMP,\\n \\"send_error\\" TEXT,\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"max_retries\\" INTEGER DEFAULT 3,\\n \\"scheduled_send_at\\" TIMESTAMP,\\n \\"in_reply_to_message_id\\" UUID,\\n \\"message_id\\" TEXT,\\n \\"in_reply_to\\" TEXT,\\n \\"cc_addresses\\" TEXT,\\n \\"bcc_addresses\\" TEXT,\\n \\"reply_to_address\\" TEXT,\\n \\"reply_to_name\\" TEXT,\\n \\"text_body\\" TEXT,\\n \\"html_body\\" TEXT,\\n \\"folder_id\\" TEXT,\\n \\"folder_path\\" TEXT,\\n \\"labels\\" TEXT,\\n \\"flags\\" TEXT,\\n \\"is_answered\\" BOOLEAN DEFAULT FALSE,\\n \\"is_draft\\" BOOLEAN DEFAULT FALSE,\\n \\"raw_message\\" TEXT,\\n \\"headers\\" TEXT,\\n \\"channel_id\\" TEXT,\\n \\"channel_name\\" TEXT,\\n \\"slack_ts\\" TEXT,\\n \\"slack_thread_ts\\" TEXT,\\n \\"reactions\\" TEXT,\\n \\"is_edited\\" BOOLEAN DEFAULT FALSE,\\n \\"message_type\\" TEXT,\\n \\"blocks\\" TEXT,\\n \\"tweet_id\\" TEXT,\\n \\"retweet_count\\" INTEGER DEFAULT 0,\\n \\"like_count\\" INTEGER DEFAULT 0,\\n \\"reply_count\\" INTEGER DEFAULT 0,\\n \\"is_retweet\\" BOOLEAN DEFAULT FALSE,\\n \\"is_reply\\" BOOLEAN DEFAULT FALSE,\\n \\"media_urls\\" TEXT,\\n \\"hashtags\\" TEXT,\\n \\"mentions\\" 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},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"correlation_id":{"type":"TEXT","notNull":false},"thread_id":{"type":"TEXT","notNull":false},"subject":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"from_address":{"type":"TEXT","notNull":false},"from_name":{"type":"TEXT","notNull":false},"to_addresses":{"type":"TEXT","notNull":false},"date":{"type":"TIMESTAMP","notNull":false},"is_read":{"type":"BOOLEAN","notNull":false,"default":false},"is_flagged":{"type":"BOOLEAN","notNull":false,"default":false},"has_attachments":{"type":"BOOLEAN","notNull":false,"default":false},"size":{"type":"INTEGER","notNull":false,"default":0},"metadata":{"type":"TEXT","notNull":false},"send_status":{"type":"TEXT","notNull":false,"default":"draft"},"sent_at":{"type":"TIMESTAMP","notNull":false},"send_error":{"type":"TEXT","notNull":false},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"max_retries":{"type":"INTEGER","notNull":false,"default":3},"scheduled_send_at":{"type":"TIMESTAMP","notNull":false},"in_reply_to_message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"message_id":{"type":"TEXT","notNull":false},"in_reply_to":{"type":"TEXT","notNull":false},"cc_addresses":{"type":"TEXT","notNull":false},"bcc_addresses":{"type":"TEXT","notNull":false},"reply_to_address":{"type":"TEXT","notNull":false},"reply_to_name":{"type":"TEXT","notNull":false},"text_body":{"type":"TEXT","notNull":false},"html_body":{"type":"TEXT","notNull":false},"folder_id":{"type":"TEXT","notNull":false},"folder_path":{"type":"TEXT","notNull":false},"labels":{"type":"TEXT","notNull":false},"flags":{"type":"TEXT","notNull":false},"is_answered":{"type":"BOOLEAN","notNull":false,"default":false},"is_draft":{"type":"BOOLEAN","notNull":false,"default":false},"raw_message":{"type":"TEXT","notNull":false},"headers":{"type":"TEXT","notNull":false},"channel_id":{"type":"TEXT","notNull":false},"channel_name":{"type":"TEXT","notNull":false},"slack_ts":{"type":"TEXT","notNull":false},"slack_thread_ts":{"type":"TEXT","notNull":false},"reactions":{"type":"TEXT","notNull":false},"is_edited":{"type":"BOOLEAN","notNull":false,"default":false},"message_type":{"type":"TEXT","notNull":false},"blocks":{"type":"TEXT","notNull":false},"tweet_id":{"type":"TEXT","notNull":false},"retweet_count":{"type":"INTEGER","notNull":false,"default":0},"like_count":{"type":"INTEGER","notNull":false,"default":0},"reply_count":{"type":"INTEGER","notNull":false,"default":0},"is_retweet":{"type":"BOOLEAN","notNull":false,"default":false},"is_reply":{"type":"BOOLEAN","notNull":false,"default":false},"media_urls":{"type":"TEXT","notNull":false},"hashtags":{"type":"TEXT","notNull":false},"mentions":{"type":"TEXT","notNull":false}},"indexes":[{"name":"messages_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"messages_meta_type_idx","columns":["_meta_type"]},{"name":"messages_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messages_account_id_idx","columns":["account_id"]},{"name":"messages_persona_id_idx","columns":["persona_id"]},{"name":"messages_endpoint_id_idx","columns":["endpoint_id"]},{"name":"messages_in_reply_to_message_id_idx","columns":["in_reply_to_message_id"]}],"version":"c03791c7"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:MessagingEndpoint":{"name":"messagingendpoint","className":"MessagingEndpoint","qualifiedName":"@happyvertical/smrt-messages:MessagingEndpoint","collection":"messagingendpoints","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/MessagingEndpoint.ts","packageName":"@happyvertical/smrt-messages","fields":{"tenantId":{"type":"text","required":true,"_meta":{"sqlType":"UUID","__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":true,"autoPopulate":true,"nullable":false,"mode":"required","field":"tenantId","allowSuperAdminBypass":false}}},"profileId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-profiles:Profile","_meta":{"nullable":true}},"label":{"type":"text","required":true,"_meta":{"required":true}},"channel":{"type":"text","required":true,"default":"email","_meta":{"required":true}},"address":{"type":"text","required":true,"_meta":{"required":true,"sensitive":true},"sensitive":true},"isActive":{"type":"boolean","required":true,"default":true},"verifiedAt":{"type":"datetime","required":false},"createdAt":{"type":"text","required":false},"updatedAt":{"type":"text","required":false}},"methods":{"getAddress":{"name":"getAddress","async":false,"parameters":[],"returnType":"T","isStatic":false,"isPublic":true},"setAddress":{"name":"setAddress","async":false,"parameters":[{"name":"address","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getMaskedAddress":{"name":"getMaskedAddress","async":false,"parameters":[],"returnType":"string","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableName":"messaging_endpoints","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"conflictColumns":["tenant_id","channel","label"],"tenantScoped":{"mode":"required"}},"extends":"SmrtObject","exportName":"MessagingEndpoint","collectionExportName":"MessagingEndpointCollection","displayLabelField":"label","validationRules":[{"field":"label","rule":"required","fieldType":"text"},{"field":"channel","rule":"required","fieldType":"text"},{"field":"address","rule":"required","fieldType":"text"},{"field":"isActive","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"messaging_endpoints","ddl":"CREATE TABLE IF NOT EXISTS \\"messaging_endpoints\\" (\\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 \\"tenant_id\\" UUID NOT NULL,\\n \\"profile_id\\" UUID,\\n \\"label\\" TEXT NOT NULL,\\n \\"channel\\" TEXT NOT NULL DEFAULT 'email',\\n \\"address\\" TEXT NOT NULL,\\n \\"is_active\\" BOOLEAN NOT NULL DEFAULT TRUE,\\n \\"verified_at\\" 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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"profile_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false,"unique":false},"label":{"type":"TEXT","notNull":true,"unique":false},"channel":{"type":"TEXT","notNull":true,"unique":false,"default":"email"},"address":{"type":"TEXT","notNull":true,"unique":false},"is_active":{"type":"BOOLEAN","notNull":true,"unique":false,"default":true},"verified_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"messaging_endpoints_tenant_id_channel_idx","columns":["tenant_id","channel","label"],"unique":true},{"name":"messaging_endpoints_slug_context_idx","columns":["slug","context"]},{"name":"messaging_endpoints_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messaging_endpoints_profile_id_idx","columns":["profile_id"]}],"version":"fca5554d"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:PersonaMessageRoute":{"name":"personamessageroute","className":"PersonaMessageRoute","qualifiedName":"@happyvertical/smrt-messages:PersonaMessageRoute","collection":"personamessageroutes","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/PersonaMessageRoute.ts","packageName":"@happyvertical/smrt-messages","fields":{"tenantId":{"type":"text","required":true,"_meta":{"sqlType":"UUID","__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":true,"autoPopulate":true,"nullable":false,"mode":"required","field":"tenantId","allowSuperAdminBypass":false}}},"personaId":{"type":"crossPackageRef","required":true,"related":"@happyvertical/smrt-personas:AgentPersona"},"accountId":{"type":"foreignKey","required":true,"related":"Account","_meta":{"required":true}},"endpointId":{"type":"foreignKey","required":true,"related":"MessagingEndpoint","_meta":{"required":true}},"purpose":{"type":"text","required":true,"_meta":{"required":true}},"priority":{"type":"integer","required":true,"default":0},"enabled":{"type":"boolean","required":true,"default":true},"createdAt":{"type":"text","required":false},"updatedAt":{"type":"text","required":false}},"methods":{},"decoratorConfig":{"tableName":"persona_message_routes","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"conflictColumns":["tenant_id","persona_id","account_id","endpoint_id","purpose"],"tenantScoped":{"mode":"required"}},"extends":"SmrtObject","exportName":"PersonaMessageRoute","collectionExportName":"PersonaMessageRouteCollection","validationRules":[{"field":"personaId","rule":"required","fieldType":"crossPackageRef"},{"field":"accountId","rule":"required","fieldType":"foreignKey"},{"field":"endpointId","rule":"required","fieldType":"foreignKey"},{"field":"purpose","rule":"required","fieldType":"text"},{"field":"priority","rule":"required","fieldType":"integer"},{"field":"enabled","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"persona_message_routes","ddl":"CREATE TABLE IF NOT EXISTS \\"persona_message_routes\\" (\\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 \\"tenant_id\\" UUID NOT NULL,\\n \\"persona_id\\" UUID NOT NULL,\\n \\"account_id\\" UUID NOT NULL,\\n \\"endpoint_id\\" UUID NOT NULL,\\n \\"purpose\\" TEXT NOT NULL,\\n \\"priority\\" INTEGER NOT NULL DEFAULT 0,\\n \\"enabled\\" BOOLEAN NOT NULL DEFAULT TRUE\\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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":true,"unique":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"CASCADE","onUpdate":"CASCADE"}},"purpose":{"type":"TEXT","notNull":true,"unique":false},"priority":{"type":"INTEGER","notNull":true,"unique":false,"default":0},"enabled":{"type":"BOOLEAN","notNull":true,"unique":false,"default":true}},"indexes":[{"name":"persona_message_routes_tenant_id_persona_id_idx","columns":["tenant_id","persona_id","account_id","endpoint_id","purpose"],"unique":true},{"name":"persona_message_routes_slug_context_idx","columns":["slug","context"]},{"name":"persona_message_routes_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"persona_message_routes_persona_id_idx","columns":["persona_id"]},{"name":"persona_message_routes_account_id_idx","columns":["account_id"]},{"name":"persona_message_routes_endpoint_id_idx","columns":["endpoint_id"]}],"version":"3dc1d5d0"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:SlackAccount":{"name":"slackaccount","className":"SlackAccount","qualifiedName":"@happyvertical/smrt-messages:SlackAccount","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/SlackAccount.ts","packageName":"@happyvertical/smrt-messages","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}}},"name":{"type":"text","required":false,"description":"The display name for this connected messaging account.","_meta":{"description":"The display name for this connected messaging account."}},"providerType":{"type":"text","required":false,"description":"The service that connects this account to your application.","_meta":{"description":"The service that connects this account to your application."}},"channelType":{"type":"text","required":false,"description":"The kind of messaging this account supports, such as email or chat.","_meta":{"description":"The kind of messaging this account supports, such as email or chat."}},"credentialSecretId":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"isActive":{"type":"boolean","required":true,"default":true,"description":"Whether this account is enabled for messaging.","_meta":{"description":"Whether this account is enabled for messaging."}},"lastSyncAt":{"type":"datetime","required":false,"description":"When this account last checked for new messages.","_meta":{"description":"When this account last checked for new messages."}},"settings":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"configuration":{"type":"text","required":false,"description":"The public connection settings for this account; credentials are stored separately.","_meta":{"description":"The public connection settings for this account; credentials are stored separately."}},"createdAt":{"type":"text","required":false,"description":"When this account was added.","_meta":{"description":"When this account was added."}},"updatedAt":{"type":"text","required":false,"description":"When this account was last changed.","_meta":{"description":"When this account was last changed."}},"workspaceId":{"type":"text","required":false,"description":"The identifier of the connected workspace.","_meta":{"description":"The identifier of the connected workspace."}},"workspaceName":{"type":"text","required":false,"description":"The name of the connected workspace.","_meta":{"description":"The name of the connected workspace."}},"botUserId":{"type":"text","required":false,"description":"The bot user your application posts as in this workspace.","_meta":{"description":"The bot user your application posts as in this workspace."}}},"methods":{"getSettings":{"name":"getSettings","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setSettings":{"name":"setSettings","async":false,"parameters":[{"name":"settings","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getConfiguration":{"name":"getConfiguration","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setConfiguration":{"name":"setConfiguration","async":false,"parameters":[{"name":"configuration","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"activate":{"name":"activate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"deactivate":{"name":"deactivate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setCredentials":{"name":"setCredentials","async":true,"parameters":[{"name":"credentials","type":"Record<string, unknown>","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"createSender":{"name":"createSender","async":true,"parameters":[],"returnType":"Promise<MessageSenderInterface>","isStatic":false,"isPublic":true},"getCredentials":{"name":"getCredentials","async":true,"parameters":[],"returnType":"Promise<Record<string, unknown> | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"tableName":"accounts"},"extends":"Account","exportName":"SlackAccount","collectionExportName":"SlackAccountCollection","displayLabelField":"name","validationRules":[{"field":"isActive","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:SlackMessage":{"name":"slackmessage","className":"SlackMessage","qualifiedName":"@happyvertical/smrt-messages:SlackMessage","collection":"messages","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/SlackMessage.ts","packageName":"@happyvertical/smrt-messages","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}}},"accountId":{"type":"foreignKey","required":false,"related":"Account","description":"The connected account used to receive or send this message.","_meta":{"description":"The connected account used to receive or send this message."}},"personaId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-personas:AgentPersona","description":"The assistant identity associated with this message, when one was used.","_meta":{"description":"The assistant identity associated with this message, when one was used.","nullable":true}},"endpointId":{"type":"foreignKey","required":false,"related":"MessagingEndpoint","description":"The saved destination used to deliver this message.","_meta":{"description":"The saved destination used to deliver this message."}},"correlationId":{"type":"text","required":false,"description":"A tracking reference that connects this message to related activity.","_meta":{"description":"A tracking reference that connects this message to related activity."}},"threadId":{"type":"text","required":false,"description":"The conversation this message belongs to.","_meta":{"description":"The conversation this message belongs to."}},"subject":{"type":"text","required":false,"description":"The subject shown in the message list.","_meta":{"description":"The subject shown in the message list."}},"body":{"type":"text","required":false,"description":"The message content in plain text.","_meta":{"description":"The message content in plain text."}},"fromAddress":{"type":"text","required":false,"description":"The address the message was sent from.","_meta":{"description":"The address the message was sent from."}},"fromName":{"type":"text","required":false,"description":"The sender name shown beside their address.","_meta":{"description":"The sender name shown beside their address."}},"toAddresses":{"type":"text","required":false,"description":"The people or addresses receiving this message.","_meta":{"description":"The people or addresses receiving this message."}},"date":{"type":"datetime","required":false,"description":"When the message was sent or received.","_meta":{"description":"When the message was sent or received."}},"isRead":{"type":"boolean","required":true,"default":false,"description":"Whether this message has been marked as read.","_meta":{"description":"Whether this message has been marked as read."}},"isFlagged":{"type":"boolean","required":true,"default":false,"description":"Whether this message is flagged for follow-up.","_meta":{"description":"Whether this message is flagged for follow-up."}},"hasAttachments":{"type":"boolean","required":true,"default":false,"description":"Whether files are attached to this message.","_meta":{"description":"Whether files are attached to this message."}},"size":{"type":"integer","required":true,"default":0,"description":"The size of the message in bytes.","_meta":{"description":"The size of the message in bytes."}},"metadata":{"type":"text","required":false,"description":"Additional details supplied by the messaging connection.","_meta":{"description":"Additional details supplied by the messaging connection."}},"sendStatus":{"type":"text","required":false,"default":"draft","description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here.","_meta":{"description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here."},"enum":["draft","pending","sending","sent","failed","scheduled"]},"sentAt":{"type":"datetime","required":false,"description":"When the message was successfully sent.","_meta":{"description":"When the message was successfully sent."}},"sendError":{"type":"text","required":false,"description":"The reason the latest send attempt failed.","_meta":{"description":"The reason the latest send attempt failed."}},"retryCount":{"type":"integer","required":true,"default":0,"description":"How many times delivery has been retried.","_meta":{"description":"How many times delivery has been retried."}},"maxRetries":{"type":"integer","required":true,"default":3,"description":"The maximum number of delivery retries allowed.","_meta":{"description":"The maximum number of delivery retries allowed."}},"scheduledSendAt":{"type":"datetime","required":false,"description":"When this message is scheduled to be sent.","_meta":{"description":"When this message is scheduled to be sent."}},"inReplyToMessageId":{"type":"foreignKey","required":false,"related":"Message","description":"The earlier message this one replies to.","_meta":{"description":"The earlier message this one replies to."}},"createdAt":{"type":"text","required":false,"description":"When this message was recorded.","_meta":{"description":"When this message was recorded."}},"updatedAt":{"type":"text","required":false,"description":"When this message was last changed.","_meta":{"description":"When this message was last changed."}},"channelId":{"type":"text","required":false,"description":"The identifier of the channel this message is in.","_meta":{"description":"The identifier of the channel this message is in."}},"channelName":{"type":"text","required":false,"description":"The name of the channel this message was posted in.","_meta":{"description":"The name of the channel this message was posted in."}},"slackTs":{"type":"text","required":false,"description":"The workspace's own reference for this message.","_meta":{"description":"The workspace's own reference for this message."}},"slackThreadTs":{"type":"text","required":false,"description":"The workspace's own reference for the thread this message belongs to.","_meta":{"description":"The workspace's own reference for the thread this message belongs to."}},"reactions":{"type":"text","required":false,"description":"The reactions people added to this message.","_meta":{"description":"The reactions people added to this message."}},"isEdited":{"type":"boolean","required":true,"default":false,"description":"Whether this message was edited after posting.","_meta":{"description":"Whether this message was edited after posting."}},"messageType":{"type":"text","required":false,"description":"The kind of message, such as one from a person or a bot.","_meta":{"description":"The kind of message, such as one from a person or a bot."}},"blocks":{"type":"text","required":false,"description":"The rich layout of the message as the workspace stores it.","_meta":{"description":"The rich layout of the message as the workspace stores it."}}},"methods":{"getToAddresses":{"name":"getToAddresses","async":false,"parameters":[],"returnType":"Array<object>","isStatic":false,"isPublic":true},"setToAddresses":{"name":"setToAddresses","async":false,"parameters":[{"name":"addresses","type":"Array<object>","optional":false,"memberTypes":["string"]}],"returnType":"void","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"data","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"markRead":{"name":"markRead","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"markUnread":{"name":"markUnread","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"toggleFlagged":{"name":"toggleFlagged","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"isUnread":{"name":"isUnread","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getPreview":{"name":"getPreview","async":false,"parameters":[{"name":"maxLength","type":"any","optional":true}],"returnType":"string","isStatic":false,"isPublic":true},"getAccount":{"name":"getAccount","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getEndpoint":{"name":"getEndpoint","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getThreadMessages":{"name":"getThreadMessages","async":true,"parameters":[],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getAttachments":{"name":"getAttachments","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"send":{"name":"send","async":true,"parameters":[{"name":"options","type":"SendMessageOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"retrySend":{"name":"retrySend","async":true,"parameters":[{"name":"options","type":"SendMessageOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"createReply":{"name":"createReply","async":false,"parameters":[{"name":"_options","type":"object","optional":true,"memberTypes":["boolean"]}],"returnType":"Message","isStatic":false,"isPublic":true},"createForward":{"name":"createForward","async":false,"parameters":[],"returnType":"Message","isStatic":false,"isPublic":true},"getReactions":{"name":"getReactions","async":false,"parameters":[],"returnType":"Array<object>","isStatic":false,"isPublic":true},"getBlocks":{"name":"getBlocks","async":false,"parameters":[],"returnType":"Record<string, unknown>[]","isStatic":false,"isPublic":true},"isInThread":{"name":"isInThread","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getTotalReactions":{"name":"getTotalReactions","async":false,"parameters":[],"returnType":"number","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"widenParentExposure":{"api":["create"]},"tableName":"messages"},"extends":"Message","exportName":"SlackMessage","collectionExportName":"SlackMessageCollection","validationRules":[{"field":"isRead","rule":"required","fieldType":"boolean"},{"field":"isFlagged","rule":"required","fieldType":"boolean"},{"field":"hasAttachments","rule":"required","fieldType":"boolean"},{"field":"size","rule":"required","fieldType":"integer"},{"field":"retryCount","rule":"required","fieldType":"integer"},{"field":"maxRetries","rule":"required","fieldType":"integer"},{"field":"isEdited","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"messages","ddl":"CREATE TABLE IF NOT EXISTS \\"messages\\" (\\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 \\"account_id\\" UUID,\\n \\"persona_id\\" UUID,\\n \\"endpoint_id\\" UUID,\\n \\"correlation_id\\" TEXT,\\n \\"thread_id\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"body\\" TEXT,\\n \\"from_address\\" TEXT,\\n \\"from_name\\" TEXT,\\n \\"to_addresses\\" TEXT,\\n \\"date\\" TIMESTAMP,\\n \\"is_read\\" BOOLEAN DEFAULT FALSE,\\n \\"is_flagged\\" BOOLEAN DEFAULT FALSE,\\n \\"has_attachments\\" BOOLEAN DEFAULT FALSE,\\n \\"size\\" INTEGER DEFAULT 0,\\n \\"metadata\\" TEXT,\\n \\"send_status\\" TEXT DEFAULT 'draft',\\n \\"sent_at\\" TIMESTAMP,\\n \\"send_error\\" TEXT,\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"max_retries\\" INTEGER DEFAULT 3,\\n \\"scheduled_send_at\\" TIMESTAMP,\\n \\"in_reply_to_message_id\\" UUID,\\n \\"message_id\\" TEXT,\\n \\"in_reply_to\\" TEXT,\\n \\"cc_addresses\\" TEXT,\\n \\"bcc_addresses\\" TEXT,\\n \\"reply_to_address\\" TEXT,\\n \\"reply_to_name\\" TEXT,\\n \\"text_body\\" TEXT,\\n \\"html_body\\" TEXT,\\n \\"folder_id\\" TEXT,\\n \\"folder_path\\" TEXT,\\n \\"labels\\" TEXT,\\n \\"flags\\" TEXT,\\n \\"is_answered\\" BOOLEAN DEFAULT FALSE,\\n \\"is_draft\\" BOOLEAN DEFAULT FALSE,\\n \\"raw_message\\" TEXT,\\n \\"headers\\" TEXT,\\n \\"channel_id\\" TEXT,\\n \\"channel_name\\" TEXT,\\n \\"slack_ts\\" TEXT,\\n \\"slack_thread_ts\\" TEXT,\\n \\"reactions\\" TEXT,\\n \\"is_edited\\" BOOLEAN DEFAULT FALSE,\\n \\"message_type\\" TEXT,\\n \\"blocks\\" TEXT,\\n \\"tweet_id\\" TEXT,\\n \\"retweet_count\\" INTEGER DEFAULT 0,\\n \\"like_count\\" INTEGER DEFAULT 0,\\n \\"reply_count\\" INTEGER DEFAULT 0,\\n \\"is_retweet\\" BOOLEAN DEFAULT FALSE,\\n \\"is_reply\\" BOOLEAN DEFAULT FALSE,\\n \\"media_urls\\" TEXT,\\n \\"hashtags\\" TEXT,\\n \\"mentions\\" 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},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"correlation_id":{"type":"TEXT","notNull":false},"thread_id":{"type":"TEXT","notNull":false},"subject":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"from_address":{"type":"TEXT","notNull":false},"from_name":{"type":"TEXT","notNull":false},"to_addresses":{"type":"TEXT","notNull":false},"date":{"type":"TIMESTAMP","notNull":false},"is_read":{"type":"BOOLEAN","notNull":false,"default":false},"is_flagged":{"type":"BOOLEAN","notNull":false,"default":false},"has_attachments":{"type":"BOOLEAN","notNull":false,"default":false},"size":{"type":"INTEGER","notNull":false,"default":0},"metadata":{"type":"TEXT","notNull":false},"send_status":{"type":"TEXT","notNull":false,"default":"draft"},"sent_at":{"type":"TIMESTAMP","notNull":false},"send_error":{"type":"TEXT","notNull":false},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"max_retries":{"type":"INTEGER","notNull":false,"default":3},"scheduled_send_at":{"type":"TIMESTAMP","notNull":false},"in_reply_to_message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"message_id":{"type":"TEXT","notNull":false},"in_reply_to":{"type":"TEXT","notNull":false},"cc_addresses":{"type":"TEXT","notNull":false},"bcc_addresses":{"type":"TEXT","notNull":false},"reply_to_address":{"type":"TEXT","notNull":false},"reply_to_name":{"type":"TEXT","notNull":false},"text_body":{"type":"TEXT","notNull":false},"html_body":{"type":"TEXT","notNull":false},"folder_id":{"type":"TEXT","notNull":false},"folder_path":{"type":"TEXT","notNull":false},"labels":{"type":"TEXT","notNull":false},"flags":{"type":"TEXT","notNull":false},"is_answered":{"type":"BOOLEAN","notNull":false,"default":false},"is_draft":{"type":"BOOLEAN","notNull":false,"default":false},"raw_message":{"type":"TEXT","notNull":false},"headers":{"type":"TEXT","notNull":false},"channel_id":{"type":"TEXT","notNull":false},"channel_name":{"type":"TEXT","notNull":false},"slack_ts":{"type":"TEXT","notNull":false},"slack_thread_ts":{"type":"TEXT","notNull":false},"reactions":{"type":"TEXT","notNull":false},"is_edited":{"type":"BOOLEAN","notNull":false,"default":false},"message_type":{"type":"TEXT","notNull":false},"blocks":{"type":"TEXT","notNull":false},"tweet_id":{"type":"TEXT","notNull":false},"retweet_count":{"type":"INTEGER","notNull":false,"default":0},"like_count":{"type":"INTEGER","notNull":false,"default":0},"reply_count":{"type":"INTEGER","notNull":false,"default":0},"is_retweet":{"type":"BOOLEAN","notNull":false,"default":false},"is_reply":{"type":"BOOLEAN","notNull":false,"default":false},"media_urls":{"type":"TEXT","notNull":false},"hashtags":{"type":"TEXT","notNull":false},"mentions":{"type":"TEXT","notNull":false}},"indexes":[{"name":"messages_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"messages_meta_type_idx","columns":["_meta_type"]},{"name":"messages_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messages_account_id_idx","columns":["account_id"]},{"name":"messages_persona_id_idx","columns":["persona_id"]},{"name":"messages_endpoint_id_idx","columns":["endpoint_id"]},{"name":"messages_in_reply_to_message_id_idx","columns":["in_reply_to_message_id"]}],"version":"f91bb49a"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:TelegramAccount":{"name":"telegramaccount","className":"TelegramAccount","qualifiedName":"@happyvertical/smrt-messages:TelegramAccount","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/TelegramAccount.ts","packageName":"@happyvertical/smrt-messages","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}}},"name":{"type":"text","required":false,"description":"The display name for this connected messaging account.","_meta":{"description":"The display name for this connected messaging account."}},"providerType":{"type":"text","required":false,"description":"The service that connects this account to your application.","_meta":{"description":"The service that connects this account to your application."}},"channelType":{"type":"text","required":false,"description":"The kind of messaging this account supports, such as email or chat.","_meta":{"description":"The kind of messaging this account supports, such as email or chat."}},"credentialSecretId":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"isActive":{"type":"boolean","required":true,"default":true,"description":"Whether this account is enabled for messaging.","_meta":{"description":"Whether this account is enabled for messaging."}},"lastSyncAt":{"type":"datetime","required":false,"description":"When this account last checked for new messages.","_meta":{"description":"When this account last checked for new messages."}},"settings":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"configuration":{"type":"text","required":false,"description":"The public connection settings for this account; credentials are stored separately.","_meta":{"description":"The public connection settings for this account; credentials are stored separately."}},"createdAt":{"type":"text","required":false,"description":"When this account was added.","_meta":{"description":"When this account was added."}},"updatedAt":{"type":"text","required":false,"description":"When this account was last changed.","_meta":{"description":"When this account was last changed."}}},"methods":{"getSettings":{"name":"getSettings","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setSettings":{"name":"setSettings","async":false,"parameters":[{"name":"settings","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getConfiguration":{"name":"getConfiguration","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setConfiguration":{"name":"setConfiguration","async":false,"parameters":[{"name":"configuration","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"activate":{"name":"activate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"deactivate":{"name":"deactivate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setCredentials":{"name":"setCredentials","async":true,"parameters":[{"name":"credentials","type":"Record<string, unknown>","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"createSender":{"name":"createSender","async":true,"parameters":[],"returnType":"Promise<MessageSenderInterface>","isStatic":false,"isPublic":true},"getCredentials":{"name":"getCredentials","async":true,"parameters":[],"returnType":"Promise<Record<string, unknown> | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"tableName":"accounts"},"extends":"Account","exportName":"TelegramAccount","collectionExportName":"TelegramAccountCollection","displayLabelField":"name","validationRules":[{"field":"isActive","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:Tweet":{"name":"tweet","className":"Tweet","qualifiedName":"@happyvertical/smrt-messages:Tweet","collection":"messages","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/Tweet.ts","packageName":"@happyvertical/smrt-messages","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}}},"accountId":{"type":"foreignKey","required":false,"related":"Account","description":"The connected account used to receive or send this message.","_meta":{"description":"The connected account used to receive or send this message."}},"personaId":{"type":"crossPackageRef","required":false,"related":"@happyvertical/smrt-personas:AgentPersona","description":"The assistant identity associated with this message, when one was used.","_meta":{"description":"The assistant identity associated with this message, when one was used.","nullable":true}},"endpointId":{"type":"foreignKey","required":false,"related":"MessagingEndpoint","description":"The saved destination used to deliver this message.","_meta":{"description":"The saved destination used to deliver this message."}},"correlationId":{"type":"text","required":false,"description":"A tracking reference that connects this message to related activity.","_meta":{"description":"A tracking reference that connects this message to related activity."}},"threadId":{"type":"text","required":false,"description":"The conversation this message belongs to.","_meta":{"description":"The conversation this message belongs to."}},"subject":{"type":"text","required":false,"description":"The subject shown in the message list.","_meta":{"description":"The subject shown in the message list."}},"body":{"type":"text","required":false,"description":"The message content in plain text.","_meta":{"description":"The message content in plain text."}},"fromAddress":{"type":"text","required":false,"description":"The address the message was sent from.","_meta":{"description":"The address the message was sent from."}},"fromName":{"type":"text","required":false,"description":"The sender name shown beside their address.","_meta":{"description":"The sender name shown beside their address."}},"toAddresses":{"type":"text","required":false,"description":"The people or addresses receiving this message.","_meta":{"description":"The people or addresses receiving this message."}},"date":{"type":"datetime","required":false,"description":"When the message was sent or received.","_meta":{"description":"When the message was sent or received."}},"isRead":{"type":"boolean","required":true,"default":false,"description":"Whether this message has been marked as read.","_meta":{"description":"Whether this message has been marked as read."}},"isFlagged":{"type":"boolean","required":true,"default":false,"description":"Whether this message is flagged for follow-up.","_meta":{"description":"Whether this message is flagged for follow-up."}},"hasAttachments":{"type":"boolean","required":true,"default":false,"description":"Whether files are attached to this message.","_meta":{"description":"Whether files are attached to this message."}},"size":{"type":"integer","required":true,"default":0,"description":"The size of the message in bytes.","_meta":{"description":"The size of the message in bytes."}},"metadata":{"type":"text","required":false,"description":"Additional details supplied by the messaging connection.","_meta":{"description":"Additional details supplied by the messaging connection."}},"sendStatus":{"type":"text","required":false,"default":"draft","description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here.","_meta":{"description":"The latest sending state: draft, sending, sent, or failed. Received mail may also show draft here."},"enum":["draft","pending","sending","sent","failed","scheduled"]},"sentAt":{"type":"datetime","required":false,"description":"When the message was successfully sent.","_meta":{"description":"When the message was successfully sent."}},"sendError":{"type":"text","required":false,"description":"The reason the latest send attempt failed.","_meta":{"description":"The reason the latest send attempt failed."}},"retryCount":{"type":"integer","required":true,"default":0,"description":"How many times delivery has been retried.","_meta":{"description":"How many times delivery has been retried."}},"maxRetries":{"type":"integer","required":true,"default":3,"description":"The maximum number of delivery retries allowed.","_meta":{"description":"The maximum number of delivery retries allowed."}},"scheduledSendAt":{"type":"datetime","required":false,"description":"When this message is scheduled to be sent.","_meta":{"description":"When this message is scheduled to be sent."}},"inReplyToMessageId":{"type":"foreignKey","required":false,"related":"Message","description":"The earlier message this one replies to.","_meta":{"description":"The earlier message this one replies to."}},"createdAt":{"type":"text","required":false,"description":"When this message was recorded.","_meta":{"description":"When this message was recorded."}},"updatedAt":{"type":"text","required":false,"description":"When this message was last changed.","_meta":{"description":"When this message was last changed."}},"tweetId":{"type":"text","required":false},"retweetCount":{"type":"integer","required":true,"default":0},"likeCount":{"type":"integer","required":true,"default":0},"replyCount":{"type":"integer","required":true,"default":0},"isRetweet":{"type":"boolean","required":true,"default":false},"isReply":{"type":"boolean","required":true,"default":false},"mediaUrls":{"type":"text","required":false},"hashtags":{"type":"text","required":false},"mentions":{"type":"text","required":false}},"methods":{"getToAddresses":{"name":"getToAddresses","async":false,"parameters":[],"returnType":"Array<object>","isStatic":false,"isPublic":true},"setToAddresses":{"name":"setToAddresses","async":false,"parameters":[{"name":"addresses","type":"Array<object>","optional":false,"memberTypes":["string"]}],"returnType":"void","isStatic":false,"isPublic":true},"getMetadata":{"name":"getMetadata","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setMetadata":{"name":"setMetadata","async":false,"parameters":[{"name":"data","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"markRead":{"name":"markRead","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"markUnread":{"name":"markUnread","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"toggleFlagged":{"name":"toggleFlagged","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"isUnread":{"name":"isUnread","async":false,"parameters":[],"returnType":"boolean","isStatic":false,"isPublic":true},"getPreview":{"name":"getPreview","async":false,"parameters":[{"name":"maxLength","type":"any","optional":true}],"returnType":"string","isStatic":false,"isPublic":true},"getAccount":{"name":"getAccount","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getEndpoint":{"name":"getEndpoint","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"getThreadMessages":{"name":"getThreadMessages","async":true,"parameters":[],"returnType":"Promise<Message[]>","isStatic":false,"isPublic":true},"getAttachments":{"name":"getAttachments","async":true,"parameters":[],"returnType":"any","isStatic":false,"isPublic":true},"send":{"name":"send","async":true,"parameters":[{"name":"options","type":"SendMessageOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"retrySend":{"name":"retrySend","async":true,"parameters":[{"name":"options","type":"SendMessageOptions","optional":true}],"returnType":"Promise<MessageSendResult>","isStatic":false,"isPublic":true},"createReply":{"name":"createReply","async":false,"parameters":[{"name":"_options","type":"object","optional":true,"memberTypes":["boolean"]}],"returnType":"Message","isStatic":false,"isPublic":true},"createForward":{"name":"createForward","async":false,"parameters":[],"returnType":"Message","isStatic":false,"isPublic":true},"getMediaUrls":{"name":"getMediaUrls","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"getHashtags":{"name":"getHashtags","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"getMentions":{"name":"getMentions","async":false,"parameters":[],"returnType":"string[]","isStatic":false,"isPublic":true},"getEngagement":{"name":"getEngagement","async":false,"parameters":[],"returnType":"number","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get","create"]},"mcp":{"include":["list","get"]},"cli":{"skipApiCheck":true},"widenParentExposure":{"api":["create"]},"tableName":"messages"},"extends":"Message","exportName":"Tweet","collectionExportName":"TweetCollection","validationRules":[{"field":"isRead","rule":"required","fieldType":"boolean"},{"field":"isFlagged","rule":"required","fieldType":"boolean"},{"field":"hasAttachments","rule":"required","fieldType":"boolean"},{"field":"size","rule":"required","fieldType":"integer"},{"field":"retryCount","rule":"required","fieldType":"integer"},{"field":"maxRetries","rule":"required","fieldType":"integer"},{"field":"retweetCount","rule":"required","fieldType":"integer"},{"field":"likeCount","rule":"required","fieldType":"integer"},{"field":"replyCount","rule":"required","fieldType":"integer"},{"field":"isRetweet","rule":"required","fieldType":"boolean"},{"field":"isReply","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"messages","ddl":"CREATE TABLE IF NOT EXISTS \\"messages\\" (\\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 \\"account_id\\" UUID,\\n \\"persona_id\\" UUID,\\n \\"endpoint_id\\" UUID,\\n \\"correlation_id\\" TEXT,\\n \\"thread_id\\" TEXT,\\n \\"subject\\" TEXT,\\n \\"body\\" TEXT,\\n \\"from_address\\" TEXT,\\n \\"from_name\\" TEXT,\\n \\"to_addresses\\" TEXT,\\n \\"date\\" TIMESTAMP,\\n \\"is_read\\" BOOLEAN DEFAULT FALSE,\\n \\"is_flagged\\" BOOLEAN DEFAULT FALSE,\\n \\"has_attachments\\" BOOLEAN DEFAULT FALSE,\\n \\"size\\" INTEGER DEFAULT 0,\\n \\"metadata\\" TEXT,\\n \\"send_status\\" TEXT DEFAULT 'draft',\\n \\"sent_at\\" TIMESTAMP,\\n \\"send_error\\" TEXT,\\n \\"retry_count\\" INTEGER DEFAULT 0,\\n \\"max_retries\\" INTEGER DEFAULT 3,\\n \\"scheduled_send_at\\" TIMESTAMP,\\n \\"in_reply_to_message_id\\" UUID,\\n \\"message_id\\" TEXT,\\n \\"in_reply_to\\" TEXT,\\n \\"cc_addresses\\" TEXT,\\n \\"bcc_addresses\\" TEXT,\\n \\"reply_to_address\\" TEXT,\\n \\"reply_to_name\\" TEXT,\\n \\"text_body\\" TEXT,\\n \\"html_body\\" TEXT,\\n \\"folder_id\\" TEXT,\\n \\"folder_path\\" TEXT,\\n \\"labels\\" TEXT,\\n \\"flags\\" TEXT,\\n \\"is_answered\\" BOOLEAN DEFAULT FALSE,\\n \\"is_draft\\" BOOLEAN DEFAULT FALSE,\\n \\"raw_message\\" TEXT,\\n \\"headers\\" TEXT,\\n \\"channel_id\\" TEXT,\\n \\"channel_name\\" TEXT,\\n \\"slack_ts\\" TEXT,\\n \\"slack_thread_ts\\" TEXT,\\n \\"reactions\\" TEXT,\\n \\"is_edited\\" BOOLEAN DEFAULT FALSE,\\n \\"message_type\\" TEXT,\\n \\"blocks\\" TEXT,\\n \\"tweet_id\\" TEXT,\\n \\"retweet_count\\" INTEGER DEFAULT 0,\\n \\"like_count\\" INTEGER DEFAULT 0,\\n \\"reply_count\\" INTEGER DEFAULT 0,\\n \\"is_retweet\\" BOOLEAN DEFAULT FALSE,\\n \\"is_reply\\" BOOLEAN DEFAULT FALSE,\\n \\"media_urls\\" TEXT,\\n \\"hashtags\\" TEXT,\\n \\"mentions\\" 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},"account_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"accounts","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"persona_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":false},"endpoint_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messaging_endpoints","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"correlation_id":{"type":"TEXT","notNull":false},"thread_id":{"type":"TEXT","notNull":false},"subject":{"type":"TEXT","notNull":false},"body":{"type":"TEXT","notNull":false},"from_address":{"type":"TEXT","notNull":false},"from_name":{"type":"TEXT","notNull":false},"to_addresses":{"type":"TEXT","notNull":false},"date":{"type":"TIMESTAMP","notNull":false},"is_read":{"type":"BOOLEAN","notNull":false,"default":false},"is_flagged":{"type":"BOOLEAN","notNull":false,"default":false},"has_attachments":{"type":"BOOLEAN","notNull":false,"default":false},"size":{"type":"INTEGER","notNull":false,"default":0},"metadata":{"type":"TEXT","notNull":false},"send_status":{"type":"TEXT","notNull":false,"default":"draft"},"sent_at":{"type":"TIMESTAMP","notNull":false},"send_error":{"type":"TEXT","notNull":false},"retry_count":{"type":"INTEGER","notNull":false,"default":0},"max_retries":{"type":"INTEGER","notNull":false,"default":3},"scheduled_send_at":{"type":"TIMESTAMP","notNull":false},"in_reply_to_message_id":{"type":"UUID","referenceKind":"foreignKey","notNull":false,"foreignKey":{"table":"messages","column":"id","onDelete":"NO ACTION","onUpdate":"CASCADE"}},"message_id":{"type":"TEXT","notNull":false},"in_reply_to":{"type":"TEXT","notNull":false},"cc_addresses":{"type":"TEXT","notNull":false},"bcc_addresses":{"type":"TEXT","notNull":false},"reply_to_address":{"type":"TEXT","notNull":false},"reply_to_name":{"type":"TEXT","notNull":false},"text_body":{"type":"TEXT","notNull":false},"html_body":{"type":"TEXT","notNull":false},"folder_id":{"type":"TEXT","notNull":false},"folder_path":{"type":"TEXT","notNull":false},"labels":{"type":"TEXT","notNull":false},"flags":{"type":"TEXT","notNull":false},"is_answered":{"type":"BOOLEAN","notNull":false,"default":false},"is_draft":{"type":"BOOLEAN","notNull":false,"default":false},"raw_message":{"type":"TEXT","notNull":false},"headers":{"type":"TEXT","notNull":false},"channel_id":{"type":"TEXT","notNull":false},"channel_name":{"type":"TEXT","notNull":false},"slack_ts":{"type":"TEXT","notNull":false},"slack_thread_ts":{"type":"TEXT","notNull":false},"reactions":{"type":"TEXT","notNull":false},"is_edited":{"type":"BOOLEAN","notNull":false,"default":false},"message_type":{"type":"TEXT","notNull":false},"blocks":{"type":"TEXT","notNull":false},"tweet_id":{"type":"TEXT","notNull":false},"retweet_count":{"type":"INTEGER","notNull":false,"default":0},"like_count":{"type":"INTEGER","notNull":false,"default":0},"reply_count":{"type":"INTEGER","notNull":false,"default":0},"is_retweet":{"type":"BOOLEAN","notNull":false,"default":false},"is_reply":{"type":"BOOLEAN","notNull":false,"default":false},"media_urls":{"type":"TEXT","notNull":false},"hashtags":{"type":"TEXT","notNull":false},"mentions":{"type":"TEXT","notNull":false}},"indexes":[{"name":"messages_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"messages_meta_type_idx","columns":["_meta_type"]},{"name":"messages_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"messages_account_id_idx","columns":["account_id"]},{"name":"messages_persona_id_idx","columns":["persona_id"]},{"name":"messages_endpoint_id_idx","columns":["endpoint_id"]},{"name":"messages_in_reply_to_message_id_idx","columns":["in_reply_to_message_id"]}],"version":"ffd4cea3"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:TwitterAccount":{"name":"twitteraccount","className":"TwitterAccount","qualifiedName":"@happyvertical/smrt-messages:TwitterAccount","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/TwitterAccount.ts","packageName":"@happyvertical/smrt-messages","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}}},"name":{"type":"text","required":false,"description":"The display name for this connected messaging account.","_meta":{"description":"The display name for this connected messaging account."}},"providerType":{"type":"text","required":false,"description":"The service that connects this account to your application.","_meta":{"description":"The service that connects this account to your application."}},"channelType":{"type":"text","required":false,"description":"The kind of messaging this account supports, such as email or chat.","_meta":{"description":"The kind of messaging this account supports, such as email or chat."}},"credentialSecretId":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"isActive":{"type":"boolean","required":true,"default":true,"description":"Whether this account is enabled for messaging.","_meta":{"description":"Whether this account is enabled for messaging."}},"lastSyncAt":{"type":"datetime","required":false,"description":"When this account last checked for new messages.","_meta":{"description":"When this account last checked for new messages."}},"settings":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"configuration":{"type":"text","required":false,"description":"The public connection settings for this account; credentials are stored separately.","_meta":{"description":"The public connection settings for this account; credentials are stored separately."}},"createdAt":{"type":"text","required":false,"description":"When this account was added.","_meta":{"description":"When this account was added."}},"updatedAt":{"type":"text","required":false,"description":"When this account was last changed.","_meta":{"description":"When this account was last changed."}},"handle":{"type":"text","required":false},"twitterUserId":{"type":"text","required":false}},"methods":{"getSettings":{"name":"getSettings","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setSettings":{"name":"setSettings","async":false,"parameters":[{"name":"settings","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getConfiguration":{"name":"getConfiguration","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setConfiguration":{"name":"setConfiguration","async":false,"parameters":[{"name":"configuration","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"activate":{"name":"activate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"deactivate":{"name":"deactivate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setCredentials":{"name":"setCredentials","async":true,"parameters":[{"name":"credentials","type":"Record<string, unknown>","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"createSender":{"name":"createSender","async":true,"parameters":[],"returnType":"Promise<MessageSenderInterface>","isStatic":false,"isPublic":true},"getCredentials":{"name":"getCredentials","async":true,"parameters":[],"returnType":"Promise<Record<string, unknown> | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"tableName":"accounts"},"extends":"Account","exportName":"TwitterAccount","collectionExportName":"TwitterAccountCollection","displayLabelField":"name","validationRules":[{"field":"isActive","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:UserNotification":{"name":"usernotification","className":"UserNotification","qualifiedName":"@happyvertical/smrt-messages:UserNotification","collection":"usernotifications","description":"One in-app notification for one person, with its own read state.","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/UserNotification.ts","packageName":"@happyvertical/smrt-messages","fields":{"tenantId":{"type":"text","required":true,"_meta":{"sqlType":"UUID","__tenancy":{"isTenantIdField":true,"autoFilter":true,"required":true,"autoPopulate":true,"nullable":false,"mode":"required","field":"tenantId","allowSuperAdminBypass":false}}},"recipientUserId":{"type":"crossPackageRef","required":true,"related":"@happyvertical/smrt-users:User"},"kind":{"type":"text","required":true,"_meta":{"required":true}},"title":{"type":"text","required":true,"_meta":{"required":true}},"body":{"type":"text","required":false},"href":{"type":"text","required":false},"severity":{"type":"text","required":false,"default":"info","enum":["info","success","warning","error"]},"sourceRef":{"type":"text","required":true,"_meta":{"required":true}},"occurredAt":{"type":"text","required":false},"readAt":{"type":"datetime","required":false},"dismissedAt":{"type":"datetime","required":false}},"methods":{},"decoratorConfig":{"tableName":"user_notifications","api":false,"mcp":false,"cli":false,"conflictColumns":["tenant_id","recipient_user_id","source_ref"],"indexes":[{"name":"user_notifications_recipient_occurred_idx","columns":["tenantId","recipientUserId","occurredAt"]}],"tenantScoped":{"mode":"required"}},"extends":"SmrtObject","exportName":"UserNotification","collectionExportName":"UserNotificationCollection","displayLabelField":"title","validationRules":[{"field":"recipientUserId","rule":"required","fieldType":"crossPackageRef"},{"field":"kind","rule":"required","fieldType":"text"},{"field":"title","rule":"required","fieldType":"text"},{"field":"sourceRef","rule":"required","fieldType":"text"}],"schema":{"tableName":"user_notifications","ddl":"CREATE TABLE IF NOT EXISTS \\"user_notifications\\" (\\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 \\"tenant_id\\" UUID NOT NULL,\\n \\"recipient_user_id\\" UUID NOT NULL,\\n \\"kind\\" TEXT NOT NULL,\\n \\"title\\" TEXT NOT NULL,\\n \\"body\\" TEXT,\\n \\"href\\" TEXT,\\n \\"severity\\" TEXT DEFAULT 'info',\\n \\"source_ref\\" TEXT NOT NULL,\\n \\"occurred_at\\" TEXT,\\n \\"read_at\\" TIMESTAMP,\\n \\"dismissed_at\\" 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"},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false},"recipient_user_id":{"type":"UUID","referenceKind":"crossPackageRef","notNull":true,"unique":false},"kind":{"type":"TEXT","notNull":true,"unique":false},"title":{"type":"TEXT","notNull":true,"unique":false},"body":{"type":"TEXT","notNull":false,"unique":false},"href":{"type":"TEXT","notNull":false,"unique":false},"severity":{"type":"TEXT","notNull":false,"unique":false,"default":"info"},"source_ref":{"type":"TEXT","notNull":true,"unique":false},"occurred_at":{"type":"TEXT","notNull":false,"unique":false},"read_at":{"type":"TIMESTAMP","notNull":false,"unique":false},"dismissed_at":{"type":"TIMESTAMP","notNull":false,"unique":false}},"indexes":[{"name":"user_notifications_tenant_id_recipient_user_id_idx","columns":["tenant_id","recipient_user_id","source_ref"],"unique":true},{"name":"user_notifications_slug_context_idx","columns":["slug","context"]},{"name":"user_notifications_recipient_occurred_idx","columns":["tenant_id","recipient_user_id","occurred_at"]},{"name":"user_notifications_tenant_id_created_at_idx","columns":["tenant_id","created_at"]},{"name":"user_notifications_recipient_user_id_idx","columns":["recipient_user_id"]}],"version":"0e68a388"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:Whitelist":{"name":"whitelist","className":"Whitelist","qualifiedName":"@happyvertical/smrt-messages:Whitelist","collection":"whitelists","description":"Allow-only entries for email filtering","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/Whitelist.ts","packageName":"@happyvertical/smrt-messages","fields":{"pattern":{"type":"text","required":false,"default":""},"type":{"type":"text","required":false,"default":"email","enum":["email","domain","regex"]},"category":{"type":"text","required":false},"description":{"type":"text","required":false,"default":""},"tenantId":{"type":"text","required":true,"_meta":{"generated":true,"source":"tenantScoped_decorator","sqlType":"UUID","__tenancy":{"isTenantIdField":true,"mode":"required","field":"tenantId","autoFilter":true,"autoPopulate":true,"allowSuperAdminBypass":false}}}},"methods":{"matches":{"name":"matches","async":false,"parameters":[{"name":"email","type":"string","optional":false}],"returnType":"boolean","isStatic":false,"isPublic":true}},"decoratorConfig":{"api":{"include":["list","get","create","update","delete"]},"cli":{"skipApiCheck":true},"tenantScoped":true,"conflictColumns":["tenant_id","slug","context"]},"extends":"SmrtObject","exportName":"Whitelist","collectionExportName":"WhitelistCollection","validationRules":[],"schema":{"tableName":"whitelists","ddl":"CREATE TABLE IF NOT EXISTS \\"whitelists\\" (\\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 \\"pattern\\" TEXT DEFAULT '',\\n \\"type\\" TEXT DEFAULT 'email',\\n \\"category\\" TEXT,\\n \\"description\\" TEXT DEFAULT '',\\n \\"tenant_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"},"pattern":{"type":"TEXT","notNull":false,"unique":false,"default":""},"type":{"type":"TEXT","notNull":false,"unique":false,"default":"email"},"category":{"type":"TEXT","notNull":false,"unique":false},"description":{"type":"TEXT","notNull":false,"unique":false,"default":""},"tenant_id":{"type":"UUID","referenceKind":"tenantId","notNull":true,"unique":false}},"indexes":[{"name":"whitelists_slug_context_idx","columns":["tenant_id","slug","context"],"unique":true},{"name":"whitelists_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"40a655a1"},"importPath":"@happyvertical/smrt-messages"},"@happyvertical/smrt-messages:ZulipAccount":{"name":"zulipaccount","className":"ZulipAccount","qualifiedName":"@happyvertical/smrt-messages:ZulipAccount","collection":"accounts","filePath":"/home/runner/work/smrt/smrt/packages/messages/src/models/ZulipAccount.ts","packageName":"@happyvertical/smrt-messages","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}}},"name":{"type":"text","required":false,"description":"The display name for this connected messaging account.","_meta":{"description":"The display name for this connected messaging account."}},"providerType":{"type":"text","required":false,"description":"The service that connects this account to your application.","_meta":{"description":"The service that connects this account to your application."}},"channelType":{"type":"text","required":false,"description":"The kind of messaging this account supports, such as email or chat.","_meta":{"description":"The kind of messaging this account supports, such as email or chat."}},"credentialSecretId":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"isActive":{"type":"boolean","required":true,"default":true,"description":"Whether this account is enabled for messaging.","_meta":{"description":"Whether this account is enabled for messaging."}},"lastSyncAt":{"type":"datetime","required":false,"description":"When this account last checked for new messages.","_meta":{"description":"When this account last checked for new messages."}},"settings":{"type":"text","required":false,"_meta":{"sensitive":true,"readonly":true},"sensitive":true,"readonly":true},"configuration":{"type":"text","required":false,"description":"The public connection settings for this account; credentials are stored separately.","_meta":{"description":"The public connection settings for this account; credentials are stored separately."}},"createdAt":{"type":"text","required":false,"description":"When this account was added.","_meta":{"description":"When this account was added."}},"updatedAt":{"type":"text","required":false,"description":"When this account was last changed.","_meta":{"description":"When this account was last changed."}}},"methods":{"getSettings":{"name":"getSettings","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setSettings":{"name":"setSettings","async":false,"parameters":[{"name":"settings","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"getConfiguration":{"name":"getConfiguration","async":false,"parameters":[],"returnType":"Record<string, unknown>","isStatic":false,"isPublic":true},"setConfiguration":{"name":"setConfiguration","async":false,"parameters":[{"name":"configuration","type":"Record<string, unknown>","optional":false}],"returnType":"void","isStatic":false,"isPublic":true},"activate":{"name":"activate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"deactivate":{"name":"deactivate","async":true,"parameters":[],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"setCredentials":{"name":"setCredentials","async":true,"parameters":[{"name":"credentials","type":"Record<string, unknown>","optional":false},{"name":"options","type":"object","optional":true,"memberTypes":["string"]}],"returnType":"Promise<void>","isStatic":false,"isPublic":true},"createSender":{"name":"createSender","async":true,"parameters":[],"returnType":"Promise<MessageSenderInterface>","isStatic":false,"isPublic":true},"getCredentials":{"name":"getCredentials","async":true,"parameters":[],"returnType":"Promise<Record<string, unknown> | null>","isStatic":false,"isPublic":true}},"decoratorConfig":{"tableStrategy":"sti","api":{"include":["list","get"]},"mcp":{"include":["list","get"]},"cli":{"include":["list","get"]},"tableName":"accounts"},"extends":"Account","exportName":"ZulipAccount","collectionExportName":"ZulipAccountCollection","displayLabelField":"name","validationRules":[{"field":"isActive","rule":"required","fieldType":"boolean"}],"schema":{"tableName":"accounts","ddl":"CREATE TABLE IF NOT EXISTS \\"accounts\\" (\\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 \\"provider_type\\" TEXT,\\n \\"channel_type\\" TEXT,\\n \\"credential_secret_id\\" TEXT,\\n \\"is_active\\" BOOLEAN DEFAULT TRUE,\\n \\"last_sync_at\\" TIMESTAMP,\\n \\"settings\\" TEXT,\\n \\"configuration\\" TEXT,\\n \\"email\\" TEXT,\\n \\"sync_interval_minutes\\" INTEGER DEFAULT 60,\\n \\"workspace_id\\" TEXT,\\n \\"workspace_name\\" TEXT,\\n \\"bot_user_id\\" TEXT,\\n \\"handle\\" TEXT,\\n \\"twitter_user_id\\" 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},"provider_type":{"type":"TEXT","notNull":false},"channel_type":{"type":"TEXT","notNull":false},"credential_secret_id":{"type":"TEXT","notNull":false},"is_active":{"type":"BOOLEAN","notNull":false,"default":true},"last_sync_at":{"type":"TIMESTAMP","notNull":false},"settings":{"type":"TEXT","notNull":false},"configuration":{"type":"TEXT","notNull":false},"email":{"type":"TEXT","notNull":false},"sync_interval_minutes":{"type":"INTEGER","notNull":false,"default":60},"workspace_id":{"type":"TEXT","notNull":false},"workspace_name":{"type":"TEXT","notNull":false},"bot_user_id":{"type":"TEXT","notNull":false},"handle":{"type":"TEXT","notNull":false},"twitter_user_id":{"type":"TEXT","notNull":false}},"indexes":[{"name":"accounts_slug_context_meta_type_idx","columns":["tenant_id","slug","context","_meta_type"],"unique":true,"nullsNotDistinct":true},{"name":"accounts_meta_type_idx","columns":["_meta_type"]},{"name":"accounts_tenant_id_created_at_idx","columns":["tenant_id","created_at"]}],"version":"3854ea98"},"importPath":"@happyvertical/smrt-messages"}},"moduleType":"smrt","recipes":[{"id":"messages.mailbox","className":"MailboxRecipe","label":"Mailbox","summary":"Read and compose email from your connected accounts.","synonyms":["email","inbox","mail"],"models":["@happyvertical/smrt-messages:Email","@happyvertical/smrt-messages:EmailAccount"],"nav":[{"label":"Mailbox","model":"@happyvertical/smrt-messages:Email","icon":"folder","description":"Read email from your connected accounts.","key":"mailbox","noun":"email"},{"label":"Failed sends","model":"@happyvertical/smrt-messages:Email","icon":"fileText","description":"Review email whose last send attempt failed.","key":"failed-sends","noun":"email","filter":{"field":"sendStatus","value":"failed"}}],"requires":[],"group":{"id":"messages","label":"Messaging","summary":"Choose email and personal updates independently."},"section":{"id":"messages","label":"Messaging","icon":"folder","description":"Read email and keep up with updates addressed to you."},"options":{"@happyvertical/smrt-messages:Email":{"fields":{"created_at":{"help":"When this email was first recorded."},"updated_at":{"help":"When this email record was last changed."}}},"@happyvertical/smrt-messages:EmailAccount":{"fields":{"created_at":{"help":"When this mailbox connection was first recorded."},"updated_at":{"help":"When this mailbox connection was last changed."}}}},"help":{"markdown":"## Your mailbox\\nRead messages, open a conversation, or compose an email using a connected account.\\nChoose the sender account, add recipients, and check the subject and message before sending.\\n\\n## Failed sends\\nUse Failed sends to review email whose last send attempt failed. Returning to the mailbox shows all email again.\\nCheck the failure and sender connection before retrying through your application. This view does not resend email automatically.\\n\\n## Preview\\nThe playground uses fictional messages. Sending and saving are mocked and never contact a mail server.\\n\\n## Connect an account\\nYour application administrator connects an authorized email provider on the server. Real sending and mailbox synchronization require that connection; a preview does not verify delivery.\\n","fieldRefs":[]},"surfaces":[{"kind":"route","path":"/messages/mailbox","export":"@happyvertical/smrt-messages/svelte#MessageList","label":"Mailbox"},{"kind":"playground","export":"@happyvertical/smrt-messages/svelte#MailboxDemo","label":"Mailbox with mocked sending"}],"providers":[{"id":"email-inbox","kind":"email","options":["imap","pop3","gmail"],"required":true},{"id":"email-send","kind":"email","options":["smtp","gmail"],"required":false}],"runtime":"both","demoSeed":{"data":{"accounts":[{"id":"demo-account","name":"Demo Inbox","providerType":"email","email":"you@example.com","isActive":true}],"messages":[{"id":"demo-welcome","type":"email","accountId":"demo-account","subject":"Welcome to your mailbox","body":"Fictional mail. Sending is mocked; nothing leaves this browser.","senderName":"Demo colleague","senderAddress":"colleague@example.com","recipientAddresses":[{"address":"you@example.com"}],"date":"2026-01-01T12:00:00Z","isRead":false,"isFlagged":false,"hasAttachments":false}]}},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-profiles, @happyvertical/smrt-secrets, @happyvertical/smrt-tenancy, @happyvertical/smrt-users, which do not build for a browser (#3617, #3624, #3626, #3627)."]}},{"id":"messages.notifications","className":"NotificationsRecipe","label":"Notifications","summary":"See updates addressed to you and mark them read.","synonyms":["alerts","notification bell"],"models":["@happyvertical/smrt-messages:UserNotification"],"nav":[],"requires":[],"group":{"id":"messages","label":"Messaging","summary":"Choose email and personal updates independently."},"section":{"id":"messages","label":"Messaging","icon":"folder","description":"Read email and keep up with updates addressed to you."},"help":{"markdown":"## Notifications\\nOpen the notification bell to see updates addressed to you. Unread updates have a visible marker.\\nChoose Mark read for one update or Mark all read for every unread update in your authorized accounts.\\nFollow a notification link to open its related record when one is available.\\n\\n## Availability\\nNotifications are scoped to the signed-in person. Your application connects the notification provider and may enable live updates. If loading fails, try again after the connection returns.\\n","fieldRefs":[]},"surfaces":[{"kind":"shell-widget","slot":"header.end","export":"@happyvertical/smrt-svelte/notifications#NotificationBell","label":"Notifications"}],"providers":[{"id":"notifications","kind":"notifications","options":["user-notification-service"],"required":true}],"runtime":"both","demoSeed":{"data":{"items":[{"id":"demo-notification","title":"You were mentioned","body":"A fictional update for the demo user.","occurredAt":"2026-01-01T12:00:00Z","severity":"info","readAt":null}]}},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-profiles, @happyvertical/smrt-secrets, @happyvertical/smrt-tenancy, @happyvertical/smrt-users, which do not build for a browser (#3617, #3624, #3626, #3627)."]}},{"id":"messages.slack","className":"SlackRecipe","label":"Slack","summary":"Read Slack messages from your connected workspaces.","synonyms":["slack","slack messages","slack channels","workspace chat","team chat"],"models":["@happyvertical/smrt-messages:SlackMessage","@happyvertical/smrt-messages:SlackAccount"],"nav":[{"label":"Slack messages","model":"@happyvertical/smrt-messages:SlackMessage","icon":"folder","description":"Read messages from your connected workspaces by channel.","key":"slack-messages","noun":"message"},{"label":"Slack workspaces","model":"@happyvertical/smrt-messages:SlackAccount","icon":"users","description":"The workspaces your application is connected to.","noun":"workspace"}],"requires":[],"group":{"id":"messages","label":"Messaging","summary":"Choose email and personal updates independently."},"section":{"id":"messages","label":"Messaging","icon":"folder","description":"Read email and keep up with updates addressed to you."},"options":{"@happyvertical/smrt-messages:SlackMessage":{"fields":{"channelName":{"label":"Channel","order":1},"body":{"label":"Message","order":2},"threadId":{"label":"Thread","order":3},"sendStatus":{"label":"Sent status","order":4},"accountId":{"label":"Workspace","order":5},"fromName":{"label":"From","visibility":"advanced"},"fromAddress":{"visibility":"advanced"},"toAddresses":{"visibility":"advanced"},"subject":{"visibility":"advanced"},"date":{"visibility":"advanced"},"isRead":{"visibility":"advanced"},"isFlagged":{"visibility":"advanced"},"isEdited":{"label":"Edited","visibility":"advanced"},"messageType":{"label":"Message kind","visibility":"advanced"},"reactions":{"visibility":"advanced"},"hasAttachments":{"visibility":"advanced"},"channelId":{"visibility":"advanced"},"sentAt":{"visibility":"advanced"},"sendError":{"visibility":"advanced"},"scheduledSendAt":{"visibility":"advanced"},"inReplyToMessageId":{"label":"Replying to","visibility":"advanced"},"personaId":{"visibility":"advanced"},"endpointId":{"visibility":"advanced"},"retryCount":{"visibility":"hidden"},"maxRetries":{"visibility":"hidden"},"size":{"visibility":"hidden"},"correlationId":{"visibility":"hidden"},"slackTs":{"visibility":"hidden"},"slackThreadTs":{"visibility":"hidden"},"blocks":{"visibility":"hidden"},"metadata":{"visibility":"hidden"},"tenantId":{"visibility":"hidden"},"created_at":{"help":"When this message was first recorded."},"updated_at":{"help":"When this message record was last changed."}}},"@happyvertical/smrt-messages:SlackAccount":{"fields":{"name":{"order":1},"workspaceName":{"label":"Workspace","order":2},"isActive":{"label":"Enabled","order":3},"lastSyncAt":{"label":"Last checked","order":4},"workspaceId":{"visibility":"advanced"},"credentialSecretId":{"visibility":"hidden"},"settings":{"visibility":"hidden"},"botUserId":{"label":"Bot user","visibility":"advanced"},"providerType":{"visibility":"advanced"},"channelType":{"visibility":"advanced"},"configuration":{"visibility":"advanced"},"tenantId":{"visibility":"hidden"},"created_at":{"help":"When this workspace connection was first recorded."},"updated_at":{"help":"When this workspace connection was last changed."}}}},"help":{"markdown":"## Overview\\n\\nSlack shows the messages from the workspaces your application is connected to,\\nin one place beside your email. Each message keeps the channel it was posted\\nin, the thread it belongs to, the reactions people added and whether it was\\nedited, so you can catch up on a conversation without opening Slack.\\n\\n## Tasks\\n\\nWorkspaces are connected by your application administrator on the server.\\nMessages arrive from those connected workspaces; here you read them and see\\nwhere each one stands.\\n\\n### Find a message in a channel\\n\\n1. Open Slack messages.\\n2. Look at the **{field:SlackMessage.channelName}** to find the channel you want.\\n3. Open a message to read the **{field:SlackMessage.body}** and see who it is from.\\n\\n### Follow a thread\\n\\n1. Open a message that is part of a conversation.\\n2. Use its **{field:SlackMessage.threadId}** to find the other messages in the same thread.\\n3. Read them oldest first; the **{field:SlackMessage.reactions}** show how people responded.\\n\\n### See whether a message was changed\\n\\n1. Open the message.\\n2. Check **{field:SlackMessage.isEdited}** to see whether it was edited after it was posted.\\n\\n### Draft a message\\n\\n1. Open Slack messages and choose **New**.\\n2. Type the **{field:SlackMessage.channelName}** it is for and the **{field:SlackMessage.body}**.\\n3. Save. This records the draft; your application sends it through the connected workspace, and the **{field:SlackMessage.sendStatus}** shows where it stands.\\n\\n### See which workspaces are connected\\n\\n1. Open Slack workspaces.\\n2. Look at the **{field:SlackAccount.workspaceName}** and whether it is **{field:SlackAccount.isActive}**.\\n3. Check **{field:SlackAccount.lastSyncAt}** to see when messages were last collected. Connecting or changing a workspace is done by your application administrator, not here.\\n","fieldRefs":["SlackAccount.isActive","SlackAccount.lastSyncAt","SlackAccount.workspaceName","SlackMessage.body","SlackMessage.channelName","SlackMessage.isEdited","SlackMessage.reactions","SlackMessage.sendStatus","SlackMessage.threadId"]},"demo":{"mode":"server","reasons":["Needs a server because its package depends on @happyvertical/smrt-profiles, @happyvertical/smrt-secrets, @happyvertical/smrt-tenancy, @happyvertical/smrt-users, which do not build for a browser (#3617, #3624, #3626, #3627)."]}}],"smrtDependencies":["@happyvertical/smrt-core","@happyvertical/smrt-ledgers","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"],"browser":{"status":"server-only","issues":["#3617","#3624","#3626","#3627"],"via":["@happyvertical/smrt-profiles","@happyvertical/smrt-secrets","@happyvertical/smrt-tenancy","@happyvertical/smrt-users"]},"stampsConstructors":true}`));
|
|
4
|
-
//#endregion
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=__smrt-register__-C-M0NcUX.js.map
|