@kywi-software/mcp 0.6.5 → 0.6.7
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/AGENT-PATTERNS.md +34 -2
- package/package.json +3 -3
package/AGENT-PATTERNS.md
CHANGED
|
@@ -272,7 +272,7 @@ authored elsewhere in the admin).
|
|
|
272
272
|
| `name` | Purpose |
|
|
273
273
|
|---|---|
|
|
274
274
|
| `variantContainer` | Module-level arms revealed client-side per audience — read §8 first |
|
|
275
|
-
| `personalizationBadge` |
|
|
275
|
+
| `personalizationBadge` | Optional inline status pill that opens the global transparency panel — not needed on ordinary pages (§8) |
|
|
276
276
|
| `socialShare` | Share links for a URL/title across networks |
|
|
277
277
|
| `map` | Embedded map at a lat/lng or address |
|
|
278
278
|
| `cookieConsent` | Consent banner with message + privacy-policy link |
|
|
@@ -410,12 +410,44 @@ Four traps, each of which fails silently:
|
|
|
410
410
|
audience arm first, so a visitor who matches an audience never enters the
|
|
411
411
|
split. Don't run an experiment and an audience variant on the same container.
|
|
412
412
|
4. **The client runtime needs `/kywi.js`.** Self-ID, behavioral re-evaluation
|
|
413
|
-
and the transparency
|
|
413
|
+
and the transparency panel no-op silently unless the built
|
|
414
414
|
`@kywi-software/js` bundle is at `public/kywi.js`.
|
|
415
415
|
|
|
416
416
|
Standing rule: **the default arm must be complete on its own.** It is what
|
|
417
417
|
search engines, answer engines, and every opted-out visitor receive.
|
|
418
418
|
|
|
419
|
+
### Transparency: automatic, not something you place
|
|
420
|
+
|
|
421
|
+
Once the client runtime is loaded, every personalized (or opted-out-with-a-
|
|
422
|
+
match) page grows a global transparency surface on its own — a small
|
|
423
|
+
collapsed pill, bottom of the page, that expands into a panel showing which
|
|
424
|
+
audience the page was personalized for, an audience switcher, reset-to-
|
|
425
|
+
automatic, and opt-out/opt-in. This is automatic and site-wide; you do not add
|
|
426
|
+
anything to a page to get it.
|
|
427
|
+
|
|
428
|
+
**Don't place the `personalizationBadge` module on ordinary pages.** It is a
|
|
429
|
+
second, optional entry point — a passive inline status pill that opens the
|
|
430
|
+
*same* global panel — for a spot where a deliberate, in-content link to
|
|
431
|
+
personalization settings makes sense (a privacy or preferences page). It
|
|
432
|
+
carries no opt-out controls of its own; switching audience and opting out
|
|
433
|
+
always happen in the one global panel, never in two places that could
|
|
434
|
+
disagree. Placing it on every page is redundant with the surface that's
|
|
435
|
+
already there automatically.
|
|
436
|
+
|
|
437
|
+
`personalization.transparencyNotice.enabled: false` (theme config) suppresses
|
|
438
|
+
the automatic panel from appearing on its own; the badge (or the panel's own
|
|
439
|
+
programmatic open) still works as a deliberate opt-in path.
|
|
440
|
+
|
|
441
|
+
### Self-ID widget: all six display modes
|
|
442
|
+
|
|
443
|
+
The self-ID widget (Admin → Audiences) is authorable in six display modes:
|
|
444
|
+
`modal`, `inline`, `slide-in`, `hello_bar_top`, `hello_bar_bottom`, and
|
|
445
|
+
`drawer`. For `inline`, the client runtime mounts the widget into an element
|
|
446
|
+
matching `[data-kywi-selfid-mount]` when the page provides one; otherwise it
|
|
447
|
+
appends to the end of `<body>`. Give an inline placement its own mount point
|
|
448
|
+
when you want the widget to sit in a specific spot in the page flow rather
|
|
449
|
+
than wherever the runtime defaults to.
|
|
450
|
+
|
|
419
451
|
## 9. Editorial workflow: drafts, review, versions
|
|
420
452
|
|
|
421
453
|
For any site with more than one author — or an owner who wants a safety net —
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kywi-software/mcp",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.7",
|
|
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.6.
|
|
51
|
-
"@kywi-software/sdk": "0.6.
|
|
50
|
+
"@kywi-software/core": "0.6.7",
|
|
51
|
+
"@kywi-software/sdk": "0.6.7"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@types/node": "^20.0.0",
|