@kywi-software/mcp 0.14.0 → 0.15.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.
Files changed (40) hide show
  1. package/AGENT-PATTERNS.md +153 -17
  2. package/dist/site/tools/components.d.ts.map +1 -1
  3. package/dist/site/tools/components.js +5 -3
  4. package/dist/site/tools/components.js.map +1 -1
  5. package/dist/site/tools/layout.d.ts.map +1 -1
  6. package/dist/site/tools/layout.js +33 -3
  7. package/dist/site/tools/layout.js.map +1 -1
  8. package/dist/site/tools/menus.d.ts +13 -0
  9. package/dist/site/tools/menus.d.ts.map +1 -1
  10. package/dist/site/tools/menus.js +18 -2
  11. package/dist/site/tools/menus.js.map +1 -1
  12. package/package.json +4 -4
  13. package/dist/__tests__/auto-detect.test.d.ts +0 -2
  14. package/dist/__tests__/auto-detect.test.d.ts.map +0 -1
  15. package/dist/__tests__/auto-detect.test.js +0 -134
  16. package/dist/__tests__/auto-detect.test.js.map +0 -1
  17. package/dist/__tests__/config.test.d.ts +0 -2
  18. package/dist/__tests__/config.test.d.ts.map +0 -1
  19. package/dist/__tests__/config.test.js +0 -72
  20. package/dist/__tests__/config.test.js.map +0 -1
  21. package/dist/__tests__/developer-mutation.test.d.ts +0 -2
  22. package/dist/__tests__/developer-mutation.test.d.ts.map +0 -1
  23. package/dist/__tests__/developer-mutation.test.js +0 -511
  24. package/dist/__tests__/developer-mutation.test.js.map +0 -1
  25. package/dist/__tests__/developer-read-only.test.d.ts +0 -2
  26. package/dist/__tests__/developer-read-only.test.d.ts.map +0 -1
  27. package/dist/__tests__/developer-read-only.test.js +0 -192
  28. package/dist/__tests__/developer-read-only.test.js.map +0 -1
  29. package/dist/__tests__/site-content-tools.test.d.ts +0 -2
  30. package/dist/__tests__/site-content-tools.test.d.ts.map +0 -1
  31. package/dist/__tests__/site-content-tools.test.js +0 -446
  32. package/dist/__tests__/site-content-tools.test.js.map +0 -1
  33. package/dist/__tests__/site-layout-tools.test.d.ts +0 -2
  34. package/dist/__tests__/site-layout-tools.test.d.ts.map +0 -1
  35. package/dist/__tests__/site-layout-tools.test.js +0 -316
  36. package/dist/__tests__/site-layout-tools.test.js.map +0 -1
  37. package/dist/__tests__/site-other-tools.test.d.ts +0 -2
  38. package/dist/__tests__/site-other-tools.test.d.ts.map +0 -1
  39. package/dist/__tests__/site-other-tools.test.js +0 -318
  40. package/dist/__tests__/site-other-tools.test.js.map +0 -1
package/AGENT-PATTERNS.md CHANGED
@@ -185,16 +185,36 @@ every request — so writing a new definition changes every page that uses it
185
185
  immediately, published pages included, with nothing to re-publish. That is the
186
186
  whole point, and it is also the thing to be careful with.
187
187
 
188
- **What can be one.** A single module, a whole section (band), or a personalized /
189
- A-B tested band with its variants intact the three `type` values are `module`,
190
- `section` and `variantContainer`. A band's variants travel with it; which arm a
191
- visitor sees is still decided per request, per placement, so the same personalized
192
- component can sit on five pages and target correctly on each.
188
+ **What can be one.** A single module, a whole section (band), a personalized /
189
+ A-B tested band with its variants intact, or a personalized / A-B tested **module**
190
+ the four `type` values are `module`, `section`, `variantContainer` (section
191
+ level) and `moduleVariantContainer` (column level). Variants travel with the
192
+ component in both container kinds; which arm a visitor sees is still decided per
193
+ request, per placement, so the same personalized component can sit on five pages
194
+ and target correctly on each.
195
+
196
+ **Which container kind?** `variantContainer` is a whole band that varies —
197
+ different sections, different layouts per audience. `moduleVariantContainer` is
198
+ ONE module in a column that varies while everything around it stays put: a hero
199
+ headline that changes for paid traffic, a CTA button that is A/B tested inside an
200
+ otherwise fixed section. Reach for the module-level one when only the content of
201
+ a single block differs; personalizing the whole band to change one headline makes
202
+ every other module in it a copy the owner has to maintain twice.
203
+
204
+ **Arms are never independently linkable.** A variant arm's module cannot be saved
205
+ as a component of its own, and cannot be pointed at one. An arm is a challenger
206
+ the owner edits freely; wiring it to shared content would mean editing one page's
207
+ variant rewrote every other page's, which is the opposite of what a variant is
208
+ for. Save the whole container instead — that is what the fourth kind is.
193
209
 
194
210
  **In the editors** (front-of-site overlay or the admin Layout tab): select the
195
- module, section or band → **Save as component** → name it. The selection is
196
- replaced in place by a linked instance, marked with an outline and a pill naming
197
- the component. Place it again from the section picker's *Components* rows.
211
+ module, section, band or personalized module → **Save as component** → name it.
212
+ The selection is replaced in place by a linked instance, marked with an outline
213
+ and a pill naming the component. Place a section or band again from the section
214
+ picker's *Components* rows; place a module or a personalized module by dropping
215
+ the palette's **Component** block into a column and choosing it in the props
216
+ rail — one list, both kinds, because the owner's question there is "which saved
217
+ thing goes here".
198
218
 
199
219
  **Editing a linked instance ends in a question.** There are no per-prop overrides
200
220
  in v1: an instance renders its component exactly. So when you edit one and save,
@@ -224,8 +244,10 @@ per-site authorization applies.
224
244
 
225
245
  1. `POST /api/v1/components` — `{ name, type, definition, moduleType?, description? }`.
226
246
  The `definition` is the node itself: a `section` component stores the whole
227
- `LayoutSection`, a `variantContainer` the whole container, a `module` component
228
- stores `{ props, style }` and names its `moduleType`.
247
+ `LayoutSection`, a `variantContainer` the whole section-level container, a
248
+ `moduleVariantContainer` the whole column-level one (its `defaultModule` and
249
+ `variants`), and a `module` component stores `{ props, style }` and names its
250
+ `moduleType`.
229
251
  2. **Place it** by writing a layout that carries the link. There is no separate
230
252
  "insert" endpoint: `PUT /api/v1/content/:type/:id/layout` with the definition's
231
253
  own shape plus `componentId` on the node, giving the placement a fresh `id` of
@@ -247,8 +269,26 @@ per-site authorization applies.
247
269
  definition saved from an editor carries no `winnerId` at all; a definition
248
270
  POSTed straight over the API can, so read what you are placing. A
249
271
  `personalization` container has no binding and needs none.
272
+
273
+ **The same rule, word for word, for `moduleVariantContainer`.** It is a
274
+ placement root exactly as its section-level sibling is: the placement's
275
+ `experimentId` / `winnerId` win over the definition's, so an `ab_test`
276
+ placement you write over the API must carry a fresh `experimentId` and no
277
+ `winnerId`. The node goes in a COLUMN (`section.columns[].nodes[]`), not in a
278
+ region, and it carries its own `id` plus `componentId`, with the definition's
279
+ `defaultModule` / `variants` copied inline as the fallback copy.
280
+
281
+ **Do not bury an `ab_test` module container inside a `section` component.**
282
+ There it is not a placement root, nothing re-binds it per placement, and every
283
+ page placing that section reports into one shared run with one `winnerId`
284
+ deciding them all. Both editors refuse it and so does `POST /components`. A
285
+ `personalization` module container inside a section component is fine —
286
+ audiences are content and travel with the component.
250
287
  3. `GET /api/v1/components/:id/usage` — where it is placed (`instances`, `pages`,
251
- the page ids and node ids, and trashed pages counted separately). This is the
288
+ the page ids and node ids, with trashed pages and **saved layouts** each
289
+ counted separately: `trashedInstances`/`trashedPages` and
290
+ `blueprints`/`blueprintInstances`/`blueprintItems`). `instances`/`pages` mean
291
+ live pages only, so the three partitions never double-count. This is the
252
292
  blast radius; read it *before* changing a definition.
253
293
  4. `PUT /api/v1/components/:id` — a body with `definition` **is the propagation
254
294
  write**: every linked instance renders the new definition on its next request.
@@ -257,15 +297,20 @@ per-site authorization applies.
257
297
  5. `POST /api/v1/components/:id/detach-all` — materialize the definition into every
258
298
  page that links it and drop the links; each page keeps rendering identically.
259
299
  6. `DELETE /api/v1/components/:id` — refuses (409) while instances exist; add
260
- `?detachAll=1` to detach-then-delete. `GET /api/v1/components?withUsage=1` folds
300
+ `?detachAll=1` to detach-then-delete. "Instances" includes placements held by
301
+ trashed pages **and by saved layouts** (kywi-cms#156), so a component nothing
302
+ live uses can still refuse to delete — check `blueprints` in the usage payload
303
+ before assuming a one-step delete. `GET /api/v1/components?withUsage=1` folds
261
304
  the counts into a list, in one read.
262
305
 
263
- **Two refusals to design around.** A component definition may not link to another
306
+ **Three refusals to design around.** A component definition may not link to another
264
307
  component (one level only, deliberately: a nested link is invisible to usage counts
265
308
  and the delete gate, so the editors *materialize* an inner component when you save
266
309
  a section that contains one — the inner instance stops following its own source, and
267
310
  the dialog says so). And a stored layout that a live layout could not hold is
268
311
  rejected at the door, because detaching would copy it into every page that links it.
312
+ And a `section` or `variantContainer` definition may not contain an **A/B tested**
313
+ module container, for the shared-run reason above.
269
314
 
270
315
  **Component writes bypass approvals in v1.** They are not routed through
271
316
  changesets or the review workflow — a `PUT` with a definition is live on publish
@@ -360,11 +405,66 @@ authored elsewhere in the admin).
360
405
  | `personalizationBadge` | Optional inline status pill that opens the global transparency panel — not needed on ordinary pages (§8) |
361
406
  | `socialShare` | Share links for a URL/title across networks |
362
407
  | `map` | Embedded map at a lat/lng or address |
363
- | `cookieConsent` | Consent banner with message + privacy-policy link |
408
+ | `cookieConsent` | Consent banner with message + privacy-policy link. Accept All / Reject All / Customize write the `kywi_consent` cookie, and the engine's optional cookie writes are gated on it (see below) |
364
409
  | `component` | Places a saved reusable component by slug (§4) |
365
410
  | `form` | Renders a form built in the Forms admin (§6) |
366
411
  | `formEmbed` | Embeds a form by slug — lighter-weight placement of the same |
367
412
 
413
+ #### Cookie consent is enforced, not decorative
414
+
415
+ `cookieConsent` is wired to the engine. Its buttons write `kywi_consent`, and
416
+ `@kywi-software/core`'s `audiences/consent.ts` holds the one map from cookie name
417
+ to category that every optional write is gated on:
418
+
419
+ | Cookie | Category | Gated? |
420
+ |---|---|---|
421
+ | `kywi_visitor`, `kywi_signals`, `kywi_utm`, `kywi_audience`, `kywi_known` | `personalization` | yes |
422
+ | `kywi_consent`, `kywi_optout`, `kywi_preview_init` | `essential` | no — necessary cookies are never gated |
423
+
424
+ A gated cookie is neither **written** nor **read** without consent: a visitor who
425
+ accepted last month and rejects today has those cookies deleted, and any that
426
+ survive (`kywi_signals` is HttpOnly) are ignored on the way in. Rejecting is a
427
+ revocation, not just a pause.
428
+
429
+ One exemption: an audience the visitor picks **by hand** in the transparency
430
+ panel is stored as an `essential` preference, on the same argument as
431
+ `kywi_optout` — a control they operated deliberately has to be honoured, or the
432
+ panel is lying about what its buttons do. Only the runtime's automatic
433
+ "remember what I resolved" write is gated. The cookie records which it was
434
+ (`switcher:<id>` vs a bare id), so the read side and the revocation sweep apply
435
+ the same rule: rejecting personalization deletes an automatic pin but keeps one
436
+ the visitor chose.
437
+
438
+ **Undecided means not consented.** Until a visitor answers the banner, none of
439
+ the personalization cookies are written: pages still render, audiences still
440
+ resolve for the request in hand, experiments still return a variant — nothing is
441
+ persisted, so the visitor keeps seeing default content instead of being tracked.
442
+ A site that wants personalization to persist must place this module (or write
443
+ `kywi_consent` some other way). Adding a new cookie without classifying it in
444
+ that map fails closed, and a core test catches the omission.
445
+
446
+ **The escape hatch.** `theme.personalization.requireConsent` in `kywi.config.ts`
447
+ defaults to `true` — the behaviour above. Set it to `false` only when this site
448
+ collects consent with EXTERNAL tooling (a third-party CMP) that suppresses
449
+ cookies its own way; the gate then treats every category as allowed and the site
450
+ takes responsibility for compliance. Because Next.js edge middleware cannot read
451
+ `kywi.config.ts`, mirror the same value as `KYWI_REQUIRE_CONSENT=false` in the
452
+ environment. **Set both or neither** — `createKywiApiHandler` throws at startup
453
+ when they disagree, so a mismatch fails the deploy rather than silently leaving
454
+ the middleware and the API at odds about whether a visitor may be tracked. On a
455
+ site with no other consent mechanism, `false` is simply the non-compliant
456
+ setting.
457
+
458
+ The banner ships **hidden** (`kywi-consent-pending` on the wrapper) and reveals
459
+ itself after mount only for a visitor with no decision on file — a theme must not
460
+ force it visible, or every returning visitor gets a flash of a consent ask they
461
+ already answered.
462
+
463
+ When consent is required and no page places the module, the API logs a one-time
464
+ warning on its first request: nobody can grant consent, so every personalization
465
+ cookie stays suppressed and audiences, A/B bucketing and UTM attribution serve
466
+ default content to everyone.
467
+
368
468
  ### Which do I reach for? (in order)
369
469
 
370
470
  1. **A built-in already does it** → use it. Read the tables before inventing
@@ -409,9 +509,12 @@ module's *first* prop inline-editable on the page when its type is `text`,
409
509
  directly on the live page, and `props: { variant, headline, … }` cannot.
410
510
 
411
511
  Also: create **saved layouts** (Layouts admin) as page templates — "Landing
412
- page", "Case study" — so new pages start from a consistent skeleton. Hand-written
413
- JSX stays fine for genuinely fixed chrome (a bespoke 404, legal boilerplate)
414
- but if marketing will ever want to swap a headline, it's a layout page.
512
+ page", "Case study" — so new pages start from a consistent skeleton. A saved
513
+ layout may link reusable components like any page: the link is indexed, counted
514
+ in the component's usage under "saved layouts", and carried into every page
515
+ stamped out of that layout. Hand-written JSX stays fine for genuinely fixed
516
+ chrome (a bespoke 404, legal boilerplate) — but if marketing will ever want to
517
+ swap a headline, it's a layout page.
415
518
 
416
519
  ### Navigation: menus vs. the site tree
417
520
 
@@ -582,6 +685,39 @@ Four traps, each of which fails silently:
582
685
  Standing rule: **the default arm must be complete on its own.** It is what
583
686
  search engines, answer engines, and every opted-out visitor receive.
584
687
 
688
+ **What actually reaches the visitor (kywi-cms#167).** A published page ships
689
+ only the arm that visitor is served — the other arms of every section- and
690
+ module-level container are stripped on the server, before the document crosses
691
+ into the client renderer (`pruneLayoutToServedArms`, run last in the public
692
+ render path). So view-source shows one arm, not all of them, and the same is
693
+ true of page variants (`applyPageVariant` has always dropped those). Two things
694
+ follow. First, arm copy is not shared with the people it is not for, so an
695
+ unlaunched offer or a segment-specific price is not sitting in the HTML of
696
+ everyone else's page. Second, **the audience RULES still are** — the client
697
+ runtime is handed the active audiences so it can re-evaluate on client signals,
698
+ so how a visitor is classified remains public even though the content each class
699
+ gets is not. Author rules accordingly: they are readable.
700
+
701
+ **One exception, and it is a live one: the retired `variantContainer` MODULE.**
702
+ Pruning covers the two container NODES. It cannot cover the legacy module,
703
+ because that module's arms are not arms of a container at all — they are HTML
704
+ strings in its own props, and it renders every one of them into the DOM by
705
+ design, hiding the losing ones with `display: none` for the client runtime to
706
+ reveal. So a page that still carries one keeps publishing all of its arms in
707
+ plain markup, where `view-source` and "inspect element" both find them
708
+ immediately. Nothing about #167 changed that, and no amount of server-side
709
+ resolution can: the shape is client-swap by construction. If a page you are
710
+ working on has one, converting it is the fix — `kywi upgrade:variant-containers`
711
+ (landing separately, for kywi-cms#172) rewrites existing placements into the
712
+ `moduleVariantContainer` node, which is server-resolved and therefore pruned.
713
+ Until it is converted, treat that module's arms as public, whatever the audience
714
+ binding says.
715
+
716
+ The editor is the deliberate exception — the front-edit overlay and the admin
717
+ layout editor are handed the STORED document, every arm intact, because that is
718
+ what is being edited. If you are writing a host page, keep the two apart: prune
719
+ what you pass to `<KywiLayout>`, and pass the editor the layout you loaded.
720
+
585
721
  ### Transparency: automatic, not something you place
586
722
 
587
723
  Once the client runtime is loaded, every personalized (or opted-out-with-a-
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/site/tools/components.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAChC;;;;;;GAQF;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAsBjF"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/site/tools/components.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IACJ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAChC;;;;;;GAQF;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CA0BjF"}
@@ -32,7 +32,8 @@ export async function handleListComponents(sdk, args) {
32
32
  // ─── Registration ───────────────────────────────────────────────────────────
33
33
  export function registerComponentTools(server, sdk) {
34
34
  server.registerTool('list_components', {
35
- description: 'List the site\'s reusable components (saved modules, sections and personalized/A-B bands). ' +
35
+ description: 'List the site\'s reusable components (saved modules, sections, personalized/A-B bands and '
36
+ + 'personalized/A-B MODULES). ' +
36
37
  'Each row carries its `definition` — the stored node. To PLACE one, write a layout node ' +
37
38
  'shaped like that definition with a fresh `id` of its own plus `componentId: <the id>`; the ' +
38
39
  'inline content is the fallback copy, so keep the definition\'s content there. Every ' +
@@ -42,9 +43,10 @@ export function registerComponentTools(server, sdk) {
42
43
  inputSchema: {
43
44
  siteId: z.string().optional().describe('Site ID (uses the default site if omitted)'),
44
45
  type: z
45
- .enum(['module', 'section', 'variantContainer'])
46
+ .enum(['module', 'section', 'variantContainer', 'moduleVariantContainer'])
46
47
  .optional()
47
- .describe('Filter by granularity: a single module, a whole section, or a personalized/A-B band'),
48
+ .describe('Filter by granularity: a single module, a whole section, a personalized/A-B band ' +
49
+ '(section-level), or a personalized/A-B module (column-level)'),
48
50
  withUsage: z
49
51
  .boolean()
50
52
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/site/tools/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAiB,EACjB,IAIC;IAED,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAA;IACF,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,GAAiB;IACzE,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE;QACrC,WAAW,EACT,6FAA6F;YAC7F,yFAAyF;YACzF,6FAA6F;YAC7F,sFAAsF;YACtF,yFAAyF;YACzF,oFAAoF;YACpF,6EAA6E;QAC/E,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACpF,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;iBAC/C,QAAQ,EAAE;iBACV,QAAQ,CAAC,qFAAqF,CAAC;YAClG,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,8EAA8E,CAAC;SAC5F;KACF,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,CAAC"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/site/tools/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAiB,EACjB,IAIC;IAED,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAA;IACF,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,+EAA+E;AAE/E,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,GAAiB;IACzE,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE;QACrC,WAAW,EACT,4FAA4F;cAC1F,6BAA6B;YAC/B,yFAAyF;YACzF,6FAA6F;YAC7F,sFAAsF;YACtF,yFAAyF;YACzF,oFAAoF;YACpF,6EAA6E;QAC/E,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACpF,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,wBAAwB,CAAC,CAAC;iBACzE,QAAQ,EAAE;iBACV,QAAQ,CACP,mFAAmF;gBACnF,8DAA8D,CAC/D;YACH,SAAS,EAAE,CAAC;iBACT,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,8EAA8E,CAAC;SAC5F;KACF,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/site/tools/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/site/tools/layout.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,33 @@ function findColumn(section, colId) {
13
13
  function findModule(column, instanceId) {
14
14
  return column.nodes.find((n) => n.type !== 'moduleVariantContainer' && n.instanceId === instanceId);
15
15
  }
16
+ /**
17
+ * Is `instanceId` actually inside a `moduleVariantContainer` in this column
18
+ * (kywi-cms#169)? `findModule` deliberately excludes container arms — a
19
+ * personalized/A-B'd module's arm is not addressable by `update_module_props`
20
+ * / `remove_module`, which only ever wrote a plain module in place — so a
21
+ * caller that has never seen `get_layout`'s tree would get a bare "not found"
22
+ * for an id it can plainly see there, and keep retrying with no way to tell a
23
+ * typo apart from a module it simply cannot reach this way. Mirrors
24
+ * `describeIneligibility`'s pointer for `personalize_module`.
25
+ */
26
+ function describeModuleContainerHit(column, instanceId) {
27
+ for (const node of column.nodes) {
28
+ if (node.type !== 'moduleVariantContainer')
29
+ continue;
30
+ const mvc = node;
31
+ if (mvc.defaultModule.instanceId === instanceId) {
32
+ return `Module instance '${instanceId}' is the Default arm of moduleVariantContainer '${mvc.id}'. ` +
33
+ 'This tool cannot reach into a container\'s arms — read the layout with get_layout and rewrite the container with update_layout instead.';
34
+ }
35
+ const arm = mvc.variants.find((v) => v.module.instanceId === instanceId);
36
+ if (arm) {
37
+ return `Module instance '${instanceId}' is variant '${arm.id}' of moduleVariantContainer '${mvc.id}'. ` +
38
+ 'This tool cannot reach into a container\'s arms — read the layout with get_layout and rewrite the container with update_layout instead.';
39
+ }
40
+ }
41
+ return null;
42
+ }
16
43
  function parseLayout(content) {
17
44
  // Core 0.6.1 stores the layout as a `layout` jsonb object. Older content used a
18
45
  // stringified `layoutJson`; keep the fallback so mixed data still reads.
@@ -81,7 +108,8 @@ export async function handleRemoveModule(sdk, args) {
81
108
  const before = column.nodes.length;
82
109
  column.nodes = column.nodes.filter((n) => n.type === 'moduleVariantContainer' || n.instanceId !== args.instanceId);
83
110
  if (column.nodes.length === before) {
84
- return errorResult(`Module '${args.instanceId}' not found in column '${args.colId}'`);
111
+ const why = describeModuleContainerHit(column, args.instanceId);
112
+ return errorResult(why ?? `Module '${args.instanceId}' not found in column '${args.colId}'`);
85
113
  }
86
114
  const updated = await sdk.content.update(args.type, args.id, {
87
115
  layout,
@@ -100,8 +128,10 @@ export async function handleUpdateModuleProps(sdk, args) {
100
128
  if (!column)
101
129
  return errorResult(`Column '${args.colId}' not found in row '${args.rowId}'`);
102
130
  const mod = findModule(column, args.instanceId);
103
- if (!mod)
104
- return errorResult(`Module '${args.instanceId}' not found in column '${args.colId}'`);
131
+ if (!mod) {
132
+ const why = describeModuleContainerHit(column, args.instanceId);
133
+ return errorResult(why ?? `Module '${args.instanceId}' not found in column '${args.colId}'`);
134
+ }
105
135
  mod.props = { ...mod.props, ...args.props };
106
136
  const updated = await sdk.content.update(args.type, args.id, {
107
137
  layout,
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/site/tools/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/site/tools/layout.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,17 @@ import type { KywiSdkScope } from '@kywi-software/sdk';
6
6
  * never by raw content id.
7
7
  */
8
8
  export interface MenuItemInputArg {
9
+ /**
10
+ * Existing row id from `get_menu`. Kept across the replace instead of being
11
+ * re-minted, so a re-run of the same tree leaves the row identities alone
12
+ * (kywi-cms#116). Unlike `contentId` this is not a stability trap — it is the
13
+ * menu item's OWN id, and the API rejects one that is not already this
14
+ * menu's.
15
+ */
16
+ id?: string | undefined;
9
17
  label: string;
18
+ /** `'label'` is a heading: no target, children kept (kywi-cms#116). */
19
+ kind?: 'link' | 'label' | undefined;
10
20
  contentSlug?: string | undefined;
11
21
  externalUrl?: string | undefined;
12
22
  description?: string | undefined;
@@ -18,6 +28,9 @@ export interface MenuItemInputArg {
18
28
  * contentSlug / externalUrl, or null when the whole tree is valid. The API
19
29
  * enforces this too; failing here names the offending item so an agent can fix
20
30
  * it without decoding a 400.
31
+ *
32
+ * A `kind: 'label'` item inverts the rule: a heading must set NEITHER
33
+ * (kywi-cms#116).
21
34
  */
22
35
  export declare function findLinkTargetError(items: MenuItemInputArg[], ancestors?: string[]): string | null;
23
36
  export declare function handleListMenus(sdk: KywiSdkScope, args: {
@@ -1 +1 @@
1
- {"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../../src/site/tools/menus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAA;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,gBAAgB,EAAE,EACzB,SAAS,GAAE,MAAM,EAAO,GACvB,MAAM,GAAG,IAAI,CAiBf;AAID,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;GAItC;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;;;;;;;GAOpD;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE;;;;;;;;;;;;GAY7F;AAaD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAyB5E"}
1
+ {"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../../src/site/tools/menus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAA;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,gBAAgB,EAAE,EACzB,SAAS,GAAE,MAAM,EAAO,GACvB,MAAM,GAAG,IAAI,CA2Bf;AAID,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;GAItC;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;;;;;;;GAOpD;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAAE;;;;;;;;;;;;GAY7F;AAeD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAyB5E"}
@@ -5,17 +5,31 @@ import { textResult, errorResult } from '../../shared.js';
5
5
  * contentSlug / externalUrl, or null when the whole tree is valid. The API
6
6
  * enforces this too; failing here names the offending item so an agent can fix
7
7
  * it without decoding a 400.
8
+ *
9
+ * A `kind: 'label'` item inverts the rule: a heading must set NEITHER
10
+ * (kywi-cms#116).
8
11
  */
9
12
  export function findLinkTargetError(items, ancestors = []) {
10
13
  for (const item of items) {
11
14
  const path = [...ancestors, item.label].join(' > ');
12
15
  const hasSlug = item.contentSlug !== undefined && item.contentSlug !== '';
13
16
  const hasUrl = item.externalUrl !== undefined && item.externalUrl !== '';
17
+ if (item.kind === 'label') {
18
+ if (hasSlug || hasUrl) {
19
+ return `Menu item "${path}" is a label-only heading — remove contentSlug/externalUrl, or drop kind: "label".`;
20
+ }
21
+ if (item.children?.length) {
22
+ const childError = findLinkTargetError(item.children, [...ancestors, item.label]);
23
+ if (childError)
24
+ return childError;
25
+ }
26
+ continue;
27
+ }
14
28
  if (hasSlug && hasUrl) {
15
29
  return `Menu item "${path}" sets both contentSlug and externalUrl — set exactly one.`;
16
30
  }
17
31
  if (!hasSlug && !hasUrl) {
18
- return `Menu item "${path}" sets neither contentSlug nor externalUrl — set exactly one.`;
32
+ return `Menu item "${path}" sets neither contentSlug nor externalUrl — set exactly one (or kind: "label" for a heading).`;
19
33
  }
20
34
  if (item.children?.length) {
21
35
  const childError = findLinkTargetError(item.children, [...ancestors, item.label]);
@@ -51,7 +65,9 @@ export async function handleUpsertMenu(sdk, args) {
51
65
  }
52
66
  // ─── Registration ───────────────────────────────────────────────────────────
53
67
  const menuItemSchema = z.lazy(() => z.object({
68
+ id: z.string().uuid().optional().describe('Existing item id from get_menu — pass it back to keep that row across the replace; omit it for a new item and one is minted'),
54
69
  label: z.string().describe('Visible link text (always required — it wins over the page title)'),
70
+ kind: z.enum(['link', 'label']).optional().describe('"link" (default) links somewhere; "label" is a structural heading with NO target that still keeps its children — use it for mega-panel/footer column headings'),
55
71
  contentSlug: z.string().optional().describe('Slug of a page in this site to link to; href resolves live from the page path'),
56
72
  externalUrl: z.string().optional().describe('Absolute off-site URL, e.g. https://github.com/…'),
57
73
  description: z.string().optional().describe('Supporting copy shown in mega-menu panels'),
@@ -73,7 +89,7 @@ export function registerMenuTools(server, sdk) {
73
89
  },
74
90
  }, async (args) => handleGetMenu(sdk, args));
75
91
  server.registerTool('upsert_menu', {
76
- description: 'Create or update a navigation menu and replace its entire item tree in one idempotent call. Items are nested; each item links to a page via `contentSlug` (preferred — the href stays correct when the page moves) OR to an off-site address via `externalUrl`. Exactly one of the two is required per item. Re-running with the same input is a no-op.',
92
+ description: 'Create or update a navigation menu and replace its entire item tree in one idempotent call. Items are nested; each item links to a page via `contentSlug` (preferred — the href stays correct when the page moves) OR to an off-site address via `externalUrl`. Exactly one of the two is required per item, unless the item sets `kind: "label"` — a structural heading with no target, for a mega-panel or footer column title. Re-running with the same input is a no-op; pass each item\'s `id` from `get_menu` to keep its row identity too.',
77
93
  inputSchema: {
78
94
  slug: z.string().describe('Menu slug, e.g. "main" or "footer"'),
79
95
  name: z.string().describe('Human-readable menu name shown in the admin'),
@@ -1 +1 @@
1
- {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../../src/site/tools/menus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../../src/site/tools/menus.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kywi-software/mcp",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Model Context Protocol servers for Kywi CMS — a site server (content/nav/media over the REST API) and a developer server (kywi.config.ts scaffolding and mutation).",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-only",
@@ -47,8 +47,8 @@
47
47
  "dependencies": {
48
48
  "@modelcontextprotocol/sdk": "^1.12.0",
49
49
  "zod": "^3.25.0",
50
- "@kywi-software/core": "0.14.0",
51
- "@kywi-software/sdk": "0.14.0"
50
+ "@kywi-software/core": "0.15.0",
51
+ "@kywi-software/sdk": "0.15.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/node": "^20.0.0",
@@ -56,7 +56,7 @@
56
56
  "vitest": "^1.6.0"
57
57
  },
58
58
  "scripts": {
59
- "build": "tsc",
59
+ "build": "rm -rf dist && tsc",
60
60
  "test": "vitest run",
61
61
  "test:watch": "vitest"
62
62
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=auto-detect.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-detect.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/auto-detect.test.ts"],"names":[],"mappings":""}