@happyvertical/smrt-sites 0.57.33 → 0.57.34

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.
@@ -2,202 +2,81 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-sites",
5
- "packageVersion": "0.57.33",
5
+ "packageVersion": "0.57.34",
6
6
  "objects": {
7
- "@happyvertical/smrt-sites:Site": {
8
- "name": "site",
9
- "className": "Site",
10
- "qualifiedName": "@happyvertical/smrt-sites:Site",
11
- "collection": "sites",
12
- "filePath": "/home/runner/work/smrt/smrt/packages/sites/src/models/Site.ts",
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
13
  "packageName": "@happyvertical/smrt-sites",
14
- "fields": {
15
- "tenantId": {
16
- "type": "text",
17
- "required": true,
18
- "_meta": {
19
- "sqlType": "UUID",
20
- "__tenancy": {
21
- "isTenantIdField": true,
22
- "autoFilter": true,
23
- "required": true,
24
- "autoPopulate": true,
25
- "nullable": false,
26
- "mode": "required",
27
- "field": "tenantId",
28
- "allowSuperAdminBypass": false
29
- }
30
- }
31
- },
32
- "name": {
33
- "type": "text",
34
- "required": false,
35
- "default": ""
36
- },
37
- "domain": {
38
- "type": "text",
39
- "required": false,
40
- "default": ""
41
- },
42
- "status": {
43
- "type": "text",
44
- "required": false,
45
- "default": "draft",
46
- "enum": [
47
- "draft",
48
- "active",
49
- "suspended",
50
- "archived"
51
- ]
52
- },
53
- "tier": {
54
- "type": "text",
55
- "required": false,
56
- "default": "free",
57
- "enum": [
58
- "free",
59
- "standard",
60
- "premium"
61
- ]
62
- },
63
- "databaseUrl": {
64
- "type": "text",
65
- "required": false,
66
- "default": ""
67
- },
68
- "databaseType": {
69
- "type": "text",
70
- "required": false,
71
- "default": ""
72
- },
73
- "portalConfig": {
74
- "type": "text",
75
- "required": false,
76
- "default": ""
77
- },
78
- "repositoryUrl": {
79
- "type": "text",
80
- "required": false,
81
- "default": ""
82
- },
83
- "templateName": {
84
- "type": "text",
85
- "required": false,
86
- "default": ""
87
- },
88
- "provisioningStatus": {
89
- "type": "text",
90
- "required": false,
91
- "default": "",
92
- "enum": [
93
- "pending",
94
- "provisioning",
95
- "ready",
96
- "failed",
97
- ""
98
- ]
99
- },
100
- "provisionedAt": {
101
- "type": "datetime",
102
- "required": false
103
- },
104
- "provisioningError": {
105
- "type": "text",
106
- "required": false,
107
- "default": ""
108
- },
109
- "metadata": {
110
- "type": "text",
111
- "required": false,
112
- "default": ""
113
- },
114
- "createdAt": {
115
- "type": "datetime",
116
- "required": false
117
- },
118
- "updatedAt": {
119
- "type": "datetime",
120
- "required": false
121
- }
122
- },
14
+ "fields": {},
123
15
  "methods": {
124
- "isActive": {
125
- "name": "isActive",
126
- "async": false,
127
- "parameters": [],
128
- "returnType": "boolean",
129
- "isStatic": false,
130
- "isPublic": true
131
- },
132
- "isReady": {
133
- "name": "isReady",
134
- "async": false,
135
- "parameters": [],
136
- "returnType": "boolean",
137
- "isStatic": false,
138
- "isPublic": true
139
- },
140
- "getPortalConfig": {
141
- "name": "getPortalConfig",
142
- "async": false,
143
- "parameters": [],
144
- "returnType": "SitePortalConfig",
145
- "isStatic": false,
146
- "isPublic": true
147
- },
148
- "setPortalConfig": {
149
- "name": "setPortalConfig",
150
- "async": false,
16
+ "findBySite": {
17
+ "name": "findBySite",
18
+ "async": true,
151
19
  "parameters": [
152
20
  {
153
- "name": "config",
154
- "type": "SitePortalConfig",
21
+ "name": "siteId",
22
+ "type": "string",
155
23
  "optional": false
156
24
  }
157
25
  ],
158
- "returnType": "void",
26
+ "returnType": "Promise<SiteAgentBinding[]>",
159
27
  "isStatic": false,
160
28
  "isPublic": true
161
29
  },
162
- "getMetadata": {
163
- "name": "getMetadata",
164
- "async": false,
165
- "parameters": [],
166
- "returnType": "Record<string, unknown>",
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[]>",
167
41
  "isStatic": false,
168
42
  "isPublic": true
169
43
  },
170
- "setMetadata": {
171
- "name": "setMetadata",
172
- "async": false,
44
+ "findEnabled": {
45
+ "name": "findEnabled",
46
+ "async": true,
173
47
  "parameters": [
174
48
  {
175
- "name": "data",
176
- "type": "Record<string, unknown>",
49
+ "name": "siteId",
50
+ "type": "string",
177
51
  "optional": false
178
52
  }
179
53
  ],
180
- "returnType": "void",
54
+ "returnType": "Promise<SiteAgentBinding[]>",
181
55
  "isStatic": false,
182
56
  "isPublic": true
183
57
  },
184
- "updateMetadata": {
185
- "name": "updateMetadata",
186
- "async": false,
58
+ "findBySiteAndAgent": {
59
+ "name": "findBySiteAndAgent",
60
+ "async": true,
187
61
  "parameters": [
188
62
  {
189
- "name": "updates",
190
- "type": "Record<string, unknown>",
63
+ "name": "siteId",
64
+ "type": "string",
65
+ "optional": false
66
+ },
67
+ {
68
+ "name": "agentClass",
69
+ "type": "string",
191
70
  "optional": false
192
71
  }
193
72
  ],
194
- "returnType": "void",
73
+ "returnType": "Promise<SiteAgentBinding | null>",
195
74
  "isStatic": false,
196
75
  "isPublic": true
197
76
  }
198
77
  },
199
78
  "decoratorConfig": {
200
- "tableName": "sites",
79
+ "tableName": "site_agent_bindings",
201
80
  "api": {
202
81
  "include": [
203
82
  "list",
@@ -210,30 +89,23 @@
210
89
  "mcp": {
211
90
  "include": [
212
91
  "list",
213
- "get",
214
- "create",
215
- "update"
92
+ "get"
216
93
  ]
217
94
  },
218
95
  "cli": {
219
- "skipApiCheck": true
220
- },
221
- "conflictColumns": [
222
- "tenant_id",
223
- "domain"
224
- ],
225
- "tenantScoped": {
226
- "mode": "required"
96
+ "include": [
97
+ "list",
98
+ "get"
99
+ ]
227
100
  }
228
101
  },
229
- "extends": "SmrtObject",
230
- "exportName": "Site",
231
- "collectionExportName": "SiteCollection",
232
- "displayLabelField": "name",
233
- "validationRules": [],
102
+ "extends": "SmrtCollection",
103
+ "extendsTypeArg": "SiteAgentBinding",
104
+ "exportName": "SiteAgentBindingCollection",
105
+ "collectionExportName": "SiteAgentBindingCollectionCollection",
234
106
  "schema": {
235
- "tableName": "sites",
236
- "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);",
107
+ "tableName": "site_agent_bindings",
108
+ "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);",
237
109
  "columns": {
238
110
  "id": {
239
111
  "type": "UUID",
@@ -266,26 +138,211 @@
266
138
  "notNull": true,
267
139
  "unique": false
268
140
  },
269
- "name": {
270
- "type": "TEXT",
141
+ "site_id": {
142
+ "type": "UUID",
143
+ "referenceKind": "foreignKey",
271
144
  "notNull": false,
272
145
  "unique": false,
273
- "default": ""
146
+ "foreignKey": {
147
+ "table": "sites",
148
+ "column": "id",
149
+ "onDelete": "CASCADE",
150
+ "onUpdate": "CASCADE"
151
+ }
274
152
  },
275
- "domain": {
153
+ "agent_class": {
276
154
  "type": "TEXT",
277
155
  "notNull": false,
278
156
  "unique": false,
279
157
  "default": ""
280
158
  },
281
- "status": {
282
- "type": "TEXT",
159
+ "enabled": {
160
+ "type": "BOOLEAN",
283
161
  "notNull": false,
284
162
  "unique": false,
285
- "default": "draft"
163
+ "default": true
286
164
  },
287
- "tier": {
288
- "type": "TEXT",
165
+ "config": {
166
+ "type": "JSON",
167
+ "notNull": false,
168
+ "unique": false,
169
+ "default": {}
170
+ },
171
+ "priority": {
172
+ "type": "INTEGER",
173
+ "notNull": false,
174
+ "unique": false,
175
+ "default": 0
176
+ }
177
+ },
178
+ "indexes": [
179
+ {
180
+ "name": "site_agent_bindings_site_id_agent_class_idx",
181
+ "columns": [
182
+ "site_id",
183
+ "agent_class"
184
+ ],
185
+ "unique": true,
186
+ "nullsNotDistinct": true
187
+ },
188
+ {
189
+ "name": "site_agent_bindings_slug_context_idx",
190
+ "columns": [
191
+ "slug",
192
+ "context"
193
+ ]
194
+ },
195
+ {
196
+ "name": "site_agent_bindings_tenant_id_created_at_idx",
197
+ "columns": [
198
+ "tenant_id",
199
+ "created_at"
200
+ ]
201
+ }
202
+ ],
203
+ "version": "dec43c9c"
204
+ },
205
+ "importPath": "@happyvertical/smrt-sites"
206
+ },
207
+ "@happyvertical/smrt-sites:SiteCollection": {
208
+ "name": "sitecollection",
209
+ "className": "SiteCollection",
210
+ "qualifiedName": "@happyvertical/smrt-sites:SiteCollection",
211
+ "collection": "sites",
212
+ "filePath": "/home/runner/work/smrt/smrt/packages/sites/src/collections/SiteCollection.ts",
213
+ "packageName": "@happyvertical/smrt-sites",
214
+ "fields": {},
215
+ "methods": {
216
+ "findByDomain": {
217
+ "name": "findByDomain",
218
+ "async": true,
219
+ "parameters": [
220
+ {
221
+ "name": "domain",
222
+ "type": "string",
223
+ "optional": false
224
+ }
225
+ ],
226
+ "returnType": "Promise<Site | null>",
227
+ "isStatic": false,
228
+ "isPublic": true
229
+ },
230
+ "findByTenant": {
231
+ "name": "findByTenant",
232
+ "async": true,
233
+ "parameters": [
234
+ {
235
+ "name": "tenantId",
236
+ "type": "string",
237
+ "optional": false
238
+ }
239
+ ],
240
+ "returnType": "Promise<Site[]>",
241
+ "isStatic": false,
242
+ "isPublic": true
243
+ },
244
+ "findByStatus": {
245
+ "name": "findByStatus",
246
+ "async": true,
247
+ "parameters": [
248
+ {
249
+ "name": "status",
250
+ "type": "SiteStatus",
251
+ "optional": false
252
+ }
253
+ ],
254
+ "returnType": "Promise<Site[]>",
255
+ "isStatic": false,
256
+ "isPublic": true
257
+ },
258
+ "findActive": {
259
+ "name": "findActive",
260
+ "async": true,
261
+ "parameters": [],
262
+ "returnType": "Promise<Site[]>",
263
+ "isStatic": false,
264
+ "isPublic": true
265
+ }
266
+ },
267
+ "decoratorConfig": {
268
+ "tableName": "sites",
269
+ "api": {
270
+ "include": [
271
+ "list",
272
+ "get",
273
+ "create",
274
+ "update",
275
+ "delete"
276
+ ]
277
+ },
278
+ "mcp": {
279
+ "include": [
280
+ "list",
281
+ "get",
282
+ "create",
283
+ "update"
284
+ ]
285
+ }
286
+ },
287
+ "extends": "SmrtCollection",
288
+ "extendsTypeArg": "Site",
289
+ "exportName": "SiteCollection",
290
+ "collectionExportName": "SiteCollectionCollection",
291
+ "schema": {
292
+ "tableName": "sites",
293
+ "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);",
294
+ "columns": {
295
+ "id": {
296
+ "type": "UUID",
297
+ "primaryKey": true,
298
+ "referenceKind": "id",
299
+ "notNull": true
300
+ },
301
+ "slug": {
302
+ "type": "TEXT",
303
+ "notNull": true
304
+ },
305
+ "context": {
306
+ "type": "TEXT",
307
+ "notNull": true,
308
+ "default": ""
309
+ },
310
+ "created_at": {
311
+ "type": "TIMESTAMP",
312
+ "notNull": true,
313
+ "default": "current_timestamp"
314
+ },
315
+ "updated_at": {
316
+ "type": "TIMESTAMP",
317
+ "notNull": true,
318
+ "default": "current_timestamp"
319
+ },
320
+ "tenant_id": {
321
+ "type": "UUID",
322
+ "referenceKind": "tenantId",
323
+ "notNull": true,
324
+ "unique": false
325
+ },
326
+ "name": {
327
+ "type": "TEXT",
328
+ "notNull": false,
329
+ "unique": false,
330
+ "default": ""
331
+ },
332
+ "domain": {
333
+ "type": "TEXT",
334
+ "notNull": false,
335
+ "unique": false,
336
+ "default": ""
337
+ },
338
+ "status": {
339
+ "type": "TEXT",
340
+ "notNull": false,
341
+ "unique": false,
342
+ "default": "draft"
343
+ },
344
+ "tier": {
345
+ "type": "TEXT",
289
346
  "notNull": false,
290
347
  "unique": false,
291
348
  "default": "free"
@@ -373,12 +430,12 @@
373
430
  },
374
431
  "importPath": "@happyvertical/smrt-sites"
375
432
  },
376
- "@happyvertical/smrt-sites:SiteAgentBinding": {
377
- "name": "siteagentbinding",
378
- "className": "SiteAgentBinding",
379
- "qualifiedName": "@happyvertical/smrt-sites:SiteAgentBinding",
380
- "collection": "siteagentbindings",
381
- "filePath": "/home/runner/work/smrt/smrt/packages/sites/src/models/SiteAgentBinding.ts",
433
+ "@happyvertical/smrt-sites:Site": {
434
+ "name": "site",
435
+ "className": "Site",
436
+ "qualifiedName": "@happyvertical/smrt-sites:Site",
437
+ "collection": "sites",
438
+ "filePath": "/home/runner/work/smrt/smrt/packages/sites/src/models/Site.ts",
382
439
  "packageName": "@happyvertical/smrt-sites",
383
440
  "fields": {
384
441
  "tenantId": {
@@ -398,425 +455,169 @@
398
455
  }
399
456
  }
400
457
  },
401
- "siteId": {
402
- "type": "foreignKey",
458
+ "name": {
459
+ "type": "text",
403
460
  "required": false,
404
- "related": "Site"
461
+ "default": ""
405
462
  },
406
- "agentClass": {
463
+ "domain": {
407
464
  "type": "text",
408
465
  "required": false,
409
466
  "default": ""
410
467
  },
411
- "enabled": {
412
- "type": "boolean",
468
+ "status": {
469
+ "type": "text",
413
470
  "required": false,
414
- "default": true
471
+ "default": "draft",
472
+ "enum": [
473
+ "draft",
474
+ "active",
475
+ "suspended",
476
+ "archived"
477
+ ]
415
478
  },
416
- "config": {
417
- "type": "json",
479
+ "tier": {
480
+ "type": "text",
418
481
  "required": false,
419
- "default": {}
482
+ "default": "free",
483
+ "enum": [
484
+ "free",
485
+ "standard",
486
+ "premium"
487
+ ]
420
488
  },
421
- "priority": {
422
- "type": "integer",
489
+ "databaseUrl": {
490
+ "type": "text",
423
491
  "required": false,
424
- "default": 0
425
- }
426
- },
427
- "methods": {},
428
- "decoratorConfig": {
429
- "tableName": "site_agent_bindings",
430
- "api": {
431
- "include": [
432
- "list",
433
- "get",
434
- "create",
435
- "update",
436
- "delete"
437
- ]
492
+ "default": ""
438
493
  },
439
- "cli": {
440
- "include": [
441
- "list",
442
- "get"
443
- ]
494
+ "databaseType": {
495
+ "type": "text",
496
+ "required": false,
497
+ "default": ""
444
498
  },
445
- "mcp": {
446
- "include": [
447
- "list",
448
- "get"
499
+ "portalConfig": {
500
+ "type": "text",
501
+ "required": false,
502
+ "default": ""
503
+ },
504
+ "repositoryUrl": {
505
+ "type": "text",
506
+ "required": false,
507
+ "default": ""
508
+ },
509
+ "templateName": {
510
+ "type": "text",
511
+ "required": false,
512
+ "default": ""
513
+ },
514
+ "provisioningStatus": {
515
+ "type": "text",
516
+ "required": false,
517
+ "default": "",
518
+ "enum": [
519
+ "pending",
520
+ "provisioning",
521
+ "ready",
522
+ "failed",
523
+ ""
449
524
  ]
450
525
  },
451
- "conflictColumns": [
452
- "site_id",
453
- "agent_class"
454
- ],
455
- "tenantScoped": {
456
- "mode": "required"
457
- }
458
- },
459
- "extends": "SmrtObject",
460
- "exportName": "SiteAgentBinding",
461
- "collectionExportName": "SiteAgentBindingCollection",
462
- "validationRules": [],
463
- "schema": {
464
- "tableName": "site_agent_bindings",
465
- "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);",
466
- "columns": {
467
- "id": {
468
- "type": "UUID",
469
- "primaryKey": true,
470
- "referenceKind": "id",
471
- "notNull": true
472
- },
473
- "slug": {
474
- "type": "TEXT",
475
- "notNull": true
476
- },
477
- "context": {
478
- "type": "TEXT",
479
- "notNull": true,
480
- "default": ""
481
- },
482
- "created_at": {
483
- "type": "TIMESTAMP",
484
- "notNull": true,
485
- "default": "current_timestamp"
486
- },
487
- "updated_at": {
488
- "type": "TIMESTAMP",
489
- "notNull": true,
490
- "default": "current_timestamp"
491
- },
492
- "tenant_id": {
493
- "type": "UUID",
494
- "referenceKind": "tenantId",
495
- "notNull": true,
496
- "unique": false
497
- },
498
- "site_id": {
499
- "type": "UUID",
500
- "referenceKind": "foreignKey",
501
- "notNull": false,
502
- "unique": false,
503
- "foreignKey": {
504
- "table": "sites",
505
- "column": "id",
506
- "onDelete": "CASCADE",
507
- "onUpdate": "CASCADE"
508
- }
509
- },
510
- "agent_class": {
511
- "type": "TEXT",
512
- "notNull": false,
513
- "unique": false,
514
- "default": ""
515
- },
516
- "enabled": {
517
- "type": "BOOLEAN",
518
- "notNull": false,
519
- "unique": false,
520
- "default": true
521
- },
522
- "config": {
523
- "type": "JSON",
524
- "notNull": false,
525
- "unique": false,
526
- "default": {}
527
- },
528
- "priority": {
529
- "type": "INTEGER",
530
- "notNull": false,
531
- "unique": false,
532
- "default": 0
533
- }
526
+ "provisionedAt": {
527
+ "type": "datetime",
528
+ "required": false
534
529
  },
535
- "indexes": [
536
- {
537
- "name": "site_agent_bindings_site_id_agent_class_idx",
538
- "columns": [
539
- "site_id",
540
- "agent_class"
541
- ],
542
- "unique": true,
543
- "nullsNotDistinct": true
544
- },
545
- {
546
- "name": "site_agent_bindings_slug_context_idx",
547
- "columns": [
548
- "slug",
549
- "context"
550
- ]
551
- },
552
- {
553
- "name": "site_agent_bindings_tenant_id_created_at_idx",
554
- "columns": [
555
- "tenant_id",
556
- "created_at"
557
- ]
558
- }
559
- ],
560
- "version": "dec43c9c"
530
+ "provisioningError": {
531
+ "type": "text",
532
+ "required": false,
533
+ "default": ""
534
+ },
535
+ "metadata": {
536
+ "type": "text",
537
+ "required": false,
538
+ "default": ""
539
+ },
540
+ "createdAt": {
541
+ "type": "datetime",
542
+ "required": false
543
+ },
544
+ "updatedAt": {
545
+ "type": "datetime",
546
+ "required": false
547
+ }
561
548
  },
562
- "importPath": "@happyvertical/smrt-sites"
563
- },
564
- "@happyvertical/smrt-sites:SiteAgentBindingCollection": {
565
- "name": "siteagentbindingcollection",
566
- "className": "SiteAgentBindingCollection",
567
- "qualifiedName": "@happyvertical/smrt-sites:SiteAgentBindingCollection",
568
- "collection": "siteagentbindings",
569
- "filePath": "/home/runner/work/smrt/smrt/packages/sites/src/collections/SiteAgentBindingCollection.ts",
570
- "packageName": "@happyvertical/smrt-sites",
571
- "fields": {},
572
549
  "methods": {
573
- "findBySite": {
574
- "name": "findBySite",
575
- "async": true,
576
- "parameters": [
577
- {
578
- "name": "siteId",
579
- "type": "string",
580
- "optional": false
581
- }
582
- ],
583
- "returnType": "Promise<SiteAgentBinding[]>",
584
- "isStatic": false,
585
- "isPublic": true
586
- },
587
- "findByAgent": {
588
- "name": "findByAgent",
589
- "async": true,
590
- "parameters": [
591
- {
592
- "name": "agentClass",
593
- "type": "string",
594
- "optional": false
595
- }
596
- ],
597
- "returnType": "Promise<SiteAgentBinding[]>",
550
+ "isActive": {
551
+ "name": "isActive",
552
+ "async": false,
553
+ "parameters": [],
554
+ "returnType": "boolean",
598
555
  "isStatic": false,
599
556
  "isPublic": true
600
557
  },
601
- "findEnabled": {
602
- "name": "findEnabled",
603
- "async": true,
604
- "parameters": [
605
- {
606
- "name": "siteId",
607
- "type": "string",
608
- "optional": false
609
- }
610
- ],
611
- "returnType": "Promise<SiteAgentBinding[]>",
558
+ "isReady": {
559
+ "name": "isReady",
560
+ "async": false,
561
+ "parameters": [],
562
+ "returnType": "boolean",
612
563
  "isStatic": false,
613
564
  "isPublic": true
614
565
  },
615
- "findBySiteAndAgent": {
616
- "name": "findBySiteAndAgent",
617
- "async": true,
618
- "parameters": [
619
- {
620
- "name": "siteId",
621
- "type": "string",
622
- "optional": false
623
- },
624
- {
625
- "name": "agentClass",
626
- "type": "string",
627
- "optional": false
628
- }
629
- ],
630
- "returnType": "Promise<SiteAgentBinding | null>",
566
+ "getPortalConfig": {
567
+ "name": "getPortalConfig",
568
+ "async": false,
569
+ "parameters": [],
570
+ "returnType": "SitePortalConfig",
631
571
  "isStatic": false,
632
572
  "isPublic": true
633
- }
634
- },
635
- "decoratorConfig": {
636
- "tableName": "site_agent_bindings",
637
- "api": {
638
- "include": [
639
- "list",
640
- "get",
641
- "create",
642
- "update",
643
- "delete"
644
- ]
645
- },
646
- "mcp": {
647
- "include": [
648
- "list",
649
- "get"
650
- ]
651
573
  },
652
- "cli": {
653
- "include": [
654
- "list",
655
- "get"
656
- ]
657
- }
658
- },
659
- "extends": "SmrtCollection",
660
- "extendsTypeArg": "SiteAgentBinding",
661
- "exportName": "SiteAgentBindingCollection",
662
- "collectionExportName": "SiteAgentBindingCollectionCollection",
663
- "schema": {
664
- "tableName": "site_agent_bindings",
665
- "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);",
666
- "columns": {
667
- "id": {
668
- "type": "UUID",
669
- "primaryKey": true,
670
- "referenceKind": "id",
671
- "notNull": true
672
- },
673
- "slug": {
674
- "type": "TEXT",
675
- "notNull": true
676
- },
677
- "context": {
678
- "type": "TEXT",
679
- "notNull": true,
680
- "default": ""
681
- },
682
- "created_at": {
683
- "type": "TIMESTAMP",
684
- "notNull": true,
685
- "default": "current_timestamp"
686
- },
687
- "updated_at": {
688
- "type": "TIMESTAMP",
689
- "notNull": true,
690
- "default": "current_timestamp"
691
- },
692
- "tenant_id": {
693
- "type": "UUID",
694
- "referenceKind": "tenantId",
695
- "notNull": true,
696
- "unique": false
697
- },
698
- "site_id": {
699
- "type": "UUID",
700
- "referenceKind": "foreignKey",
701
- "notNull": false,
702
- "unique": false,
703
- "foreignKey": {
704
- "table": "sites",
705
- "column": "id",
706
- "onDelete": "CASCADE",
707
- "onUpdate": "CASCADE"
708
- }
709
- },
710
- "agent_class": {
711
- "type": "TEXT",
712
- "notNull": false,
713
- "unique": false,
714
- "default": ""
715
- },
716
- "enabled": {
717
- "type": "BOOLEAN",
718
- "notNull": false,
719
- "unique": false,
720
- "default": true
721
- },
722
- "config": {
723
- "type": "JSON",
724
- "notNull": false,
725
- "unique": false,
726
- "default": {}
727
- },
728
- "priority": {
729
- "type": "INTEGER",
730
- "notNull": false,
731
- "unique": false,
732
- "default": 0
733
- }
734
- },
735
- "indexes": [
736
- {
737
- "name": "site_agent_bindings_site_id_agent_class_idx",
738
- "columns": [
739
- "site_id",
740
- "agent_class"
741
- ],
742
- "unique": true,
743
- "nullsNotDistinct": true
744
- },
745
- {
746
- "name": "site_agent_bindings_slug_context_idx",
747
- "columns": [
748
- "slug",
749
- "context"
750
- ]
751
- },
752
- {
753
- "name": "site_agent_bindings_tenant_id_created_at_idx",
754
- "columns": [
755
- "tenant_id",
756
- "created_at"
757
- ]
758
- }
759
- ],
760
- "version": "dec43c9c"
761
- },
762
- "importPath": "@happyvertical/smrt-sites"
763
- },
764
- "@happyvertical/smrt-sites:SiteCollection": {
765
- "name": "sitecollection",
766
- "className": "SiteCollection",
767
- "qualifiedName": "@happyvertical/smrt-sites:SiteCollection",
768
- "collection": "sites",
769
- "filePath": "/home/runner/work/smrt/smrt/packages/sites/src/collections/SiteCollection.ts",
770
- "packageName": "@happyvertical/smrt-sites",
771
- "fields": {},
772
- "methods": {
773
- "findByDomain": {
774
- "name": "findByDomain",
775
- "async": true,
574
+ "setPortalConfig": {
575
+ "name": "setPortalConfig",
576
+ "async": false,
776
577
  "parameters": [
777
578
  {
778
- "name": "domain",
779
- "type": "string",
579
+ "name": "config",
580
+ "type": "SitePortalConfig",
780
581
  "optional": false
781
582
  }
782
583
  ],
783
- "returnType": "Promise<Site | null>",
584
+ "returnType": "void",
784
585
  "isStatic": false,
785
586
  "isPublic": true
786
587
  },
787
- "findByTenant": {
788
- "name": "findByTenant",
789
- "async": true,
588
+ "getMetadata": {
589
+ "name": "getMetadata",
590
+ "async": false,
591
+ "parameters": [],
592
+ "returnType": "Record<string, unknown>",
593
+ "isStatic": false,
594
+ "isPublic": true
595
+ },
596
+ "setMetadata": {
597
+ "name": "setMetadata",
598
+ "async": false,
790
599
  "parameters": [
791
600
  {
792
- "name": "tenantId",
793
- "type": "string",
601
+ "name": "data",
602
+ "type": "Record<string, unknown>",
794
603
  "optional": false
795
604
  }
796
605
  ],
797
- "returnType": "Promise<Site[]>",
606
+ "returnType": "void",
798
607
  "isStatic": false,
799
608
  "isPublic": true
800
609
  },
801
- "findByStatus": {
802
- "name": "findByStatus",
803
- "async": true,
610
+ "updateMetadata": {
611
+ "name": "updateMetadata",
612
+ "async": false,
804
613
  "parameters": [
805
614
  {
806
- "name": "status",
807
- "type": "SiteStatus",
615
+ "name": "updates",
616
+ "type": "Record<string, unknown>",
808
617
  "optional": false
809
618
  }
810
619
  ],
811
- "returnType": "Promise<Site[]>",
812
- "isStatic": false,
813
- "isPublic": true
814
- },
815
- "findActive": {
816
- "name": "findActive",
817
- "async": true,
818
- "parameters": [],
819
- "returnType": "Promise<Site[]>",
620
+ "returnType": "void",
820
621
  "isStatic": false,
821
622
  "isPublic": true
822
623
  }
@@ -839,12 +640,23 @@
839
640
  "create",
840
641
  "update"
841
642
  ]
643
+ },
644
+ "cli": {
645
+ "skipApiCheck": true
646
+ },
647
+ "conflictColumns": [
648
+ "tenant_id",
649
+ "domain"
650
+ ],
651
+ "tenantScoped": {
652
+ "mode": "required"
842
653
  }
843
654
  },
844
- "extends": "SmrtCollection",
845
- "extendsTypeArg": "Site",
846
- "exportName": "SiteCollection",
847
- "collectionExportName": "SiteCollectionCollection",
655
+ "extends": "SmrtObject",
656
+ "exportName": "Site",
657
+ "collectionExportName": "SiteCollection",
658
+ "displayLabelField": "name",
659
+ "validationRules": [],
848
660
  "schema": {
849
661
  "tableName": "sites",
850
662
  "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);",
@@ -986,6 +798,194 @@
986
798
  "version": "1845042e"
987
799
  },
988
800
  "importPath": "@happyvertical/smrt-sites"
801
+ },
802
+ "@happyvertical/smrt-sites:SiteAgentBinding": {
803
+ "name": "siteagentbinding",
804
+ "className": "SiteAgentBinding",
805
+ "qualifiedName": "@happyvertical/smrt-sites:SiteAgentBinding",
806
+ "collection": "siteagentbindings",
807
+ "filePath": "/home/runner/work/smrt/smrt/packages/sites/src/models/SiteAgentBinding.ts",
808
+ "packageName": "@happyvertical/smrt-sites",
809
+ "fields": {
810
+ "tenantId": {
811
+ "type": "text",
812
+ "required": true,
813
+ "_meta": {
814
+ "sqlType": "UUID",
815
+ "__tenancy": {
816
+ "isTenantIdField": true,
817
+ "autoFilter": true,
818
+ "required": true,
819
+ "autoPopulate": true,
820
+ "nullable": false,
821
+ "mode": "required",
822
+ "field": "tenantId",
823
+ "allowSuperAdminBypass": false
824
+ }
825
+ }
826
+ },
827
+ "siteId": {
828
+ "type": "foreignKey",
829
+ "required": false,
830
+ "related": "Site"
831
+ },
832
+ "agentClass": {
833
+ "type": "text",
834
+ "required": false,
835
+ "default": ""
836
+ },
837
+ "enabled": {
838
+ "type": "boolean",
839
+ "required": false,
840
+ "default": true
841
+ },
842
+ "config": {
843
+ "type": "json",
844
+ "required": false,
845
+ "default": {}
846
+ },
847
+ "priority": {
848
+ "type": "integer",
849
+ "required": false,
850
+ "default": 0
851
+ }
852
+ },
853
+ "methods": {},
854
+ "decoratorConfig": {
855
+ "tableName": "site_agent_bindings",
856
+ "api": {
857
+ "include": [
858
+ "list",
859
+ "get",
860
+ "create",
861
+ "update",
862
+ "delete"
863
+ ]
864
+ },
865
+ "cli": {
866
+ "include": [
867
+ "list",
868
+ "get"
869
+ ]
870
+ },
871
+ "mcp": {
872
+ "include": [
873
+ "list",
874
+ "get"
875
+ ]
876
+ },
877
+ "conflictColumns": [
878
+ "site_id",
879
+ "agent_class"
880
+ ],
881
+ "tenantScoped": {
882
+ "mode": "required"
883
+ }
884
+ },
885
+ "extends": "SmrtObject",
886
+ "exportName": "SiteAgentBinding",
887
+ "collectionExportName": "SiteAgentBindingCollection",
888
+ "validationRules": [],
889
+ "schema": {
890
+ "tableName": "site_agent_bindings",
891
+ "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);",
892
+ "columns": {
893
+ "id": {
894
+ "type": "UUID",
895
+ "primaryKey": true,
896
+ "referenceKind": "id",
897
+ "notNull": true
898
+ },
899
+ "slug": {
900
+ "type": "TEXT",
901
+ "notNull": true
902
+ },
903
+ "context": {
904
+ "type": "TEXT",
905
+ "notNull": true,
906
+ "default": ""
907
+ },
908
+ "created_at": {
909
+ "type": "TIMESTAMP",
910
+ "notNull": true,
911
+ "default": "current_timestamp"
912
+ },
913
+ "updated_at": {
914
+ "type": "TIMESTAMP",
915
+ "notNull": true,
916
+ "default": "current_timestamp"
917
+ },
918
+ "tenant_id": {
919
+ "type": "UUID",
920
+ "referenceKind": "tenantId",
921
+ "notNull": true,
922
+ "unique": false
923
+ },
924
+ "site_id": {
925
+ "type": "UUID",
926
+ "referenceKind": "foreignKey",
927
+ "notNull": false,
928
+ "unique": false,
929
+ "foreignKey": {
930
+ "table": "sites",
931
+ "column": "id",
932
+ "onDelete": "CASCADE",
933
+ "onUpdate": "CASCADE"
934
+ }
935
+ },
936
+ "agent_class": {
937
+ "type": "TEXT",
938
+ "notNull": false,
939
+ "unique": false,
940
+ "default": ""
941
+ },
942
+ "enabled": {
943
+ "type": "BOOLEAN",
944
+ "notNull": false,
945
+ "unique": false,
946
+ "default": true
947
+ },
948
+ "config": {
949
+ "type": "JSON",
950
+ "notNull": false,
951
+ "unique": false,
952
+ "default": {}
953
+ },
954
+ "priority": {
955
+ "type": "INTEGER",
956
+ "notNull": false,
957
+ "unique": false,
958
+ "default": 0
959
+ }
960
+ },
961
+ "indexes": [
962
+ {
963
+ "name": "site_agent_bindings_site_id_agent_class_idx",
964
+ "columns": [
965
+ "site_id",
966
+ "agent_class"
967
+ ],
968
+ "unique": true,
969
+ "nullsNotDistinct": true
970
+ },
971
+ {
972
+ "name": "site_agent_bindings_slug_context_idx",
973
+ "columns": [
974
+ "slug",
975
+ "context"
976
+ ]
977
+ },
978
+ {
979
+ "name": "site_agent_bindings_tenant_id_created_at_idx",
980
+ "columns": [
981
+ "tenant_id",
982
+ "created_at"
983
+ ]
984
+ }
985
+ ],
986
+ "version": "dec43c9c"
987
+ },
988
+ "importPath": "@happyvertical/smrt-sites"
989
989
  }
990
990
  },
991
991
  "moduleType": "smrt",