@happyvertical/smrt-sites 0.57.31 → 0.57.33

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,81 +2,202 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-sites",
5
- "packageVersion": "0.57.31",
5
+ "packageVersion": "0.57.33",
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",
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",
13
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
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
24
29
  }
25
- ],
26
- "returnType": "Promise<SiteAgentBinding[]>",
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
+ },
123
+ "methods": {
124
+ "isActive": {
125
+ "name": "isActive",
126
+ "async": false,
127
+ "parameters": [],
128
+ "returnType": "boolean",
27
129
  "isStatic": false,
28
130
  "isPublic": true
29
131
  },
30
- "findByAgent": {
31
- "name": "findByAgent",
32
- "async": true,
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,
33
151
  "parameters": [
34
152
  {
35
- "name": "agentClass",
36
- "type": "string",
153
+ "name": "config",
154
+ "type": "SitePortalConfig",
37
155
  "optional": false
38
156
  }
39
157
  ],
40
- "returnType": "Promise<SiteAgentBinding[]>",
158
+ "returnType": "void",
41
159
  "isStatic": false,
42
160
  "isPublic": true
43
161
  },
44
- "findEnabled": {
45
- "name": "findEnabled",
46
- "async": true,
162
+ "getMetadata": {
163
+ "name": "getMetadata",
164
+ "async": false,
165
+ "parameters": [],
166
+ "returnType": "Record<string, unknown>",
167
+ "isStatic": false,
168
+ "isPublic": true
169
+ },
170
+ "setMetadata": {
171
+ "name": "setMetadata",
172
+ "async": false,
47
173
  "parameters": [
48
174
  {
49
- "name": "siteId",
50
- "type": "string",
175
+ "name": "data",
176
+ "type": "Record<string, unknown>",
51
177
  "optional": false
52
178
  }
53
179
  ],
54
- "returnType": "Promise<SiteAgentBinding[]>",
180
+ "returnType": "void",
55
181
  "isStatic": false,
56
182
  "isPublic": true
57
183
  },
58
- "findBySiteAndAgent": {
59
- "name": "findBySiteAndAgent",
60
- "async": true,
184
+ "updateMetadata": {
185
+ "name": "updateMetadata",
186
+ "async": false,
61
187
  "parameters": [
62
188
  {
63
- "name": "siteId",
64
- "type": "string",
65
- "optional": false
66
- },
67
- {
68
- "name": "agentClass",
69
- "type": "string",
189
+ "name": "updates",
190
+ "type": "Record<string, unknown>",
70
191
  "optional": false
71
192
  }
72
193
  ],
73
- "returnType": "Promise<SiteAgentBinding | null>",
194
+ "returnType": "void",
74
195
  "isStatic": false,
75
196
  "isPublic": true
76
197
  }
77
198
  },
78
199
  "decoratorConfig": {
79
- "tableName": "site_agent_bindings",
200
+ "tableName": "sites",
80
201
  "api": {
81
202
  "include": [
82
203
  "list",
@@ -89,23 +210,30 @@
89
210
  "mcp": {
90
211
  "include": [
91
212
  "list",
92
- "get"
213
+ "get",
214
+ "create",
215
+ "update"
93
216
  ]
94
217
  },
95
218
  "cli": {
96
- "include": [
97
- "list",
98
- "get"
99
- ]
219
+ "skipApiCheck": true
220
+ },
221
+ "conflictColumns": [
222
+ "tenant_id",
223
+ "domain"
224
+ ],
225
+ "tenantScoped": {
226
+ "mode": "required"
100
227
  }
101
228
  },
102
- "extends": "SmrtCollection",
103
- "extendsTypeArg": "SiteAgentBinding",
104
- "exportName": "SiteAgentBindingCollection",
105
- "collectionExportName": "SiteAgentBindingCollectionCollection",
229
+ "extends": "SmrtObject",
230
+ "exportName": "Site",
231
+ "collectionExportName": "SiteCollection",
232
+ "displayLabelField": "name",
233
+ "validationRules": [],
106
234
  "schema": {
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);",
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);",
109
237
  "columns": {
110
238
  "id": {
111
239
  "type": "UUID",
@@ -138,208 +266,23 @@
138
266
  "notNull": true,
139
267
  "unique": false
140
268
  },
141
- "site_id": {
142
- "type": "UUID",
143
- "referenceKind": "foreignKey",
269
+ "name": {
270
+ "type": "TEXT",
144
271
  "notNull": false,
145
272
  "unique": false,
146
- "foreignKey": {
147
- "table": "sites",
148
- "column": "id",
149
- "onDelete": "CASCADE",
150
- "onUpdate": "CASCADE"
151
- }
273
+ "default": ""
152
274
  },
153
- "agent_class": {
275
+ "domain": {
154
276
  "type": "TEXT",
155
277
  "notNull": false,
156
278
  "unique": false,
157
279
  "default": ""
158
280
  },
159
- "enabled": {
160
- "type": "BOOLEAN",
281
+ "status": {
282
+ "type": "TEXT",
161
283
  "notNull": false,
162
284
  "unique": false,
163
- "default": true
164
- },
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"
285
+ "default": "draft"
343
286
  },
344
287
  "tier": {
345
288
  "type": "TEXT",
@@ -430,12 +373,12 @@
430
373
  },
431
374
  "importPath": "@happyvertical/smrt-sites"
432
375
  },
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",
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",
439
382
  "packageName": "@happyvertical/smrt-sites",
440
383
  "fields": {
441
384
  "tenantId": {
@@ -455,169 +398,425 @@
455
398
  }
456
399
  }
457
400
  },
458
- "name": {
459
- "type": "text",
401
+ "siteId": {
402
+ "type": "foreignKey",
460
403
  "required": false,
461
- "default": ""
404
+ "related": "Site"
462
405
  },
463
- "domain": {
406
+ "agentClass": {
464
407
  "type": "text",
465
408
  "required": false,
466
409
  "default": ""
467
410
  },
468
- "status": {
469
- "type": "text",
470
- "required": false,
471
- "default": "draft",
472
- "enum": [
473
- "draft",
474
- "active",
475
- "suspended",
476
- "archived"
477
- ]
478
- },
479
- "tier": {
480
- "type": "text",
411
+ "enabled": {
412
+ "type": "boolean",
481
413
  "required": false,
482
- "default": "free",
483
- "enum": [
484
- "free",
485
- "standard",
486
- "premium"
487
- ]
414
+ "default": true
488
415
  },
489
- "databaseUrl": {
490
- "type": "text",
416
+ "config": {
417
+ "type": "json",
491
418
  "required": false,
492
- "default": ""
419
+ "default": {}
493
420
  },
494
- "databaseType": {
495
- "type": "text",
421
+ "priority": {
422
+ "type": "integer",
496
423
  "required": false,
497
- "default": ""
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
+ ]
498
438
  },
499
- "portalConfig": {
500
- "type": "text",
501
- "required": false,
502
- "default": ""
439
+ "cli": {
440
+ "include": [
441
+ "list",
442
+ "get"
443
+ ]
503
444
  },
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
- ""
445
+ "mcp": {
446
+ "include": [
447
+ "list",
448
+ "get"
524
449
  ]
525
450
  },
526
- "provisionedAt": {
527
- "type": "datetime",
528
- "required": false
529
- },
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
451
+ "conflictColumns": [
452
+ "site_id",
453
+ "agent_class"
454
+ ],
455
+ "tenantScoped": {
456
+ "mode": "required"
547
457
  }
548
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
+ }
534
+ },
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"
561
+ },
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": {},
549
572
  "methods": {
550
- "isActive": {
551
- "name": "isActive",
552
- "async": false,
553
- "parameters": [],
554
- "returnType": "boolean",
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[]>",
555
584
  "isStatic": false,
556
585
  "isPublic": true
557
586
  },
558
- "isReady": {
559
- "name": "isReady",
560
- "async": false,
561
- "parameters": [],
562
- "returnType": "boolean",
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[]>",
563
598
  "isStatic": false,
564
599
  "isPublic": true
565
600
  },
566
- "getPortalConfig": {
567
- "name": "getPortalConfig",
568
- "async": false,
569
- "parameters": [],
570
- "returnType": "SitePortalConfig",
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[]>",
571
612
  "isStatic": false,
572
613
  "isPublic": true
573
614
  },
574
- "setPortalConfig": {
575
- "name": "setPortalConfig",
576
- "async": false,
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>",
631
+ "isStatic": false,
632
+ "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
+ },
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,
577
776
  "parameters": [
578
777
  {
579
- "name": "config",
580
- "type": "SitePortalConfig",
778
+ "name": "domain",
779
+ "type": "string",
581
780
  "optional": false
582
781
  }
583
782
  ],
584
- "returnType": "void",
585
- "isStatic": false,
586
- "isPublic": true
587
- },
588
- "getMetadata": {
589
- "name": "getMetadata",
590
- "async": false,
591
- "parameters": [],
592
- "returnType": "Record<string, unknown>",
783
+ "returnType": "Promise<Site | null>",
593
784
  "isStatic": false,
594
785
  "isPublic": true
595
786
  },
596
- "setMetadata": {
597
- "name": "setMetadata",
598
- "async": false,
787
+ "findByTenant": {
788
+ "name": "findByTenant",
789
+ "async": true,
599
790
  "parameters": [
600
791
  {
601
- "name": "data",
602
- "type": "Record<string, unknown>",
792
+ "name": "tenantId",
793
+ "type": "string",
603
794
  "optional": false
604
795
  }
605
796
  ],
606
- "returnType": "void",
797
+ "returnType": "Promise<Site[]>",
607
798
  "isStatic": false,
608
799
  "isPublic": true
609
800
  },
610
- "updateMetadata": {
611
- "name": "updateMetadata",
612
- "async": false,
801
+ "findByStatus": {
802
+ "name": "findByStatus",
803
+ "async": true,
613
804
  "parameters": [
614
805
  {
615
- "name": "updates",
616
- "type": "Record<string, unknown>",
806
+ "name": "status",
807
+ "type": "SiteStatus",
617
808
  "optional": false
618
809
  }
619
810
  ],
620
- "returnType": "void",
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[]>",
621
820
  "isStatic": false,
622
821
  "isPublic": true
623
822
  }
@@ -640,23 +839,12 @@
640
839
  "create",
641
840
  "update"
642
841
  ]
643
- },
644
- "cli": {
645
- "skipApiCheck": true
646
- },
647
- "conflictColumns": [
648
- "tenant_id",
649
- "domain"
650
- ],
651
- "tenantScoped": {
652
- "mode": "required"
653
842
  }
654
843
  },
655
- "extends": "SmrtObject",
656
- "exportName": "Site",
657
- "collectionExportName": "SiteCollection",
658
- "displayLabelField": "name",
659
- "validationRules": [],
844
+ "extends": "SmrtCollection",
845
+ "extendsTypeArg": "Site",
846
+ "exportName": "SiteCollection",
847
+ "collectionExportName": "SiteCollectionCollection",
660
848
  "schema": {
661
849
  "tableName": "sites",
662
850
  "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);",
@@ -798,194 +986,6 @@
798
986
  "version": "1845042e"
799
987
  },
800
988
  "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",