sbuilder-mcp 0.31.0 → 0.32.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/dist/catalog/api.generated.js +2 -2
- package/dist/catalog/search.js +28 -0
- 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.32.0] - 2026-09-11
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- sb_api_find's call sheet for any `/apps` or `/builtin-apps` operation now explains how to place an installed app's block on a page: build `specials.appBlockRef` as `"<installId>/<blockKey>"` from a row of `GET /api/sites/{siteId}/apps/blocks` and add it with sb_add, which was previously reachable only in the platform's Go source.
|
|
13
|
+
- The same call sheet names the two silent traps around a placed block: never author `specials.appBlockId` or `appBlockHash` (the server's own composition stamps), and an edit made inside a composed block's subtree is stored nowhere.
|
|
14
|
+
- The call sheet also explains installing an app: a built-in app installs with `POST /api/sites/{siteId}/builtin-apps/{key}`, while a marketplace app requires a merchant to approve an OAuth consent screen and cannot be installed through this server.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- The `key` parameter on the built-in app install and list operations now documents all eight installable keys (mail, multilingual, agent, chat, booking, loyalty, payments, courses) instead of only the first two ever shipped.
|
|
18
|
+
|
|
9
19
|
## [0.31.0] - 2026-09-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.32.0] - 2026-09-11
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- Call sheet của sb_api_find cho mọi operation `/apps` hoặc `/builtin-apps` giờ giải thích cách đặt block của một app đã cài lên trang: dựng `specials.appBlockRef` dạng `"<installId>/<blockKey>"` từ một dòng của `GET /api/sites/{siteId}/apps/blocks` rồi thêm bằng sb_add — điều trước đây chỉ có thể biết được qua mã nguồn Go của nền tảng.
|
|
13
|
+
- Cùng call sheet đó nêu rõ hai cái bẫy âm thầm quanh một block đã đặt: không bao giờ tự viết `specials.appBlockId` hay `appBlockHash` (đây là các dấu server tự gắn khi compose), và một chỉnh sửa bên trong subtree đã compose sẽ không được lưu ở đâu cả.
|
|
14
|
+
- Call sheet cũng giải thích cách cài app: một app tích hợp sẵn cài bằng `POST /api/sites/{siteId}/builtin-apps/{key}`, còn một app từ marketplace cần merchant tự duyệt màn hình xác nhận OAuth và không thể cài qua server này.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- Tham số `key` trên các operation cài và liệt kê app tích hợp sẵn giờ ghi đủ tám key có thể cài (mail, multilingual, agent, chat, booking, loyalty, payments, courses) thay vì chỉ hai key đầu tiên từng có.
|
|
18
|
+
|
|
9
19
|
## [0.31.0] - 2026-09-11
|
|
10
20
|
|
|
11
21
|
### Added
|
|
@@ -3971,7 +3971,7 @@ export const API_OPERATIONS = [
|
|
|
3971
3971
|
"in": "path",
|
|
3972
3972
|
"required": true,
|
|
3973
3973
|
"type": "string",
|
|
3974
|
-
"description": "App key
|
|
3974
|
+
"description": "App key: mail | multilingual | agent | chat | booking | loyalty | payments | courses"
|
|
3975
3975
|
}
|
|
3976
3976
|
],
|
|
3977
3977
|
"bodyDescribed": false,
|
|
@@ -3999,7 +3999,7 @@ export const API_OPERATIONS = [
|
|
|
3999
3999
|
"in": "path",
|
|
4000
4000
|
"required": true,
|
|
4001
4001
|
"type": "string",
|
|
4002
|
-
"description": "App key
|
|
4002
|
+
"description": "App key: mail | multilingual | agent | chat | booking | loyalty | payments | courses"
|
|
4003
4003
|
}
|
|
4004
4004
|
],
|
|
4005
4005
|
"bodyDescribed": false,
|
package/dist/catalog/search.js
CHANGED
|
@@ -91,6 +91,34 @@ export function describeOperation(op) {
|
|
|
91
91
|
if (/\/translations(\/|$)/.test(op.path)) {
|
|
92
92
|
out.translation_fields = translationCallSheet();
|
|
93
93
|
}
|
|
94
|
+
// AN APP'S BLOCKS WERE REACHABLE AND UNUSABLE, because the one thing needed to
|
|
95
|
+
// place one is a string format that exists only in Go. `page/appblocks.go`
|
|
96
|
+
// spells it out — SpecAppBlockRef is "<installId>/<blockKey>" — and every
|
|
97
|
+
// field to build it comes back from `/apps/blocks` (`installId`, `key`). An
|
|
98
|
+
// agent had the list of blocks, the route that returns it, and no way to turn
|
|
99
|
+
// a row into a node.
|
|
100
|
+
//
|
|
101
|
+
// Attached to the call sheet for the same reason the translation table is:
|
|
102
|
+
// that is where the agent already is when it decides what to send. No new
|
|
103
|
+
// tool — placing one is `sb_add`, which already takes the specials it needs.
|
|
104
|
+
if (/\/(apps|builtin-apps)(\/|$)/.test(op.path)) {
|
|
105
|
+
out.app_blocks = {
|
|
106
|
+
place: 'A block from an installed app goes on a page as ONE node carrying ' +
|
|
107
|
+
'specials.appBlockRef = "<installId>/<blockKey>" — both fields come back from ' +
|
|
108
|
+
'GET /api/sites/{siteId}/apps/blocks. Add it with sb_add; the platform composes the ' +
|
|
109
|
+
"app's markup underneath on read.",
|
|
110
|
+
never: 'Never author specials.appBlockId or appBlockHash. Those are the stamps the SERVER ' +
|
|
111
|
+
'writes when it composes, and writing one makes the next save decompose your node over ' +
|
|
112
|
+
'the app instead.',
|
|
113
|
+
interior: 'An edit INSIDE a composed block is stored nowhere and reported nowhere — the save ' +
|
|
114
|
+
'reduces the subtree back to the reference. Configure the block through its own ' +
|
|
115
|
+
'props/slots, never by editing what it rendered.',
|
|
116
|
+
installing: 'A BUILT-IN app installs with POST /api/sites/{siteId}/builtin-apps/{key} and that key ' +
|
|
117
|
+
"parameter's description names every installable one. A MARKETPLACE app cannot be " +
|
|
118
|
+
'installed from here at all: it goes through an OAuth consent screen a person has to ' +
|
|
119
|
+
'approve, so ask the merchant to install it and then read /apps/blocks again.',
|
|
120
|
+
};
|
|
121
|
+
}
|
|
94
122
|
const shape = REQUEST_SHAPES[op.id];
|
|
95
123
|
if (shape) {
|
|
96
124
|
out.body_shape = shape;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sbuilder-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.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",
|