@happyvertical/smrt-sites 0.40.70 → 0.41.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/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ObjectRegistry, SmrtCollection, SmrtObject, foreignKey, smrt } from "@happyvertical/smrt-core";
2
2
  import { TenantScoped, tenantId } from "@happyvertical/smrt-tenancy";
3
3
  //#region src/__smrt-register__.ts
4
- ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-sites\",\"packageVersion\":\"0.40.70\",\"objects\":{\"@happyvertical/smrt-sites:SiteAgentBindingCollection\":{\"name\":\"siteagentbindingcollection\",\"className\":\"SiteAgentBindingCollection\",\"qualifiedName\":\"@happyvertical/smrt-sites:SiteAgentBindingCollection\",\"collection\":\"siteagentbindings\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteAgentBindingCollection.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"fields\":{},\"methods\":{\"findBySite\":{\"name\":\"findBySite\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding[]>\",\"isStatic\":false,\"isPublic\":true},\"findByAgent\":{\"name\":\"findByAgent\",\"async\":true,\"parameters\":[{\"name\":\"agentClass\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding[]>\",\"isStatic\":false,\"isPublic\":true},\"findEnabled\":{\"name\":\"findEnabled\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySiteAndAgent\":{\"name\":\"findBySiteAndAgent\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false},{\"name\":\"agentClass\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding | null>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"site_agent_bindings\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"SiteAgentBinding\",\"exportName\":\"SiteAgentBindingCollection\",\"collectionExportName\":\"SiteAgentBindingCollectionCollection\",\"schema\":{\"tableName\":\"site_agent_bindings\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"site_agent_bindings\\\" (\\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\":\"site_agent_bindings_id_idx\",\"columns\":[\"id\"]},{\"name\":\"site_agent_bindings_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"b7f2e6f8\"}},\"@happyvertical/smrt-sites:SiteCollection\":{\"name\":\"sitecollection\",\"className\":\"SiteCollection\",\"qualifiedName\":\"@happyvertical/smrt-sites:SiteCollection\",\"collection\":\"sites\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteCollection.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"fields\":{},\"methods\":{\"findByDomain\":{\"name\":\"findByDomain\",\"async\":true,\"parameters\":[{\"name\":\"domain\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Site | null>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Site[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"SiteStatus\",\"optional\":false}],\"returnType\":\"Promise<Site[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Site[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"sites\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Site\",\"exportName\":\"SiteCollection\",\"collectionExportName\":\"SiteCollectionCollection\",\"schema\":{\"tableName\":\"sites\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"sites\\\" (\\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\":\"sites_id_idx\",\"columns\":[\"id\"]},{\"name\":\"sites_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true}],\"version\":\"2f0752a0\"}},\"@happyvertical/smrt-sites:Site\":{\"name\":\"site\",\"className\":\"Site\",\"qualifiedName\":\"@happyvertical/smrt-sites:Site\",\"collection\":\"sites\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/models/Site.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"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}}},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"domain\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false,\"default\":\"draft\"},\"tier\":{\"type\":\"text\",\"required\":false,\"default\":\"free\"},\"databaseUrl\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"databaseType\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"portalConfig\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"repositoryUrl\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"templateName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provisioningStatus\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provisionedAt\":{\"type\":\"datetime\",\"required\":false},\"provisioningError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metadata\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"createdAt\":{\"type\":\"datetime\",\"required\":false},\"updatedAt\":{\"type\":\"datetime\",\"required\":false}},\"methods\":{\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isReady\":{\"name\":\"isReady\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getPortalConfig\":{\"name\":\"getPortalConfig\",\"async\":false,\"parameters\":[],\"returnType\":\"SitePortalConfig\",\"isStatic\":false,\"isPublic\":true},\"setPortalConfig\":{\"name\":\"setPortalConfig\",\"async\":false,\"parameters\":[{\"name\":\"config\",\"type\":\"SitePortalConfig\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string>\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"updateMetadata\":{\"name\":\"updateMetadata\",\"async\":false,\"parameters\":[{\"name\":\"updates\",\"type\":\"Record<string>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"sites\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"cli\":true,\"conflictColumns\":[\"tenant_id\",\"domain\"],\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"Site\",\"collectionExportName\":\"SiteCollection\",\"validationRules\":[{\"field\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"}],\"schema\":{\"tableName\":\"sites\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"sites\\\" (\\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 \\\"name\\\" TEXT DEFAULT '',\\n \\\"domain\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT DEFAULT 'draft',\\n \\\"tier\\\" TEXT DEFAULT 'free',\\n \\\"database_url\\\" TEXT DEFAULT '',\\n \\\"database_type\\\" TEXT DEFAULT '',\\n \\\"portal_config\\\" TEXT DEFAULT '',\\n \\\"repository_url\\\" TEXT DEFAULT '',\\n \\\"template_name\\\" TEXT DEFAULT '',\\n \\\"provisioning_status\\\" TEXT DEFAULT '',\\n \\\"provisioned_at\\\" TIMESTAMP,\\n \\\"provisioning_error\\\" TEXT DEFAULT '',\\n \\\"metadata\\\" TEXT DEFAULT ''\\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},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"domain\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"draft\"},\"tier\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"free\"},\"database_url\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"database_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"portal_config\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"repository_url\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"template_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provisioning_status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provisioned_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"provisioning_error\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"sites_id_idx\",\"columns\":[\"id\"]},{\"name\":\"sites_tenant_id_domain_idx\",\"columns\":[\"tenant_id\",\"domain\"],\"unique\":true}],\"version\":\"1845042e\"}},\"@happyvertical/smrt-sites:SiteAgentBinding\":{\"name\":\"siteagentbinding\",\"className\":\"SiteAgentBinding\",\"qualifiedName\":\"@happyvertical/smrt-sites:SiteAgentBinding\",\"collection\":\"siteagentbindings\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/models/SiteAgentBinding.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"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}}},\"siteId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Site\"},\"agentClass\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"enabled\":{\"type\":\"boolean\",\"required\":false,\"default\":true},\"config\":{\"type\":\"json\",\"required\":false,\"default\":{}},\"priority\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"site_agent_bindings\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"cli\":{\"include\":[\"list\",\"get\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"conflictColumns\":[\"site_id\",\"agent_class\"],\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"SiteAgentBinding\",\"collectionExportName\":\"SiteAgentBindingCollection\",\"validationRules\":[{\"field\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"}],\"schema\":{\"tableName\":\"site_agent_bindings\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"site_agent_bindings\\\" (\\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 \\\"site_id\\\" UUID,\\n \\\"agent_class\\\" TEXT DEFAULT '',\\n \\\"enabled\\\" BOOLEAN DEFAULT TRUE,\\n \\\"config\\\" JSON DEFAULT '{}',\\n \\\"priority\\\" INTEGER DEFAULT 0\\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},\"site_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false},\"agent_class\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"enabled\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":true},\"config\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":{}},\"priority\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"site_agent_bindings_id_idx\",\"columns\":[\"id\"]},{\"name\":\"site_agent_bindings_site_id_agent_class_idx\",\"columns\":[\"site_id\",\"agent_class\"],\"unique\":true},{\"name\":\"site_agent_bindings_tenant_id_idx\",\"columns\":[\"tenant_id\"]}],\"version\":\"e9a85893\"}}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
4
+ ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-sites\",\"packageVersion\":\"0.41.0\",\"objects\":{\"@happyvertical/smrt-sites:Site\":{\"name\":\"site\",\"className\":\"Site\",\"qualifiedName\":\"@happyvertical/smrt-sites:Site\",\"collection\":\"sites\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/models/Site.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"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}}},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"domain\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false,\"default\":\"draft\"},\"tier\":{\"type\":\"text\",\"required\":false,\"default\":\"free\"},\"databaseUrl\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"databaseType\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"portalConfig\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"repositoryUrl\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"templateName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provisioningStatus\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provisionedAt\":{\"type\":\"datetime\",\"required\":false},\"provisioningError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metadata\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"createdAt\":{\"type\":\"datetime\",\"required\":false},\"updatedAt\":{\"type\":\"datetime\",\"required\":false}},\"methods\":{\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isReady\":{\"name\":\"isReady\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getPortalConfig\":{\"name\":\"getPortalConfig\",\"async\":false,\"parameters\":[],\"returnType\":\"SitePortalConfig\",\"isStatic\":false,\"isPublic\":true},\"setPortalConfig\":{\"name\":\"setPortalConfig\",\"async\":false,\"parameters\":[{\"name\":\"config\",\"type\":\"SitePortalConfig\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string>\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"updateMetadata\":{\"name\":\"updateMetadata\",\"async\":false,\"parameters\":[{\"name\":\"updates\",\"type\":\"Record<string>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"sites\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"cli\":true,\"conflictColumns\":[\"tenant_id\",\"domain\"],\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"Site\",\"collectionExportName\":\"SiteCollection\",\"validationRules\":[{\"field\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"}],\"schema\":{\"tableName\":\"sites\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"sites\\\" (\\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 \\\"name\\\" TEXT DEFAULT '',\\n \\\"domain\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT DEFAULT 'draft',\\n \\\"tier\\\" TEXT DEFAULT 'free',\\n \\\"database_url\\\" TEXT DEFAULT '',\\n \\\"database_type\\\" TEXT DEFAULT '',\\n \\\"portal_config\\\" TEXT DEFAULT '',\\n \\\"repository_url\\\" TEXT DEFAULT '',\\n \\\"template_name\\\" TEXT DEFAULT '',\\n \\\"provisioning_status\\\" TEXT DEFAULT '',\\n \\\"provisioned_at\\\" TIMESTAMP,\\n \\\"provisioning_error\\\" TEXT DEFAULT '',\\n \\\"metadata\\\" TEXT DEFAULT ''\\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},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"domain\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"draft\"},\"tier\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"free\"},\"database_url\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"database_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"portal_config\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"repository_url\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"template_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provisioning_status\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"provisioned_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false,\"unique\":false},\"provisioning_error\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"sites_tenant_id_domain_idx\",\"columns\":[\"tenant_id\",\"domain\"],\"unique\":true},{\"name\":\"sites_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"sites_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"1845042e\"}},\"@happyvertical/smrt-sites:SiteAgentBinding\":{\"name\":\"siteagentbinding\",\"className\":\"SiteAgentBinding\",\"qualifiedName\":\"@happyvertical/smrt-sites:SiteAgentBinding\",\"collection\":\"siteagentbindings\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/models/SiteAgentBinding.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"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}}},\"siteId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"Site\"},\"agentClass\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"enabled\":{\"type\":\"boolean\",\"required\":false,\"default\":true},\"config\":{\"type\":\"json\",\"required\":false,\"default\":{}},\"priority\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{},\"decoratorConfig\":{\"tableName\":\"site_agent_bindings\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"delete\"]},\"cli\":{\"include\":[\"list\",\"get\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"conflictColumns\":[\"site_id\",\"agent_class\"],\"tenantScoped\":{\"mode\":\"required\"}},\"extends\":\"SmrtObject\",\"exportName\":\"SiteAgentBinding\",\"collectionExportName\":\"SiteAgentBindingCollection\",\"validationRules\":[{\"field\":\"tenantId\",\"rule\":\"required\",\"fieldType\":\"text\"}],\"schema\":{\"tableName\":\"site_agent_bindings\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"site_agent_bindings\\\" (\\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 \\\"site_id\\\" UUID,\\n \\\"agent_class\\\" TEXT DEFAULT '',\\n \\\"enabled\\\" BOOLEAN DEFAULT TRUE,\\n \\\"config\\\" JSON DEFAULT '{}',\\n \\\"priority\\\" INTEGER DEFAULT 0\\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},\"site_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"unique\":false},\"agent_class\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"enabled\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":true},\"config\":{\"type\":\"JSON\",\"notNull\":false,\"unique\":false,\"default\":{}},\"priority\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0}},\"indexes\":[{\"name\":\"site_agent_bindings_site_id_agent_class_idx\",\"columns\":[\"site_id\",\"agent_class\"],\"unique\":true},{\"name\":\"site_agent_bindings_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"site_agent_bindings_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"e9a85893\"}},\"@happyvertical/smrt-sites:SiteAgentBindingCollection\":{\"name\":\"siteagentbindingcollection\",\"className\":\"SiteAgentBindingCollection\",\"qualifiedName\":\"@happyvertical/smrt-sites:SiteAgentBindingCollection\",\"collection\":\"siteagentbindings\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteAgentBindingCollection.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"fields\":{},\"methods\":{\"findBySite\":{\"name\":\"findBySite\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding[]>\",\"isStatic\":false,\"isPublic\":true},\"findByAgent\":{\"name\":\"findByAgent\",\"async\":true,\"parameters\":[{\"name\":\"agentClass\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding[]>\",\"isStatic\":false,\"isPublic\":true},\"findEnabled\":{\"name\":\"findEnabled\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySiteAndAgent\":{\"name\":\"findBySiteAndAgent\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false},{\"name\":\"agentClass\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<SiteAgentBinding | null>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"site_agent_bindings\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"SiteAgentBinding\",\"exportName\":\"SiteAgentBindingCollection\",\"collectionExportName\":\"SiteAgentBindingCollectionCollection\",\"schema\":{\"tableName\":\"site_agent_bindings\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"site_agent_bindings\\\" (\\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\":\"site_agent_bindings_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"site_agent_bindings_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"b7f2e6f8\"}},\"@happyvertical/smrt-sites:SiteCollection\":{\"name\":\"sitecollection\",\"className\":\"SiteCollection\",\"qualifiedName\":\"@happyvertical/smrt-sites:SiteCollection\",\"collection\":\"sites\",\"filePath\":\"/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteCollection.ts\",\"packageName\":\"@happyvertical/smrt-sites\",\"fields\":{},\"methods\":{\"findByDomain\":{\"name\":\"findByDomain\",\"async\":true,\"parameters\":[{\"name\":\"domain\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Site | null>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Site[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"SiteStatus\",\"optional\":false}],\"returnType\":\"Promise<Site[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<Site[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"sites\"},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"Site\",\"exportName\":\"SiteCollection\",\"collectionExportName\":\"SiteCollectionCollection\",\"schema\":{\"tableName\":\"sites\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"sites\\\" (\\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\":\"sites_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"sites_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"2f0752a0\"}}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
5
5
  //#endregion
6
6
  //#region src/models/SiteAgentBinding.ts
7
7
  var __defProp$1 = Object.defineProperty;
@@ -2,251 +2,8 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-sites",
5
- "packageVersion": "0.40.70",
5
+ "packageVersion": "0.41.0",
6
6
  "objects": {
7
- "@happyvertical/smrt-sites:SiteAgentBindingCollection": {
8
- "name": "siteagentbindingcollection",
9
- "className": "SiteAgentBindingCollection",
10
- "qualifiedName": "@happyvertical/smrt-sites:SiteAgentBindingCollection",
11
- "collection": "siteagentbindings",
12
- "filePath": "/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteAgentBindingCollection.ts",
13
- "packageName": "@happyvertical/smrt-sites",
14
- "fields": {},
15
- "methods": {
16
- "findBySite": {
17
- "name": "findBySite",
18
- "async": true,
19
- "parameters": [
20
- {
21
- "name": "siteId",
22
- "type": "string",
23
- "optional": false
24
- }
25
- ],
26
- "returnType": "Promise<SiteAgentBinding[]>",
27
- "isStatic": false,
28
- "isPublic": true
29
- },
30
- "findByAgent": {
31
- "name": "findByAgent",
32
- "async": true,
33
- "parameters": [
34
- {
35
- "name": "agentClass",
36
- "type": "string",
37
- "optional": false
38
- }
39
- ],
40
- "returnType": "Promise<SiteAgentBinding[]>",
41
- "isStatic": false,
42
- "isPublic": true
43
- },
44
- "findEnabled": {
45
- "name": "findEnabled",
46
- "async": true,
47
- "parameters": [
48
- {
49
- "name": "siteId",
50
- "type": "string",
51
- "optional": false
52
- }
53
- ],
54
- "returnType": "Promise<SiteAgentBinding[]>",
55
- "isStatic": false,
56
- "isPublic": true
57
- },
58
- "findBySiteAndAgent": {
59
- "name": "findBySiteAndAgent",
60
- "async": true,
61
- "parameters": [
62
- {
63
- "name": "siteId",
64
- "type": "string",
65
- "optional": false
66
- },
67
- {
68
- "name": "agentClass",
69
- "type": "string",
70
- "optional": false
71
- }
72
- ],
73
- "returnType": "Promise<SiteAgentBinding | null>",
74
- "isStatic": false,
75
- "isPublic": true
76
- }
77
- },
78
- "decoratorConfig": {
79
- "tableName": "site_agent_bindings"
80
- },
81
- "extends": "SmrtCollection",
82
- "extendsTypeArg": "SiteAgentBinding",
83
- "exportName": "SiteAgentBindingCollection",
84
- "collectionExportName": "SiteAgentBindingCollectionCollection",
85
- "schema": {
86
- "tableName": "site_agent_bindings",
87
- "ddl": "CREATE TABLE IF NOT EXISTS \"site_agent_bindings\" (\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);",
88
- "columns": {
89
- "id": {
90
- "type": "UUID",
91
- "primaryKey": true,
92
- "referenceKind": "id",
93
- "notNull": true
94
- },
95
- "slug": {
96
- "type": "TEXT",
97
- "notNull": true
98
- },
99
- "context": {
100
- "type": "TEXT",
101
- "notNull": true,
102
- "default": ""
103
- },
104
- "created_at": {
105
- "type": "TIMESTAMP",
106
- "notNull": true,
107
- "default": "current_timestamp"
108
- },
109
- "updated_at": {
110
- "type": "TIMESTAMP",
111
- "notNull": true,
112
- "default": "current_timestamp"
113
- }
114
- },
115
- "indexes": [
116
- {
117
- "name": "site_agent_bindings_id_idx",
118
- "columns": [
119
- "id"
120
- ]
121
- },
122
- {
123
- "name": "site_agent_bindings_slug_context_idx",
124
- "columns": [
125
- "slug",
126
- "context"
127
- ],
128
- "unique": true
129
- }
130
- ],
131
- "version": "b7f2e6f8"
132
- }
133
- },
134
- "@happyvertical/smrt-sites:SiteCollection": {
135
- "name": "sitecollection",
136
- "className": "SiteCollection",
137
- "qualifiedName": "@happyvertical/smrt-sites:SiteCollection",
138
- "collection": "sites",
139
- "filePath": "/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteCollection.ts",
140
- "packageName": "@happyvertical/smrt-sites",
141
- "fields": {},
142
- "methods": {
143
- "findByDomain": {
144
- "name": "findByDomain",
145
- "async": true,
146
- "parameters": [
147
- {
148
- "name": "domain",
149
- "type": "string",
150
- "optional": false
151
- }
152
- ],
153
- "returnType": "Promise<Site | null>",
154
- "isStatic": false,
155
- "isPublic": true
156
- },
157
- "findByTenant": {
158
- "name": "findByTenant",
159
- "async": true,
160
- "parameters": [
161
- {
162
- "name": "tenantId",
163
- "type": "string",
164
- "optional": false
165
- }
166
- ],
167
- "returnType": "Promise<Site[]>",
168
- "isStatic": false,
169
- "isPublic": true
170
- },
171
- "findByStatus": {
172
- "name": "findByStatus",
173
- "async": true,
174
- "parameters": [
175
- {
176
- "name": "status",
177
- "type": "SiteStatus",
178
- "optional": false
179
- }
180
- ],
181
- "returnType": "Promise<Site[]>",
182
- "isStatic": false,
183
- "isPublic": true
184
- },
185
- "findActive": {
186
- "name": "findActive",
187
- "async": true,
188
- "parameters": [],
189
- "returnType": "Promise<Site[]>",
190
- "isStatic": false,
191
- "isPublic": true
192
- }
193
- },
194
- "decoratorConfig": {
195
- "tableName": "sites"
196
- },
197
- "extends": "SmrtCollection",
198
- "extendsTypeArg": "Site",
199
- "exportName": "SiteCollection",
200
- "collectionExportName": "SiteCollectionCollection",
201
- "schema": {
202
- "tableName": "sites",
203
- "ddl": "CREATE TABLE IF NOT EXISTS \"sites\" (\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);",
204
- "columns": {
205
- "id": {
206
- "type": "UUID",
207
- "primaryKey": true,
208
- "referenceKind": "id",
209
- "notNull": true
210
- },
211
- "slug": {
212
- "type": "TEXT",
213
- "notNull": true
214
- },
215
- "context": {
216
- "type": "TEXT",
217
- "notNull": true,
218
- "default": ""
219
- },
220
- "created_at": {
221
- "type": "TIMESTAMP",
222
- "notNull": true,
223
- "default": "current_timestamp"
224
- },
225
- "updated_at": {
226
- "type": "TIMESTAMP",
227
- "notNull": true,
228
- "default": "current_timestamp"
229
- }
230
- },
231
- "indexes": [
232
- {
233
- "name": "sites_id_idx",
234
- "columns": [
235
- "id"
236
- ]
237
- },
238
- {
239
- "name": "sites_slug_context_idx",
240
- "columns": [
241
- "slug",
242
- "context"
243
- ],
244
- "unique": true
245
- }
246
- ],
247
- "version": "2f0752a0"
248
- }
249
- },
250
7
  "@happyvertical/smrt-sites:Site": {
251
8
  "name": "site",
252
9
  "className": "Site",
@@ -573,12 +330,6 @@
573
330
  }
574
331
  },
575
332
  "indexes": [
576
- {
577
- "name": "sites_id_idx",
578
- "columns": [
579
- "id"
580
- ]
581
- },
582
333
  {
583
334
  "name": "sites_tenant_id_domain_idx",
584
335
  "columns": [
@@ -586,6 +337,20 @@
586
337
  "domain"
587
338
  ],
588
339
  "unique": true
340
+ },
341
+ {
342
+ "name": "sites_slug_context_idx",
343
+ "columns": [
344
+ "slug",
345
+ "context"
346
+ ]
347
+ },
348
+ {
349
+ "name": "sites_tenant_id_created_at_idx",
350
+ "columns": [
351
+ "tenant_id",
352
+ "created_at"
353
+ ]
589
354
  }
590
355
  ],
591
356
  "version": "1845042e"
@@ -751,12 +516,6 @@
751
516
  }
752
517
  },
753
518
  "indexes": [
754
- {
755
- "name": "site_agent_bindings_id_idx",
756
- "columns": [
757
- "id"
758
- ]
759
- },
760
519
  {
761
520
  "name": "site_agent_bindings_site_id_agent_class_idx",
762
521
  "columns": [
@@ -766,14 +525,265 @@
766
525
  "unique": true
767
526
  },
768
527
  {
769
- "name": "site_agent_bindings_tenant_id_idx",
528
+ "name": "site_agent_bindings_slug_context_idx",
529
+ "columns": [
530
+ "slug",
531
+ "context"
532
+ ]
533
+ },
534
+ {
535
+ "name": "site_agent_bindings_tenant_id_created_at_idx",
770
536
  "columns": [
771
- "tenant_id"
537
+ "tenant_id",
538
+ "created_at"
772
539
  ]
773
540
  }
774
541
  ],
775
542
  "version": "e9a85893"
776
543
  }
544
+ },
545
+ "@happyvertical/smrt-sites:SiteAgentBindingCollection": {
546
+ "name": "siteagentbindingcollection",
547
+ "className": "SiteAgentBindingCollection",
548
+ "qualifiedName": "@happyvertical/smrt-sites:SiteAgentBindingCollection",
549
+ "collection": "siteagentbindings",
550
+ "filePath": "/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteAgentBindingCollection.ts",
551
+ "packageName": "@happyvertical/smrt-sites",
552
+ "fields": {},
553
+ "methods": {
554
+ "findBySite": {
555
+ "name": "findBySite",
556
+ "async": true,
557
+ "parameters": [
558
+ {
559
+ "name": "siteId",
560
+ "type": "string",
561
+ "optional": false
562
+ }
563
+ ],
564
+ "returnType": "Promise<SiteAgentBinding[]>",
565
+ "isStatic": false,
566
+ "isPublic": true
567
+ },
568
+ "findByAgent": {
569
+ "name": "findByAgent",
570
+ "async": true,
571
+ "parameters": [
572
+ {
573
+ "name": "agentClass",
574
+ "type": "string",
575
+ "optional": false
576
+ }
577
+ ],
578
+ "returnType": "Promise<SiteAgentBinding[]>",
579
+ "isStatic": false,
580
+ "isPublic": true
581
+ },
582
+ "findEnabled": {
583
+ "name": "findEnabled",
584
+ "async": true,
585
+ "parameters": [
586
+ {
587
+ "name": "siteId",
588
+ "type": "string",
589
+ "optional": false
590
+ }
591
+ ],
592
+ "returnType": "Promise<SiteAgentBinding[]>",
593
+ "isStatic": false,
594
+ "isPublic": true
595
+ },
596
+ "findBySiteAndAgent": {
597
+ "name": "findBySiteAndAgent",
598
+ "async": true,
599
+ "parameters": [
600
+ {
601
+ "name": "siteId",
602
+ "type": "string",
603
+ "optional": false
604
+ },
605
+ {
606
+ "name": "agentClass",
607
+ "type": "string",
608
+ "optional": false
609
+ }
610
+ ],
611
+ "returnType": "Promise<SiteAgentBinding | null>",
612
+ "isStatic": false,
613
+ "isPublic": true
614
+ }
615
+ },
616
+ "decoratorConfig": {
617
+ "tableName": "site_agent_bindings"
618
+ },
619
+ "extends": "SmrtCollection",
620
+ "extendsTypeArg": "SiteAgentBinding",
621
+ "exportName": "SiteAgentBindingCollection",
622
+ "collectionExportName": "SiteAgentBindingCollectionCollection",
623
+ "schema": {
624
+ "tableName": "site_agent_bindings",
625
+ "ddl": "CREATE TABLE IF NOT EXISTS \"site_agent_bindings\" (\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);",
626
+ "columns": {
627
+ "id": {
628
+ "type": "UUID",
629
+ "primaryKey": true,
630
+ "referenceKind": "id",
631
+ "notNull": true
632
+ },
633
+ "slug": {
634
+ "type": "TEXT",
635
+ "notNull": true
636
+ },
637
+ "context": {
638
+ "type": "TEXT",
639
+ "notNull": true,
640
+ "default": ""
641
+ },
642
+ "created_at": {
643
+ "type": "TIMESTAMP",
644
+ "notNull": true,
645
+ "default": "current_timestamp"
646
+ },
647
+ "updated_at": {
648
+ "type": "TIMESTAMP",
649
+ "notNull": true,
650
+ "default": "current_timestamp"
651
+ }
652
+ },
653
+ "indexes": [
654
+ {
655
+ "name": "site_agent_bindings_slug_context_idx",
656
+ "columns": [
657
+ "slug",
658
+ "context"
659
+ ],
660
+ "unique": true
661
+ },
662
+ {
663
+ "name": "site_agent_bindings_created_at_idx",
664
+ "columns": [
665
+ "created_at"
666
+ ]
667
+ }
668
+ ],
669
+ "version": "b7f2e6f8"
670
+ }
671
+ },
672
+ "@happyvertical/smrt-sites:SiteCollection": {
673
+ "name": "sitecollection",
674
+ "className": "SiteCollection",
675
+ "qualifiedName": "@happyvertical/smrt-sites:SiteCollection",
676
+ "collection": "sites",
677
+ "filePath": "/home/runner/_work/smrt/smrt/packages/sites/src/collections/SiteCollection.ts",
678
+ "packageName": "@happyvertical/smrt-sites",
679
+ "fields": {},
680
+ "methods": {
681
+ "findByDomain": {
682
+ "name": "findByDomain",
683
+ "async": true,
684
+ "parameters": [
685
+ {
686
+ "name": "domain",
687
+ "type": "string",
688
+ "optional": false
689
+ }
690
+ ],
691
+ "returnType": "Promise<Site | null>",
692
+ "isStatic": false,
693
+ "isPublic": true
694
+ },
695
+ "findByTenant": {
696
+ "name": "findByTenant",
697
+ "async": true,
698
+ "parameters": [
699
+ {
700
+ "name": "tenantId",
701
+ "type": "string",
702
+ "optional": false
703
+ }
704
+ ],
705
+ "returnType": "Promise<Site[]>",
706
+ "isStatic": false,
707
+ "isPublic": true
708
+ },
709
+ "findByStatus": {
710
+ "name": "findByStatus",
711
+ "async": true,
712
+ "parameters": [
713
+ {
714
+ "name": "status",
715
+ "type": "SiteStatus",
716
+ "optional": false
717
+ }
718
+ ],
719
+ "returnType": "Promise<Site[]>",
720
+ "isStatic": false,
721
+ "isPublic": true
722
+ },
723
+ "findActive": {
724
+ "name": "findActive",
725
+ "async": true,
726
+ "parameters": [],
727
+ "returnType": "Promise<Site[]>",
728
+ "isStatic": false,
729
+ "isPublic": true
730
+ }
731
+ },
732
+ "decoratorConfig": {
733
+ "tableName": "sites"
734
+ },
735
+ "extends": "SmrtCollection",
736
+ "extendsTypeArg": "Site",
737
+ "exportName": "SiteCollection",
738
+ "collectionExportName": "SiteCollectionCollection",
739
+ "schema": {
740
+ "tableName": "sites",
741
+ "ddl": "CREATE TABLE IF NOT EXISTS \"sites\" (\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);",
742
+ "columns": {
743
+ "id": {
744
+ "type": "UUID",
745
+ "primaryKey": true,
746
+ "referenceKind": "id",
747
+ "notNull": true
748
+ },
749
+ "slug": {
750
+ "type": "TEXT",
751
+ "notNull": true
752
+ },
753
+ "context": {
754
+ "type": "TEXT",
755
+ "notNull": true,
756
+ "default": ""
757
+ },
758
+ "created_at": {
759
+ "type": "TIMESTAMP",
760
+ "notNull": true,
761
+ "default": "current_timestamp"
762
+ },
763
+ "updated_at": {
764
+ "type": "TIMESTAMP",
765
+ "notNull": true,
766
+ "default": "current_timestamp"
767
+ }
768
+ },
769
+ "indexes": [
770
+ {
771
+ "name": "sites_slug_context_idx",
772
+ "columns": [
773
+ "slug",
774
+ "context"
775
+ ],
776
+ "unique": true
777
+ },
778
+ {
779
+ "name": "sites_created_at_idx",
780
+ "columns": [
781
+ "created_at"
782
+ ]
783
+ }
784
+ ],
785
+ "version": "2f0752a0"
786
+ }
777
787
  }
778
788
  },
779
789
  "moduleType": "smrt",
@@ -3,12 +3,12 @@
3
3
  "sensitiveFieldsExcluded": true,
4
4
  "generatedAt": "1970-01-01T00:00:00.000Z",
5
5
  "packageName": "@happyvertical/smrt-sites",
6
- "packageVersion": "0.40.70",
6
+ "packageVersion": "0.41.0",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "00201f548ce6d9bc917b04eccb3c2b9078eaa955d4c804cf6490cba3058ab5be",
11
- "packageJson": "7569ffcef6aaee948f908b264f1c621588edfa8577fb1d172ae8090202f2e54d",
10
+ "manifest": "d050d955f97db3085101ef719efef24c1d88ab020f325e66155bd9a3c564fe6a",
11
+ "packageJson": "661a5feb0587581a6bdee875f37fafa2d9bbcef85a13842033188c7c5b2ca068",
12
12
  "agents": "20ecba2963426d3e132157f077fbdc5583a20bb0f68d8a7942cf7f8ada5d5aa2"
13
13
  },
14
14
  "exports": [
@@ -40,116 +40,6 @@
40
40
  "tags": [],
41
41
  "risks": [],
42
42
  "objects": [
43
- {
44
- "name": "SiteAgentBindingCollection",
45
- "qualifiedName": "@happyvertical/smrt-sites:SiteAgentBindingCollection",
46
- "collection": "siteagentbindings",
47
- "tableName": "site_agent_bindings",
48
- "packageName": "@happyvertical/smrt-sites",
49
- "extends": "SmrtCollection",
50
- "fields": [],
51
- "relationships": [],
52
- "methods": [
53
- "findByAgent",
54
- "findBySite",
55
- "findBySiteAndAgent",
56
- "findEnabled"
57
- ],
58
- "methodSignatures": [
59
- {
60
- "name": "findByAgent",
61
- "async": true,
62
- "params": [
63
- "agentClass: string"
64
- ],
65
- "returns": "Promise<SiteAgentBinding[]>"
66
- },
67
- {
68
- "name": "findBySite",
69
- "async": true,
70
- "params": [
71
- "siteId: string"
72
- ],
73
- "returns": "Promise<SiteAgentBinding[]>"
74
- },
75
- {
76
- "name": "findBySiteAndAgent",
77
- "async": true,
78
- "params": [
79
- "siteId: string",
80
- "agentClass: string"
81
- ],
82
- "returns": "Promise<SiteAgentBinding | null>"
83
- },
84
- {
85
- "name": "findEnabled",
86
- "async": true,
87
- "params": [
88
- "siteId: string"
89
- ],
90
- "returns": "Promise<SiteAgentBinding[]>"
91
- }
92
- ],
93
- "surfaces": [],
94
- "relationshipFeatures": [
95
- "uuidColumns"
96
- ],
97
- "tags": [],
98
- "risks": []
99
- },
100
- {
101
- "name": "SiteCollection",
102
- "qualifiedName": "@happyvertical/smrt-sites:SiteCollection",
103
- "collection": "sites",
104
- "tableName": "sites",
105
- "packageName": "@happyvertical/smrt-sites",
106
- "extends": "SmrtCollection",
107
- "fields": [],
108
- "relationships": [],
109
- "methods": [
110
- "findActive",
111
- "findByDomain",
112
- "findByStatus",
113
- "findByTenant"
114
- ],
115
- "methodSignatures": [
116
- {
117
- "name": "findActive",
118
- "async": true,
119
- "returns": "Promise<Site[]>"
120
- },
121
- {
122
- "name": "findByDomain",
123
- "async": true,
124
- "params": [
125
- "domain: string"
126
- ],
127
- "returns": "Promise<Site | null>"
128
- },
129
- {
130
- "name": "findByStatus",
131
- "async": true,
132
- "params": [
133
- "status: SiteStatus"
134
- ],
135
- "returns": "Promise<Site[]>"
136
- },
137
- {
138
- "name": "findByTenant",
139
- "async": true,
140
- "params": [
141
- "tenantId: string"
142
- ],
143
- "returns": "Promise<Site[]>"
144
- }
145
- ],
146
- "surfaces": [],
147
- "relationshipFeatures": [
148
- "uuidColumns"
149
- ],
150
- "tags": [],
151
- "risks": []
152
- },
153
43
  {
154
44
  "name": "Site",
155
45
  "qualifiedName": "@happyvertical/smrt-sites:Site",
@@ -568,6 +458,116 @@
568
458
  ],
569
459
  "tags": [],
570
460
  "risks": []
461
+ },
462
+ {
463
+ "name": "SiteAgentBindingCollection",
464
+ "qualifiedName": "@happyvertical/smrt-sites:SiteAgentBindingCollection",
465
+ "collection": "siteagentbindings",
466
+ "tableName": "site_agent_bindings",
467
+ "packageName": "@happyvertical/smrt-sites",
468
+ "extends": "SmrtCollection",
469
+ "fields": [],
470
+ "relationships": [],
471
+ "methods": [
472
+ "findByAgent",
473
+ "findBySite",
474
+ "findBySiteAndAgent",
475
+ "findEnabled"
476
+ ],
477
+ "methodSignatures": [
478
+ {
479
+ "name": "findByAgent",
480
+ "async": true,
481
+ "params": [
482
+ "agentClass: string"
483
+ ],
484
+ "returns": "Promise<SiteAgentBinding[]>"
485
+ },
486
+ {
487
+ "name": "findBySite",
488
+ "async": true,
489
+ "params": [
490
+ "siteId: string"
491
+ ],
492
+ "returns": "Promise<SiteAgentBinding[]>"
493
+ },
494
+ {
495
+ "name": "findBySiteAndAgent",
496
+ "async": true,
497
+ "params": [
498
+ "siteId: string",
499
+ "agentClass: string"
500
+ ],
501
+ "returns": "Promise<SiteAgentBinding | null>"
502
+ },
503
+ {
504
+ "name": "findEnabled",
505
+ "async": true,
506
+ "params": [
507
+ "siteId: string"
508
+ ],
509
+ "returns": "Promise<SiteAgentBinding[]>"
510
+ }
511
+ ],
512
+ "surfaces": [],
513
+ "relationshipFeatures": [
514
+ "uuidColumns"
515
+ ],
516
+ "tags": [],
517
+ "risks": []
518
+ },
519
+ {
520
+ "name": "SiteCollection",
521
+ "qualifiedName": "@happyvertical/smrt-sites:SiteCollection",
522
+ "collection": "sites",
523
+ "tableName": "sites",
524
+ "packageName": "@happyvertical/smrt-sites",
525
+ "extends": "SmrtCollection",
526
+ "fields": [],
527
+ "relationships": [],
528
+ "methods": [
529
+ "findActive",
530
+ "findByDomain",
531
+ "findByStatus",
532
+ "findByTenant"
533
+ ],
534
+ "methodSignatures": [
535
+ {
536
+ "name": "findActive",
537
+ "async": true,
538
+ "returns": "Promise<Site[]>"
539
+ },
540
+ {
541
+ "name": "findByDomain",
542
+ "async": true,
543
+ "params": [
544
+ "domain: string"
545
+ ],
546
+ "returns": "Promise<Site | null>"
547
+ },
548
+ {
549
+ "name": "findByStatus",
550
+ "async": true,
551
+ "params": [
552
+ "status: SiteStatus"
553
+ ],
554
+ "returns": "Promise<Site[]>"
555
+ },
556
+ {
557
+ "name": "findByTenant",
558
+ "async": true,
559
+ "params": [
560
+ "tenantId: string"
561
+ ],
562
+ "returns": "Promise<Site[]>"
563
+ }
564
+ ],
565
+ "surfaces": [],
566
+ "relationshipFeatures": [
567
+ "uuidColumns"
568
+ ],
569
+ "tags": [],
570
+ "risks": []
571
571
  }
572
572
  ],
573
573
  "surfaces": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-sites",
3
- "version": "0.40.70",
3
+ "version": "0.41.0",
4
4
  "description": "Site lifecycle management for multi-tenant SMRT networks",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -19,8 +19,8 @@
19
19
  "./manifest.json": "./dist/manifest.json"
20
20
  },
21
21
  "dependencies": {
22
- "@happyvertical/smrt-core": "0.40.70",
23
- "@happyvertical/smrt-tenancy": "0.40.70"
22
+ "@happyvertical/smrt-tenancy": "0.41.0",
23
+ "@happyvertical/smrt-core": "0.41.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@happyvertical/sql": "^0.88.0",
@@ -29,8 +29,8 @@
29
29
  "typescript": "5.9.3",
30
30
  "vite": "8.1.4",
31
31
  "vitest": "4.1.10",
32
- "@happyvertical/smrt-cli": "0.40.70",
33
- "@happyvertical/smrt-vitest": "0.40.70"
32
+ "@happyvertical/smrt-cli": "0.41.0",
33
+ "@happyvertical/smrt-vitest": "0.41.0"
34
34
  },
35
35
  "keywords": [
36
36
  "ai",