@caelo-cms/mcp-server 0.10.68 → 0.10.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +3 -2
- package/dist/export.js.map +1 -1
- package/package.json +1 -1
- package/power-catalogue.json +13 -12
package/dist/export.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CAC7C;AAMD,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA2BlF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAYxD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,4EAA4E;AAC5E,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2BtE"}
|
package/dist/export.js
CHANGED
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Surface honesty (issue #413): the context arrives ALREADY adapted to
|
|
15
15
|
* the Power-MCP surface — `mcp.get_context` composes the "power-mcp"
|
|
16
|
-
* prompt variant and
|
|
17
|
-
* skill bodies/descriptions
|
|
16
|
+
* prompt variant and appends a `[Not available on this surface — …]` note
|
|
17
|
+
* to skill bodies/descriptions that mention an excluded tool (#1044: a
|
|
18
|
+
* separate note, never inline after the name).
|
|
18
19
|
* The renderers write that content verbatim; do not add a second
|
|
19
20
|
* filtering pass here, or the two would drift.
|
|
20
21
|
*
|
package/dist/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caelo-cms/mcp-server",
|
|
3
3
|
"mcpName": "io.github.caelo-cms/caelo",
|
|
4
|
-
"version": "0.10.
|
|
4
|
+
"version": "0.10.70",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MPL-2.0",
|
|
7
7
|
"description": "MCP servers for Caelo CMS: `caelo_chat` (talk to Caelo's own AI) and the admin-scoped Power-MCP (the full chat-runner tool catalogue, driven by your own agent). Lets Claude Code (or any MCP-aware client) drive a Caelo install from outside the browser.",
|
package/power-catalogue.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.10.
|
|
2
|
+
"version": "0.10.70",
|
|
3
3
|
"tools": [
|
|
4
4
|
{
|
|
5
5
|
"name": "edit_module",
|
|
@@ -900,7 +900,7 @@
|
|
|
900
900
|
},
|
|
901
901
|
{
|
|
902
902
|
"name": "list_content_instances",
|
|
903
|
-
"description": "List content_instances — the values filling module placeholders (TOON rows: id, module, slug, displayName, placements). `placementCount` is the blast radius: >1 means SHARED, editing propagates to every bound page. Check BEFORE set_content_instance_values. Narrow by `moduleId` / `slug` / `pageId` (instances used on one page), plus the standard list params: `filter`, `limit`/`offset`, `full: true`.",
|
|
903
|
+
"description": "List content_instances — the values filling module placeholders (TOON rows: id, module, slug, displayName, placements, parents). `placementCount` is the blast radius: >1 means SHARED, editing propagates to every bound page. Check BEFORE set_content_instance_values. `parents` counts instances that show this one inside a module / module-list field; an ORPHAN (safe to delete) has placements=0 AND parents=0. Both counts are as this chat's draft sees them. Narrow by `moduleId` / `slug` / `pageId` (instances used on one page), plus the standard list params: `filter`, `limit`/`offset`, `full: true`.",
|
|
904
904
|
"inputSchema": {
|
|
905
905
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
906
906
|
"type": "object",
|
|
@@ -947,7 +947,7 @@
|
|
|
947
947
|
},
|
|
948
948
|
{
|
|
949
949
|
"name": "get_content_instance",
|
|
950
|
-
"description": "Fetch one content_instance by id. Returns the values
|
|
950
|
+
"description": "Fetch one content_instance by id. Returns the values, the placements (page path + block + position + sync_mode) that bind to it, and the parent instances that show it inside a module / module-list field — all as this chat's draft sees them. Use this to confirm blast radius before set_content_instance_values, and before deleting (orphan = no placements AND no parents).",
|
|
951
951
|
"inputSchema": {
|
|
952
952
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
953
953
|
"type": "object",
|
|
@@ -1065,7 +1065,7 @@
|
|
|
1065
1065
|
},
|
|
1066
1066
|
{
|
|
1067
1067
|
"name": "delete_content_instance",
|
|
1068
|
-
"description": "Soft-delete a content_instance. Only allowed
|
|
1068
|
+
"description": "Soft-delete a content_instance. Only allowed for an orphan: ZERO placements bind to it AND no other instance shows it inside a module / module-list field. When placements exist, the op returns an error listing each placement (page path, pageId, blockName, position): detach each one via fork_placement_content with those values (the page keeps its content as a private copy), then retry. In a chat this all happens on the chat's draft; the live site changes when the chat is staged. When a parent instance still shows it, the op names the parents: remove the ref from each parent's field via set_content_instance_values first. Use list_content_instances to find orphans (placements=0 and parents=0) and prune them. Prefer `delete_content_instances` over multiple `delete_content_instance` calls when deleting more than one.",
|
|
1069
1069
|
"inputSchema": {
|
|
1070
1070
|
"type": "object",
|
|
1071
1071
|
"additionalProperties": false,
|
|
@@ -1142,7 +1142,7 @@
|
|
|
1142
1142
|
},
|
|
1143
1143
|
{
|
|
1144
1144
|
"name": "delete_content_instances",
|
|
1145
|
-
"description": "Soft-delete SEVERAL content_instances in ONE transaction — prefer this over multiple `delete_content_instance` calls whenever you prune more than one (§11 bulk-first). Only ORPHAN instances (
|
|
1145
|
+
"description": "Soft-delete SEVERAL content_instances in ONE transaction — prefer this over multiple `delete_content_instance` calls whenever you prune more than one (§11 bulk-first). Only ORPHAN instances (placements=0 and parents=0) can be deleted: if ANY item still has placements or a parent instance the op refuses and the WHOLE batch rolls back (nothing deleted) — detach those placements via `fork_placement_content` first. Use `list_content_instances` to find orphans (placements=0, parents=0). Each item is `{id}`.",
|
|
1146
1146
|
"inputSchema": {
|
|
1147
1147
|
"type": "object",
|
|
1148
1148
|
"additionalProperties": false,
|
|
@@ -1242,7 +1242,7 @@
|
|
|
1242
1242
|
},
|
|
1243
1243
|
{
|
|
1244
1244
|
"name": "list_layouts",
|
|
1245
|
-
"description": "List every layout with UUID, slug, display name, and blocks INCLUDING the chrome modules placed in each (`header(nav-menu-main)|footer(site-footer)`). One read answers \"is module X already on the layout?\". Standard list params: `filter`, `limit`/`offset`, `full: true`. Use when you need a layout UUID
|
|
1245
|
+
"description": "List every layout with UUID, slug, display name, and its LAYOUT blocks INCLUDING the chrome modules placed in each (`header(nav-menu-main)|content|footer(site-footer)`). One read answers \"is module X already on the layout?\". Layout blocks are site chrome: place a header / footer / nav into them ONCE for every page with add_module target='layout'. They are NOT build_page blockNames — a page places into its TEMPLATE's blocks (list_templates `pageBlocks`, usually just `content`); the layout's `content` block is where the template renders. Standard list params: `filter`, `limit`/`offset`, `full: true`. Use when you need a layout UUID or slug (e.g. right after an Owner approved a layout-create proposal). DO NOT ask the operator to paste a UUID.",
|
|
1246
1246
|
"inputSchema": {
|
|
1247
1247
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1248
1248
|
"type": "object",
|
|
@@ -1335,7 +1335,7 @@
|
|
|
1335
1335
|
},
|
|
1336
1336
|
{
|
|
1337
1337
|
"name": "list_templates",
|
|
1338
|
-
"description": "List every template with UUID, slug, display name,
|
|
1338
|
+
"description": "List every template with UUID, slug, display name, bound layout UUID, and `pageBlocks` (TOON rows). `pageBlocks` are the blocks a page on that template places modules into — the ONLY valid `blockName` values for build_page and add_module target='page' (usually just `content`). Header / footer / nav are NOT page blocks: they are site chrome on the template's LAYOUT (list_layouts), placed once with add_module target='layout'. Standard list params: `filter`, `limit`/`offset`, `full: true`. Use when you need a template UUID or its blocks before building a page. DO NOT ask the operator to paste a UUID.",
|
|
1339
1339
|
"inputSchema": {
|
|
1340
1340
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1341
1341
|
"type": "object",
|
|
@@ -2191,7 +2191,7 @@
|
|
|
2191
2191
|
},
|
|
2192
2192
|
{
|
|
2193
2193
|
"name": "bug_report",
|
|
2194
|
-
"description": "File a bug report against Caelo ITSELF when a tool or surface behaves contrary to its documented contract — e.g. a tool result contradicts persisted state, a screenshot/render ignores a parameter, an error fires on input the description says is valid. This is for defects in the SYSTEM, not for your own mistakes (wrong arguments, misread state) and not for content/design issues on the site being built. Report ONCE per distinct defect (do not re-file the same bug in one session), then CONTINUE the task via a workaround when one exists. Only when the bug genuinely blocks the task: file with blockedTask=true, tell the operator in one sentence what is blocked, and stop that line of work instead of retrying into the same wall. `whatHappened` = what you observed (include the exact tool + arguments); `expected` = what the tool's contract promised; `evidence` = the result excerpt that proves it. The result says where the report went (stored on this site only, or sent to the Caelo team) — tell the operator exactly that and never claim the Caelo team was notified unless the result says it was sent.",
|
|
2194
|
+
"description": "File a bug report against Caelo ITSELF when a tool or surface behaves contrary to its documented contract — e.g. a tool result contradicts persisted state, a screenshot/render ignores a parameter, an error fires on input the description says is valid. This is for defects in the SYSTEM, not for your own mistakes (wrong arguments, misread state) and not for content/design issues on the site being built. Report only after a concrete failure you observed — a tool returned something wrong or broke the task. Never call it as a stand-in for another tool: when the tool you need is not in your tool list, search for it instead. Report ONCE per distinct defect (do not re-file the same bug in one session), then CONTINUE the task via a workaround when one exists. Only when the bug genuinely blocks the task: file with blockedTask=true, tell the operator in one sentence what is blocked, and stop that line of work instead of retrying into the same wall. `whatHappened` = what you observed (include the exact tool + arguments); `expected` = what the tool's contract promised; `evidence` = the result excerpt that proves it. The result says where the report went (stored on this site only, or sent to the Caelo team) — tell the operator exactly that and never claim the Caelo team was notified unless the result says it was sent.",
|
|
2195
2195
|
"inputSchema": {
|
|
2196
2196
|
"type": "object",
|
|
2197
2197
|
"additionalProperties": false,
|
|
@@ -2203,18 +2203,19 @@
|
|
|
2203
2203
|
"properties": {
|
|
2204
2204
|
"title": {
|
|
2205
2205
|
"type": "string",
|
|
2206
|
-
"minLength":
|
|
2207
|
-
"maxLength": 200
|
|
2206
|
+
"minLength": 10,
|
|
2207
|
+
"maxLength": 200,
|
|
2208
|
+
"description": "The defect in a few words, e.g. \"screenshot_page ignores selector\"."
|
|
2208
2209
|
},
|
|
2209
2210
|
"whatHappened": {
|
|
2210
2211
|
"type": "string",
|
|
2211
|
-
"minLength":
|
|
2212
|
+
"minLength": 10,
|
|
2212
2213
|
"maxLength": 4000,
|
|
2213
2214
|
"description": "What you observed, incl. the exact tool + arguments used."
|
|
2214
2215
|
},
|
|
2215
2216
|
"expected": {
|
|
2216
2217
|
"type": "string",
|
|
2217
|
-
"minLength":
|
|
2218
|
+
"minLength": 10,
|
|
2218
2219
|
"maxLength": 4000,
|
|
2219
2220
|
"description": "What the tool's description / the system's contract promised instead."
|
|
2220
2221
|
},
|