sbuilder-mcp 0.84.0 → 0.85.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/CHANGELOG.md +10 -0
- package/CHANGELOG.vi.md +10 -0
- package/README.md +1 -1
- package/README.vi.md +1 -1
- package/dist/catalog/api.generated.js +297 -3
- package/dist/catalog/deadkeys.generated.js +1 -1
- package/dist/catalog/shapes.generated.js +95 -3
- package/dist/catalog/source.generated.js +2 -2
- package/dist/domains/site/readiness.js +3 -2
- package/dist/tools/api.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,16 @@ All notable changes to this project are documented in this file.
|
|
|
6
6
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
7
7
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
8
8
|
|
|
9
|
+
## [0.85.0] - 2026-10-11
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- `sb_api_find` and `sb_api_call` reach 843 platform operations, including reading, editing and deleting a site (name, slug, subdomain redirect, `maintenanceMode`), site members and site export.
|
|
13
|
+
- `sb_review` suggests switching a shop in maintenance mode back on with `sb_api_call` on `patch:/api/sites/{siteId}`.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- `sb_api_call` names "the handler's body" instead of "(inline)" in its `unknown_keys` note when the handler has no named body struct.
|
|
17
|
+
- Issuing tickets through `tickets/issued` no longer requires an `eventId`.
|
|
18
|
+
|
|
9
19
|
## [0.84.0] - 2026-10-11
|
|
10
20
|
|
|
11
21
|
### Added
|
package/CHANGELOG.vi.md
CHANGED
|
@@ -6,6 +6,16 @@ Mọi thay đổi đáng chú ý của dự án được ghi lại trong file n
|
|
|
6
6
|
Định dạng dựa trên [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
7
7
|
và dự án tuân theo [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
8
8
|
|
|
9
|
+
## [0.85.0] - 2026-10-11
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- `sb_api_find` và `sb_api_call` truy cập được 843 operation của platform, gồm đọc, sửa và xoá site (tên, slug, chuyển hướng subdomain, `maintenanceMode`), thành viên site và xuất site.
|
|
13
|
+
- `sb_review` gợi ý bật lại shop đang bảo trì bằng `sb_api_call` trên `patch:/api/sites/{siteId}`.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- `sb_api_call` ghi "the handler's body" thay vì "(inline)" trong ghi chú `unknown_keys` khi handler không có struct body được đặt tên.
|
|
17
|
+
- Phát vé qua `tickets/issued` không còn yêu cầu `eventId`.
|
|
18
|
+
|
|
9
19
|
## [0.84.0] - 2026-10-11
|
|
10
20
|
|
|
11
21
|
### Added
|
package/README.md
CHANGED
|
@@ -118,7 +118,7 @@ in this client: one would put the very key the platform exists to hold back into
|
|
|
118
118
|
| `sb_store` | Run a store flow that must happen in a fixed order — `checkout` (the four writes that make a working one), `checkout_sync` (the store's current payment and delivery methods into every existing order form, checkout page republished), `form` (any of the platform's 17 templates with its own field document), `chrome` (one shared header or footer on a real site menu — desktop menu, mobile drawer, cart and account icons), `menu` (a menu node bound to the site's menu, its links resolved), `overlay_attach` (a pop-up or quick view on the open page), `cart` (the site's cart drawer, when it has none; `relocalize` puts an existing one in the site's language) and `app` (a built-in app plus the pages it needs), `global_attach` / `global_detach` (put an EXISTING shared section on the open page, or take it off), `global_promote` (make a section on the page a NEW shared section) and `template_save` (save a section as a reusable template) |
|
|
119
119
|
| `sb_undo` | Undo / redo this session's writes — page and form edits and `sb_api_call` PUTs; a page is refused if someone else saved it since. The platform's versions and history (`sb_page_version`) outlive this process |
|
|
120
120
|
|
|
121
|
-
Twenty-eight tools, **
|
|
121
|
+
Twenty-eight tools, **843 API operations** (309 of the 389 writes carrying a body shape read
|
|
122
122
|
off the handler), 123 elements, 94 binding sources. `sb_api_find`
|
|
123
123
|
is an index rather than a tool per endpoint, so the tool list stays short while everything
|
|
124
124
|
the platform can do stays reachable — and operations added to the platform arrive with the
|
package/README.vi.md
CHANGED
|
@@ -115,7 +115,7 @@ nhét ngược lại vào mọi bản cài.
|
|
|
115
115
|
| `sb_store` | Chạy một luồng cửa hàng bắt buộc đúng thứ tự — `checkout` (bốn lệnh ghi tạo nên trang thanh toán), `checkout_sync` (đưa phương thức thanh toán và giao hàng hiện tại vào mọi form đặt hàng đã có, publish lại trang thanh toán), `form` (một trong 17 template của nền tảng kèm field document của nó), `chrome` (một header hoặc footer dùng chung trên menu thật của site — menu desktop, drawer mobile, icon giỏ hàng và tài khoản), `menu` (một node menu bind vào menu của site, link đã phân giải), `overlay_attach` (một pop-up hay quick view trên trang đang mở), `cart` (ngăn giỏ hàng của site, khi chưa có; `relocalize` đưa ngăn giỏ đã có về ngôn ngữ của site), `app` (một app dựng sẵn kèm những trang nó cần), và `global_attach` / `global_detach` (đặt một section dùng chung ĐÃ CÓ lên trang đang mở, hoặc gỡ ra), `global_promote` (biến một section trên trang thành section dùng chung MỚI) và `template_save` (lưu một section làm mẫu dùng lại) |
|
|
116
116
|
| `sb_undo` | Hoàn tác / làm lại các thao tác ghi trong phiên — chỉnh sửa trang, form và PUT qua `sb_api_call`; trang bị từ chối nếu người khác đã lưu sau đó. Version và history của nền tảng (`sb_page_version`) sống lâu hơn process này |
|
|
117
117
|
|
|
118
|
-
Hai mươi tám tool, **
|
|
118
|
+
Hai mươi tám tool, **843 operation API** (309 trong 389 lệnh ghi có hình dạng body đọc thẳng
|
|
119
119
|
từ handler), 123 element, 94 nguồn binding. `sb_api_find` là
|
|
120
120
|
một chỉ mục chứ không phải mỗi endpoint một tool, nên danh sách tool vẫn ngắn trong khi mọi
|
|
121
121
|
thứ nền tảng làm được vẫn với tới — và operation mới thêm bên nền tảng sẽ tự có sau lần
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export const SWAGGER_SOURCE = {
|
|
2
|
-
"operations":
|
|
2
|
+
"operations": 843,
|
|
3
3
|
"definitions": 278,
|
|
4
|
-
"bodyCarrying":
|
|
5
|
-
"bodyUndescribed":
|
|
4
|
+
"bodyCarrying": 373,
|
|
5
|
+
"bodyUndescribed": 102,
|
|
6
6
|
"generatedFrom": "server/docs/swagger.json"
|
|
7
7
|
};
|
|
8
8
|
export const API_OPERATIONS = [
|
|
@@ -4206,6 +4206,118 @@ export const API_OPERATIONS = [
|
|
|
4206
4206
|
"bodyRef": null,
|
|
4207
4207
|
"credential": "siteScoped"
|
|
4208
4208
|
},
|
|
4209
|
+
{
|
|
4210
|
+
"id": "get:/api/sites/{siteId}",
|
|
4211
|
+
"method": "GET",
|
|
4212
|
+
"path": "/api/sites/{siteId}",
|
|
4213
|
+
"tags": [
|
|
4214
|
+
"sites"
|
|
4215
|
+
],
|
|
4216
|
+
"summary": "Read, edit or trash one site",
|
|
4217
|
+
"params": [
|
|
4218
|
+
{
|
|
4219
|
+
"name": "siteId",
|
|
4220
|
+
"in": "path",
|
|
4221
|
+
"required": true,
|
|
4222
|
+
"type": "string",
|
|
4223
|
+
"description": "Site ID"
|
|
4224
|
+
},
|
|
4225
|
+
{
|
|
4226
|
+
"name": "site",
|
|
4227
|
+
"in": "body",
|
|
4228
|
+
"required": false,
|
|
4229
|
+
"type": "object",
|
|
4230
|
+
"description": "PATCH/PUT: {name?, slug?, subdomainRedirect?, subdomainRedirectCode?, maintenanceMode?}"
|
|
4231
|
+
}
|
|
4232
|
+
],
|
|
4233
|
+
"bodyDescribed": false,
|
|
4234
|
+
"bodyRef": null,
|
|
4235
|
+
"credential": "siteScoped"
|
|
4236
|
+
},
|
|
4237
|
+
{
|
|
4238
|
+
"id": "put:/api/sites/{siteId}",
|
|
4239
|
+
"method": "PUT",
|
|
4240
|
+
"path": "/api/sites/{siteId}",
|
|
4241
|
+
"tags": [
|
|
4242
|
+
"sites"
|
|
4243
|
+
],
|
|
4244
|
+
"summary": "Read, edit or trash one site",
|
|
4245
|
+
"params": [
|
|
4246
|
+
{
|
|
4247
|
+
"name": "siteId",
|
|
4248
|
+
"in": "path",
|
|
4249
|
+
"required": true,
|
|
4250
|
+
"type": "string",
|
|
4251
|
+
"description": "Site ID"
|
|
4252
|
+
},
|
|
4253
|
+
{
|
|
4254
|
+
"name": "site",
|
|
4255
|
+
"in": "body",
|
|
4256
|
+
"required": false,
|
|
4257
|
+
"type": "object",
|
|
4258
|
+
"description": "PATCH/PUT: {name?, slug?, subdomainRedirect?, subdomainRedirectCode?, maintenanceMode?}"
|
|
4259
|
+
}
|
|
4260
|
+
],
|
|
4261
|
+
"bodyDescribed": false,
|
|
4262
|
+
"bodyRef": null,
|
|
4263
|
+
"credential": "siteScoped"
|
|
4264
|
+
},
|
|
4265
|
+
{
|
|
4266
|
+
"id": "patch:/api/sites/{siteId}",
|
|
4267
|
+
"method": "PATCH",
|
|
4268
|
+
"path": "/api/sites/{siteId}",
|
|
4269
|
+
"tags": [
|
|
4270
|
+
"sites"
|
|
4271
|
+
],
|
|
4272
|
+
"summary": "Read, edit or trash one site",
|
|
4273
|
+
"params": [
|
|
4274
|
+
{
|
|
4275
|
+
"name": "siteId",
|
|
4276
|
+
"in": "path",
|
|
4277
|
+
"required": true,
|
|
4278
|
+
"type": "string",
|
|
4279
|
+
"description": "Site ID"
|
|
4280
|
+
},
|
|
4281
|
+
{
|
|
4282
|
+
"name": "site",
|
|
4283
|
+
"in": "body",
|
|
4284
|
+
"required": false,
|
|
4285
|
+
"type": "object",
|
|
4286
|
+
"description": "PATCH/PUT: {name?, slug?, subdomainRedirect?, subdomainRedirectCode?, maintenanceMode?}"
|
|
4287
|
+
}
|
|
4288
|
+
],
|
|
4289
|
+
"bodyDescribed": false,
|
|
4290
|
+
"bodyRef": null,
|
|
4291
|
+
"credential": "siteScoped"
|
|
4292
|
+
},
|
|
4293
|
+
{
|
|
4294
|
+
"id": "delete:/api/sites/{siteId}",
|
|
4295
|
+
"method": "DELETE",
|
|
4296
|
+
"path": "/api/sites/{siteId}",
|
|
4297
|
+
"tags": [
|
|
4298
|
+
"sites"
|
|
4299
|
+
],
|
|
4300
|
+
"summary": "Read, edit or trash one site",
|
|
4301
|
+
"params": [
|
|
4302
|
+
{
|
|
4303
|
+
"name": "siteId",
|
|
4304
|
+
"in": "path",
|
|
4305
|
+
"required": true,
|
|
4306
|
+
"type": "string",
|
|
4307
|
+
"description": "Site ID"
|
|
4308
|
+
},
|
|
4309
|
+
{
|
|
4310
|
+
"name": "site",
|
|
4311
|
+
"in": "body",
|
|
4312
|
+
"required": false,
|
|
4313
|
+
"type": "object",
|
|
4314
|
+
"description": "PATCH/PUT: {name?, slug?, subdomainRedirect?, subdomainRedirectCode?, maintenanceMode?}"
|
|
4315
|
+
}
|
|
4316
|
+
],
|
|
4317
|
+
"bodyDescribed": false,
|
|
4318
|
+
"bodyRef": null,
|
|
4319
|
+
"credential": "siteScoped"
|
|
4320
|
+
},
|
|
4209
4321
|
{
|
|
4210
4322
|
"id": "get:/api/sites/{siteId}/activity",
|
|
4211
4323
|
"method": "GET",
|
|
@@ -9175,6 +9287,27 @@ export const API_OPERATIONS = [
|
|
|
9175
9287
|
"bodyRef": null,
|
|
9176
9288
|
"credential": "siteScoped"
|
|
9177
9289
|
},
|
|
9290
|
+
{
|
|
9291
|
+
"id": "get:/api/sites/{siteId}/export",
|
|
9292
|
+
"method": "GET",
|
|
9293
|
+
"path": "/api/sites/{siteId}/export",
|
|
9294
|
+
"tags": [
|
|
9295
|
+
"sites"
|
|
9296
|
+
],
|
|
9297
|
+
"summary": "Download the whole site as one archive",
|
|
9298
|
+
"params": [
|
|
9299
|
+
{
|
|
9300
|
+
"name": "siteId",
|
|
9301
|
+
"in": "path",
|
|
9302
|
+
"required": true,
|
|
9303
|
+
"type": "string",
|
|
9304
|
+
"description": "Site ID"
|
|
9305
|
+
}
|
|
9306
|
+
],
|
|
9307
|
+
"bodyDescribed": false,
|
|
9308
|
+
"bodyRef": null,
|
|
9309
|
+
"credential": "siteScoped"
|
|
9310
|
+
},
|
|
9178
9311
|
{
|
|
9179
9312
|
"id": "get:/api/sites/{siteId}/filter-facets",
|
|
9180
9313
|
"method": "GET",
|
|
@@ -12052,6 +12185,167 @@ export const API_OPERATIONS = [
|
|
|
12052
12185
|
"bodyRef": null,
|
|
12053
12186
|
"credential": "siteScoped"
|
|
12054
12187
|
},
|
|
12188
|
+
{
|
|
12189
|
+
"id": "get:/api/sites/{siteId}/members",
|
|
12190
|
+
"method": "GET",
|
|
12191
|
+
"path": "/api/sites/{siteId}/members",
|
|
12192
|
+
"tags": [
|
|
12193
|
+
"sites"
|
|
12194
|
+
],
|
|
12195
|
+
"summary": "List or invite site members; change a member's role, or remove them",
|
|
12196
|
+
"params": [
|
|
12197
|
+
{
|
|
12198
|
+
"name": "siteId",
|
|
12199
|
+
"in": "path",
|
|
12200
|
+
"required": true,
|
|
12201
|
+
"type": "string",
|
|
12202
|
+
"description": "Site ID"
|
|
12203
|
+
},
|
|
12204
|
+
{
|
|
12205
|
+
"name": "member",
|
|
12206
|
+
"in": "body",
|
|
12207
|
+
"required": false,
|
|
12208
|
+
"type": "object",
|
|
12209
|
+
"description": "POST: {email, role}; PATCH/PUT: {role}"
|
|
12210
|
+
}
|
|
12211
|
+
],
|
|
12212
|
+
"bodyDescribed": false,
|
|
12213
|
+
"bodyRef": null,
|
|
12214
|
+
"credential": "siteScoped"
|
|
12215
|
+
},
|
|
12216
|
+
{
|
|
12217
|
+
"id": "post:/api/sites/{siteId}/members",
|
|
12218
|
+
"method": "POST",
|
|
12219
|
+
"path": "/api/sites/{siteId}/members",
|
|
12220
|
+
"tags": [
|
|
12221
|
+
"sites"
|
|
12222
|
+
],
|
|
12223
|
+
"summary": "List or invite site members; change a member's role, or remove them",
|
|
12224
|
+
"params": [
|
|
12225
|
+
{
|
|
12226
|
+
"name": "siteId",
|
|
12227
|
+
"in": "path",
|
|
12228
|
+
"required": true,
|
|
12229
|
+
"type": "string",
|
|
12230
|
+
"description": "Site ID"
|
|
12231
|
+
},
|
|
12232
|
+
{
|
|
12233
|
+
"name": "member",
|
|
12234
|
+
"in": "body",
|
|
12235
|
+
"required": false,
|
|
12236
|
+
"type": "object",
|
|
12237
|
+
"description": "POST: {email, role}; PATCH/PUT: {role}"
|
|
12238
|
+
}
|
|
12239
|
+
],
|
|
12240
|
+
"bodyDescribed": false,
|
|
12241
|
+
"bodyRef": null,
|
|
12242
|
+
"credential": "siteScoped"
|
|
12243
|
+
},
|
|
12244
|
+
{
|
|
12245
|
+
"id": "put:/api/sites/{siteId}/members/{userId}",
|
|
12246
|
+
"method": "PUT",
|
|
12247
|
+
"path": "/api/sites/{siteId}/members/{userId}",
|
|
12248
|
+
"tags": [
|
|
12249
|
+
"sites"
|
|
12250
|
+
],
|
|
12251
|
+
"summary": "List or invite site members; change a member's role, or remove them",
|
|
12252
|
+
"params": [
|
|
12253
|
+
{
|
|
12254
|
+
"name": "siteId",
|
|
12255
|
+
"in": "path",
|
|
12256
|
+
"required": true,
|
|
12257
|
+
"type": "string",
|
|
12258
|
+
"description": "Site ID"
|
|
12259
|
+
},
|
|
12260
|
+
{
|
|
12261
|
+
"name": "userId",
|
|
12262
|
+
"in": "path",
|
|
12263
|
+
"required": true,
|
|
12264
|
+
"type": "string",
|
|
12265
|
+
"description": "Member's user ID (/{userId} routes)"
|
|
12266
|
+
},
|
|
12267
|
+
{
|
|
12268
|
+
"name": "member",
|
|
12269
|
+
"in": "body",
|
|
12270
|
+
"required": false,
|
|
12271
|
+
"type": "object",
|
|
12272
|
+
"description": "POST: {email, role}; PATCH/PUT: {role}"
|
|
12273
|
+
}
|
|
12274
|
+
],
|
|
12275
|
+
"bodyDescribed": false,
|
|
12276
|
+
"bodyRef": null,
|
|
12277
|
+
"credential": "siteScoped"
|
|
12278
|
+
},
|
|
12279
|
+
{
|
|
12280
|
+
"id": "patch:/api/sites/{siteId}/members/{userId}",
|
|
12281
|
+
"method": "PATCH",
|
|
12282
|
+
"path": "/api/sites/{siteId}/members/{userId}",
|
|
12283
|
+
"tags": [
|
|
12284
|
+
"sites"
|
|
12285
|
+
],
|
|
12286
|
+
"summary": "List or invite site members; change a member's role, or remove them",
|
|
12287
|
+
"params": [
|
|
12288
|
+
{
|
|
12289
|
+
"name": "siteId",
|
|
12290
|
+
"in": "path",
|
|
12291
|
+
"required": true,
|
|
12292
|
+
"type": "string",
|
|
12293
|
+
"description": "Site ID"
|
|
12294
|
+
},
|
|
12295
|
+
{
|
|
12296
|
+
"name": "userId",
|
|
12297
|
+
"in": "path",
|
|
12298
|
+
"required": true,
|
|
12299
|
+
"type": "string",
|
|
12300
|
+
"description": "Member's user ID (/{userId} routes)"
|
|
12301
|
+
},
|
|
12302
|
+
{
|
|
12303
|
+
"name": "member",
|
|
12304
|
+
"in": "body",
|
|
12305
|
+
"required": false,
|
|
12306
|
+
"type": "object",
|
|
12307
|
+
"description": "POST: {email, role}; PATCH/PUT: {role}"
|
|
12308
|
+
}
|
|
12309
|
+
],
|
|
12310
|
+
"bodyDescribed": false,
|
|
12311
|
+
"bodyRef": null,
|
|
12312
|
+
"credential": "siteScoped"
|
|
12313
|
+
},
|
|
12314
|
+
{
|
|
12315
|
+
"id": "delete:/api/sites/{siteId}/members/{userId}",
|
|
12316
|
+
"method": "DELETE",
|
|
12317
|
+
"path": "/api/sites/{siteId}/members/{userId}",
|
|
12318
|
+
"tags": [
|
|
12319
|
+
"sites"
|
|
12320
|
+
],
|
|
12321
|
+
"summary": "List or invite site members; change a member's role, or remove them",
|
|
12322
|
+
"params": [
|
|
12323
|
+
{
|
|
12324
|
+
"name": "siteId",
|
|
12325
|
+
"in": "path",
|
|
12326
|
+
"required": true,
|
|
12327
|
+
"type": "string",
|
|
12328
|
+
"description": "Site ID"
|
|
12329
|
+
},
|
|
12330
|
+
{
|
|
12331
|
+
"name": "userId",
|
|
12332
|
+
"in": "path",
|
|
12333
|
+
"required": true,
|
|
12334
|
+
"type": "string",
|
|
12335
|
+
"description": "Member's user ID (/{userId} routes)"
|
|
12336
|
+
},
|
|
12337
|
+
{
|
|
12338
|
+
"name": "member",
|
|
12339
|
+
"in": "body",
|
|
12340
|
+
"required": false,
|
|
12341
|
+
"type": "object",
|
|
12342
|
+
"description": "POST: {email, role}; PATCH/PUT: {role}"
|
|
12343
|
+
}
|
|
12344
|
+
],
|
|
12345
|
+
"bodyDescribed": false,
|
|
12346
|
+
"bodyRef": null,
|
|
12347
|
+
"credential": "siteScoped"
|
|
12348
|
+
},
|
|
12055
12349
|
{
|
|
12056
12350
|
"id": "get:/api/sites/{siteId}/orders",
|
|
12057
12351
|
"method": "GET",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const SHAPE_SOURCE = {
|
|
2
|
-
"writeOperations":
|
|
3
|
-
"shaped":
|
|
4
|
-
"fromHandlers":
|
|
2
|
+
"writeOperations": 389,
|
|
3
|
+
"shaped": 309,
|
|
4
|
+
"fromHandlers": 299,
|
|
5
5
|
"fromSwaggerOnly": 10,
|
|
6
6
|
"withReadOnly": 30,
|
|
7
7
|
"structsRead": 3194
|
|
@@ -10373,6 +10373,98 @@ export const REQUEST_SHAPES = {
|
|
|
10373
10373
|
"source": "go",
|
|
10374
10374
|
"goType": "(inline)"
|
|
10375
10375
|
},
|
|
10376
|
+
"patch:/api/sites/{siteId}": {
|
|
10377
|
+
"fields": [
|
|
10378
|
+
{
|
|
10379
|
+
"name": "name",
|
|
10380
|
+
"type": "string"
|
|
10381
|
+
},
|
|
10382
|
+
{
|
|
10383
|
+
"name": "slug",
|
|
10384
|
+
"type": "string"
|
|
10385
|
+
},
|
|
10386
|
+
{
|
|
10387
|
+
"name": "subdomainRedirect",
|
|
10388
|
+
"type": "boolean | null",
|
|
10389
|
+
"note": "Pointer, not bool: `false` is a MEANINGFUL value here (\"serve the built-in address directly\"), and a plain bool cannot be told apart from \"field omitted\" — a rename would silently switch redirecting off on every site."
|
|
10390
|
+
},
|
|
10391
|
+
{
|
|
10392
|
+
"name": "subdomainRedirectCode",
|
|
10393
|
+
"type": "number",
|
|
10394
|
+
"note": "301 or 302; 0/absent keeps the site's current choice."
|
|
10395
|
+
},
|
|
10396
|
+
{
|
|
10397
|
+
"name": "maintenanceMode",
|
|
10398
|
+
"type": "boolean | null",
|
|
10399
|
+
"note": "Takes the whole storefront offline."
|
|
10400
|
+
}
|
|
10401
|
+
],
|
|
10402
|
+
"source": "go",
|
|
10403
|
+
"goType": "(inline)"
|
|
10404
|
+
},
|
|
10405
|
+
"put:/api/sites/{siteId}": {
|
|
10406
|
+
"fields": [
|
|
10407
|
+
{
|
|
10408
|
+
"name": "name",
|
|
10409
|
+
"type": "string"
|
|
10410
|
+
},
|
|
10411
|
+
{
|
|
10412
|
+
"name": "slug",
|
|
10413
|
+
"type": "string"
|
|
10414
|
+
},
|
|
10415
|
+
{
|
|
10416
|
+
"name": "subdomainRedirect",
|
|
10417
|
+
"type": "boolean | null",
|
|
10418
|
+
"note": "Pointer, not bool: `false` is a MEANINGFUL value here (\"serve the built-in address directly\"), and a plain bool cannot be told apart from \"field omitted\" — a rename would silently switch redirecting off on every site."
|
|
10419
|
+
},
|
|
10420
|
+
{
|
|
10421
|
+
"name": "subdomainRedirectCode",
|
|
10422
|
+
"type": "number",
|
|
10423
|
+
"note": "301 or 302; 0/absent keeps the site's current choice."
|
|
10424
|
+
},
|
|
10425
|
+
{
|
|
10426
|
+
"name": "maintenanceMode",
|
|
10427
|
+
"type": "boolean | null",
|
|
10428
|
+
"note": "Takes the whole storefront offline."
|
|
10429
|
+
}
|
|
10430
|
+
],
|
|
10431
|
+
"source": "go",
|
|
10432
|
+
"goType": "(inline)"
|
|
10433
|
+
},
|
|
10434
|
+
"post:/api/sites/{siteId}/members": {
|
|
10435
|
+
"fields": [
|
|
10436
|
+
{
|
|
10437
|
+
"name": "email",
|
|
10438
|
+
"type": "string"
|
|
10439
|
+
},
|
|
10440
|
+
{
|
|
10441
|
+
"name": "role",
|
|
10442
|
+
"type": "site.Role"
|
|
10443
|
+
}
|
|
10444
|
+
],
|
|
10445
|
+
"source": "go",
|
|
10446
|
+
"goType": "(inline)"
|
|
10447
|
+
},
|
|
10448
|
+
"patch:/api/sites/{siteId}/members/{userId}": {
|
|
10449
|
+
"fields": [
|
|
10450
|
+
{
|
|
10451
|
+
"name": "role",
|
|
10452
|
+
"type": "site.Role"
|
|
10453
|
+
}
|
|
10454
|
+
],
|
|
10455
|
+
"source": "go",
|
|
10456
|
+
"goType": "(inline)"
|
|
10457
|
+
},
|
|
10458
|
+
"put:/api/sites/{siteId}/members/{userId}": {
|
|
10459
|
+
"fields": [
|
|
10460
|
+
{
|
|
10461
|
+
"name": "role",
|
|
10462
|
+
"type": "site.Role"
|
|
10463
|
+
}
|
|
10464
|
+
],
|
|
10465
|
+
"source": "go",
|
|
10466
|
+
"goType": "(inline)"
|
|
10467
|
+
},
|
|
10376
10468
|
"post:/api/sites/{siteId}/roles": {
|
|
10377
10469
|
"fields": [
|
|
10378
10470
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// GENERATED by scripts/gen-catalog.ts — do not edit by hand.
|
|
2
2
|
// The platform commit every other generated file here describes.
|
|
3
3
|
export const PLATFORM_SOURCE = {
|
|
4
|
-
"commit": "
|
|
5
|
-
"committedAt": "2026-10-
|
|
4
|
+
"commit": "8384af1dd6df12bb80a75a8b53e88c377d3f722c",
|
|
5
|
+
"committedAt": "2026-10-12T01:13:06+07:00",
|
|
6
6
|
"dirty": false
|
|
7
7
|
};
|
|
@@ -263,11 +263,12 @@ export function readinessGaps(input) {
|
|
|
263
263
|
problem: 'This storefront is switched OFF right now and has no published page of the "maintain" ' +
|
|
264
264
|
'type, so every address is answering a bare 503 sentence — no header, no logo, no word ' +
|
|
265
265
|
'about when it is back, and nothing that looks like this shop.',
|
|
266
|
-
fix: draft
|
|
266
|
+
fix: (draft
|
|
267
267
|
? 'Publish the maintenance page that already exists.'
|
|
268
268
|
: 'Create a page of type "maintain" and publish it. It has no address of its own — the ' +
|
|
269
269
|
'storefront serves it as the BODY of the 503 — so give it the shop\'s name and a line ' +
|
|
270
|
-
'saying when you are back.'
|
|
270
|
+
'saying when you are back.') +
|
|
271
|
+
' Or switch the shop back on: sb_api_call id "patch:/api/sites/{siteId}" body { "maintenanceMode": false }.',
|
|
271
272
|
});
|
|
272
273
|
}
|
|
273
274
|
// A MISTYPED URL ANSWERS IN GO, NOT IN THE SHOP'S VOICE.
|
package/dist/tools/api.js
CHANGED
|
@@ -72,7 +72,7 @@ export function unknownBodyKeys(opId, body) {
|
|
|
72
72
|
return undefined;
|
|
73
73
|
return {
|
|
74
74
|
keys,
|
|
75
|
-
note: `Not fields of ${shape.goType}: the platform ignores them silently. ` +
|
|
75
|
+
note: `Not fields of ${shape.goType === '(inline)' ? "the handler's body" : shape.goType}: the platform ignores them silently. ` +
|
|
76
76
|
`Its fields: ${shape.fields.map((f) => f.name).join(', ')}.`,
|
|
77
77
|
};
|
|
78
78
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sbuilder-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.85.0",
|
|
4
4
|
"description": "MCP server that designs and operates a Store Builder site — pages, data, theme and publish — through the platform's own API and live-edit protocol.",
|
|
5
5
|
"mcpName": "io.github.vuluu2k/sbuilder-mcp",
|
|
6
6
|
"type": "module",
|