@kywi-software/mcp 0.14.0 → 0.15.1
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 +200 -17
- package/README.md +39 -0
- package/dist/site/server.d.ts.map +1 -1
- package/dist/site/server.js +4 -3
- package/dist/site/server.js.map +1 -1
- package/dist/site/tools/components.d.ts.map +1 -1
- package/dist/site/tools/components.js +8 -4
- package/dist/site/tools/components.js.map +1 -1
- package/dist/site/tools/content.d.ts +2 -0
- package/dist/site/tools/content.d.ts.map +1 -1
- package/dist/site/tools/content.js +28 -6
- package/dist/site/tools/content.js.map +1 -1
- package/dist/site/tools/feeds.d.ts.map +1 -1
- package/dist/site/tools/feeds.js +5 -2
- package/dist/site/tools/feeds.js.map +1 -1
- package/dist/site/tools/layout.d.ts.map +1 -1
- package/dist/site/tools/layout.js +50 -4
- package/dist/site/tools/layout.js.map +1 -1
- package/dist/site/tools/media.d.ts +15 -0
- package/dist/site/tools/media.d.ts.map +1 -1
- package/dist/site/tools/media.js +50 -14
- package/dist/site/tools/media.js.map +1 -1
- package/dist/site/tools/menus.d.ts +13 -0
- package/dist/site/tools/menus.d.ts.map +1 -1
- package/dist/site/tools/menus.js +22 -4
- package/dist/site/tools/menus.js.map +1 -1
- package/dist/site/tools/users.d.ts +0 -2
- package/dist/site/tools/users.d.ts.map +1 -1
- package/dist/site/tools/users.js +8 -10
- package/dist/site/tools/users.js.map +1 -1
- package/dist/site/tools/webhooks.d.ts.map +1 -1
- package/dist/site/tools/webhooks.js +3 -0
- package/dist/site/tools/webhooks.js.map +1 -1
- package/package.json +4 -4
- package/dist/__tests__/auto-detect.test.d.ts +0 -2
- package/dist/__tests__/auto-detect.test.d.ts.map +0 -1
- package/dist/__tests__/auto-detect.test.js +0 -134
- package/dist/__tests__/auto-detect.test.js.map +0 -1
- package/dist/__tests__/config.test.d.ts +0 -2
- package/dist/__tests__/config.test.d.ts.map +0 -1
- package/dist/__tests__/config.test.js +0 -72
- package/dist/__tests__/config.test.js.map +0 -1
- package/dist/__tests__/developer-mutation.test.d.ts +0 -2
- package/dist/__tests__/developer-mutation.test.d.ts.map +0 -1
- package/dist/__tests__/developer-mutation.test.js +0 -511
- package/dist/__tests__/developer-mutation.test.js.map +0 -1
- package/dist/__tests__/developer-read-only.test.d.ts +0 -2
- package/dist/__tests__/developer-read-only.test.d.ts.map +0 -1
- package/dist/__tests__/developer-read-only.test.js +0 -192
- package/dist/__tests__/developer-read-only.test.js.map +0 -1
- package/dist/__tests__/site-content-tools.test.d.ts +0 -2
- package/dist/__tests__/site-content-tools.test.d.ts.map +0 -1
- package/dist/__tests__/site-content-tools.test.js +0 -446
- package/dist/__tests__/site-content-tools.test.js.map +0 -1
- package/dist/__tests__/site-layout-tools.test.d.ts +0 -2
- package/dist/__tests__/site-layout-tools.test.d.ts.map +0 -1
- package/dist/__tests__/site-layout-tools.test.js +0 -316
- package/dist/__tests__/site-layout-tools.test.js.map +0 -1
- package/dist/__tests__/site-other-tools.test.d.ts +0 -2
- package/dist/__tests__/site-other-tools.test.d.ts.map +0 -1
- package/dist/__tests__/site-other-tools.test.js +0 -318
- 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),
|
|
189
|
-
A-B tested band with its variants intact
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
component
|
|
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
|
|
196
|
-
replaced in place by a linked instance, marked with an outline
|
|
197
|
-
the component. Place
|
|
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
|
|
228
|
-
|
|
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,
|
|
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.
|
|
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
|
-
**
|
|
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
|
|
@@ -286,6 +331,32 @@ reads as a styled document rather than a site. Sections are bands (each owns its
|
|
|
286
331
|
background and padding), `columns` splits them, and the object modules below do
|
|
287
332
|
the rest.
|
|
288
333
|
|
|
334
|
+
### Module props: omitted takes the default, `''` stays blank
|
|
335
|
+
|
|
336
|
+
Every module declares its props, and most declare a `defaultValue` — the copy or
|
|
337
|
+
setting the module ships with so it renders as *something* the moment it is
|
|
338
|
+
placed. That default is applied on the **write path**, so it applies however the
|
|
339
|
+
module got there: dragged in by the editor, added with MCP `add_module`, or
|
|
340
|
+
written straight into a layout document.
|
|
341
|
+
|
|
342
|
+
The rule has two halves, and the second is the one that matters:
|
|
343
|
+
|
|
344
|
+
- **A prop you OMIT takes the module's declared default.** You do not need to
|
|
345
|
+
restate a module's own defaults to make it look right, and a custom module
|
|
346
|
+
does not need a second copy of them baked into its component.
|
|
347
|
+
- **A prop you write as `''` stays `''`.** An empty string is an instruction —
|
|
348
|
+
"blank on purpose" — not an absent value. Same for `null`, `0` and `false`:
|
|
349
|
+
presence of the key is the whole signal.
|
|
350
|
+
|
|
351
|
+
So `add_module` with no `props` gives you a module that renders; `add_module`
|
|
352
|
+
with `props: { eyebrow: '' }` gives you one with a deliberately empty eyebrow
|
|
353
|
+
and every other prop defaulted. To find out what a module's defaults actually
|
|
354
|
+
are, call `list_module_types` — each prop reports its `default`.
|
|
355
|
+
|
|
356
|
+
Defaults are seeded onto modules a write **adds**, never re-applied to modules
|
|
357
|
+
already on the page. Saving a page for an unrelated reason will not put back a
|
|
358
|
+
prop that someone deliberately left off an existing module.
|
|
359
|
+
|
|
289
360
|
### The built-in palette
|
|
290
361
|
|
|
291
362
|
`name` is the exact `type` value in a layout node and in MCP `add_module`. A
|
|
@@ -360,11 +431,66 @@ authored elsewhere in the admin).
|
|
|
360
431
|
| `personalizationBadge` | Optional inline status pill that opens the global transparency panel — not needed on ordinary pages (§8) |
|
|
361
432
|
| `socialShare` | Share links for a URL/title across networks |
|
|
362
433
|
| `map` | Embedded map at a lat/lng or address |
|
|
363
|
-
| `cookieConsent` | Consent banner with message + privacy-policy link |
|
|
434
|
+
| `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
435
|
| `component` | Places a saved reusable component by slug (§4) |
|
|
365
436
|
| `form` | Renders a form built in the Forms admin (§6) |
|
|
366
437
|
| `formEmbed` | Embeds a form by slug — lighter-weight placement of the same |
|
|
367
438
|
|
|
439
|
+
#### Cookie consent is enforced, not decorative
|
|
440
|
+
|
|
441
|
+
`cookieConsent` is wired to the engine. Its buttons write `kywi_consent`, and
|
|
442
|
+
`@kywi-software/core`'s `audiences/consent.ts` holds the one map from cookie name
|
|
443
|
+
to category that every optional write is gated on:
|
|
444
|
+
|
|
445
|
+
| Cookie | Category | Gated? |
|
|
446
|
+
|---|---|---|
|
|
447
|
+
| `kywi_visitor`, `kywi_signals`, `kywi_utm`, `kywi_audience`, `kywi_known` | `personalization` | yes |
|
|
448
|
+
| `kywi_consent`, `kywi_optout`, `kywi_preview_init` | `essential` | no — necessary cookies are never gated |
|
|
449
|
+
|
|
450
|
+
A gated cookie is neither **written** nor **read** without consent: a visitor who
|
|
451
|
+
accepted last month and rejects today has those cookies deleted, and any that
|
|
452
|
+
survive (`kywi_signals` is HttpOnly) are ignored on the way in. Rejecting is a
|
|
453
|
+
revocation, not just a pause.
|
|
454
|
+
|
|
455
|
+
One exemption: an audience the visitor picks **by hand** in the transparency
|
|
456
|
+
panel is stored as an `essential` preference, on the same argument as
|
|
457
|
+
`kywi_optout` — a control they operated deliberately has to be honoured, or the
|
|
458
|
+
panel is lying about what its buttons do. Only the runtime's automatic
|
|
459
|
+
"remember what I resolved" write is gated. The cookie records which it was
|
|
460
|
+
(`switcher:<id>` vs a bare id), so the read side and the revocation sweep apply
|
|
461
|
+
the same rule: rejecting personalization deletes an automatic pin but keeps one
|
|
462
|
+
the visitor chose.
|
|
463
|
+
|
|
464
|
+
**Undecided means not consented.** Until a visitor answers the banner, none of
|
|
465
|
+
the personalization cookies are written: pages still render, audiences still
|
|
466
|
+
resolve for the request in hand, experiments still return a variant — nothing is
|
|
467
|
+
persisted, so the visitor keeps seeing default content instead of being tracked.
|
|
468
|
+
A site that wants personalization to persist must place this module (or write
|
|
469
|
+
`kywi_consent` some other way). Adding a new cookie without classifying it in
|
|
470
|
+
that map fails closed, and a core test catches the omission.
|
|
471
|
+
|
|
472
|
+
**The escape hatch.** `theme.personalization.requireConsent` in `kywi.config.ts`
|
|
473
|
+
defaults to `true` — the behaviour above. Set it to `false` only when this site
|
|
474
|
+
collects consent with EXTERNAL tooling (a third-party CMP) that suppresses
|
|
475
|
+
cookies its own way; the gate then treats every category as allowed and the site
|
|
476
|
+
takes responsibility for compliance. Because Next.js edge middleware cannot read
|
|
477
|
+
`kywi.config.ts`, mirror the same value as `KYWI_REQUIRE_CONSENT=false` in the
|
|
478
|
+
environment. **Set both or neither** — `createKywiApiHandler` throws at startup
|
|
479
|
+
when they disagree, so a mismatch fails the deploy rather than silently leaving
|
|
480
|
+
the middleware and the API at odds about whether a visitor may be tracked. On a
|
|
481
|
+
site with no other consent mechanism, `false` is simply the non-compliant
|
|
482
|
+
setting.
|
|
483
|
+
|
|
484
|
+
The banner ships **hidden** (`kywi-consent-pending` on the wrapper) and reveals
|
|
485
|
+
itself after mount only for a visitor with no decision on file — a theme must not
|
|
486
|
+
force it visible, or every returning visitor gets a flash of a consent ask they
|
|
487
|
+
already answered.
|
|
488
|
+
|
|
489
|
+
When consent is required and no page places the module, the API logs a one-time
|
|
490
|
+
warning on its first request: nobody can grant consent, so every personalization
|
|
491
|
+
cookie stays suppressed and audiences, A/B bucketing and UTM attribution serve
|
|
492
|
+
default content to everyone.
|
|
493
|
+
|
|
368
494
|
### Which do I reach for? (in order)
|
|
369
495
|
|
|
370
496
|
1. **A built-in already does it** → use it. Read the tables before inventing
|
|
@@ -409,9 +535,12 @@ module's *first* prop inline-editable on the page when its type is `text`,
|
|
|
409
535
|
directly on the live page, and `props: { variant, headline, … }` cannot.
|
|
410
536
|
|
|
411
537
|
Also: create **saved layouts** (Layouts admin) as page templates — "Landing
|
|
412
|
-
page", "Case study" — so new pages start from a consistent skeleton.
|
|
413
|
-
|
|
414
|
-
|
|
538
|
+
page", "Case study" — so new pages start from a consistent skeleton. A saved
|
|
539
|
+
layout may link reusable components like any page: the link is indexed, counted
|
|
540
|
+
in the component's usage under "saved layouts", and carried into every page
|
|
541
|
+
stamped out of that layout. Hand-written JSX stays fine for genuinely fixed
|
|
542
|
+
chrome (a bespoke 404, legal boilerplate) — but if marketing will ever want to
|
|
543
|
+
swap a headline, it's a layout page.
|
|
415
544
|
|
|
416
545
|
### Navigation: menus vs. the site tree
|
|
417
546
|
|
|
@@ -550,6 +679,27 @@ interchangeable. Two of them are current.
|
|
|
550
679
|
forced — so a page that already has one is not broken, it is simply not the
|
|
551
680
|
shape to add more of.
|
|
552
681
|
|
|
682
|
+
**Two signals make campaign handoffs and site-owned self-ID cheap
|
|
683
|
+
(kywi-cms#196/#200).** `query.<param>` matches the query string of the request
|
|
684
|
+
being served — `/developers?from=marketer` is the rule `query.from equals
|
|
685
|
+
marketer`, matched on that very request with no reload — and `session.entryPage`
|
|
686
|
+
is the session's first page (path + query), so the rule survives the visitor
|
|
687
|
+
navigating on. For an explicit control instead of the built-in self-ID widget,
|
|
688
|
+
`Kywi.setSelfId({ role: 'marketer' })` records the answer, resolves and PINS the
|
|
689
|
+
audience server-side and reloads; the pin is the part that matters, because the
|
|
690
|
+
losing arms are pruned on the server (see #167 below) and only a fresh server
|
|
691
|
+
render can show them. A plain form post to `/api/v1/kywi/self-id` with a
|
|
692
|
+
`returnTo` field does the same with JavaScript off. Two rules that decide
|
|
693
|
+
whether it works at all: **the endpoint stores only self-ID fields the site
|
|
694
|
+
declared** (Audiences → Self-ID Fields), so an undeclared key is dropped; and
|
|
695
|
+
**an audience with no rules never matches from answers**, because resolution
|
|
696
|
+
runs the same rules everything else does. For a chooser whose options ARE
|
|
697
|
+
audiences, flag them **public**, read the options from
|
|
698
|
+
`GET /api/v1/kywi/audiences` (which publishes only `{ id, name, label }`), and
|
|
699
|
+
pass the id straight back — `Kywi.setSelfId({}, { audienceId })`, or a hidden
|
|
700
|
+
`audienceId` input on the form — which pins the visitor's pick directly, rules
|
|
701
|
+
or no rules.
|
|
702
|
+
|
|
553
703
|
**Neither container ever nests.** Not one inside the other, not one inside
|
|
554
704
|
itself. A module already sitting in a personalized section's arm cannot be
|
|
555
705
|
promoted — the editor withholds the action, `personalize_module` returns a
|
|
@@ -582,6 +732,39 @@ Four traps, each of which fails silently:
|
|
|
582
732
|
Standing rule: **the default arm must be complete on its own.** It is what
|
|
583
733
|
search engines, answer engines, and every opted-out visitor receive.
|
|
584
734
|
|
|
735
|
+
**What actually reaches the visitor (kywi-cms#167).** A published page ships
|
|
736
|
+
only the arm that visitor is served — the other arms of every section- and
|
|
737
|
+
module-level container are stripped on the server, before the document crosses
|
|
738
|
+
into the client renderer (`pruneLayoutToServedArms`, run last in the public
|
|
739
|
+
render path). So view-source shows one arm, not all of them, and the same is
|
|
740
|
+
true of page variants (`applyPageVariant` has always dropped those). Two things
|
|
741
|
+
follow. First, arm copy is not shared with the people it is not for, so an
|
|
742
|
+
unlaunched offer or a segment-specific price is not sitting in the HTML of
|
|
743
|
+
everyone else's page. Second, **the audience RULES still are** — the client
|
|
744
|
+
runtime is handed the active audiences so it can re-evaluate on client signals,
|
|
745
|
+
so how a visitor is classified remains public even though the content each class
|
|
746
|
+
gets is not. Author rules accordingly: they are readable.
|
|
747
|
+
|
|
748
|
+
**One exception, and it is a live one: the retired `variantContainer` MODULE.**
|
|
749
|
+
Pruning covers the two container NODES. It cannot cover the legacy module,
|
|
750
|
+
because that module's arms are not arms of a container at all — they are HTML
|
|
751
|
+
strings in its own props, and it renders every one of them into the DOM by
|
|
752
|
+
design, hiding the losing ones with `display: none` for the client runtime to
|
|
753
|
+
reveal. So a page that still carries one keeps publishing all of its arms in
|
|
754
|
+
plain markup, where `view-source` and "inspect element" both find them
|
|
755
|
+
immediately. Nothing about #167 changed that, and no amount of server-side
|
|
756
|
+
resolution can: the shape is client-swap by construction. If a page you are
|
|
757
|
+
working on has one, converting it is the fix — `kywi upgrade:variant-containers`
|
|
758
|
+
(landing separately, for kywi-cms#172) rewrites existing placements into the
|
|
759
|
+
`moduleVariantContainer` node, which is server-resolved and therefore pruned.
|
|
760
|
+
Until it is converted, treat that module's arms as public, whatever the audience
|
|
761
|
+
binding says.
|
|
762
|
+
|
|
763
|
+
The editor is the deliberate exception — the front-edit overlay and the admin
|
|
764
|
+
layout editor are handed the STORED document, every arm intact, because that is
|
|
765
|
+
what is being edited. If you are writing a host page, keep the two apart: prune
|
|
766
|
+
what you pass to `<KywiLayout>`, and pass the editor the layout you loaded.
|
|
767
|
+
|
|
585
768
|
### Transparency: automatic, not something you place
|
|
586
769
|
|
|
587
770
|
Once the client runtime is loaded, every personalized (or opted-out-with-a-
|
package/README.md
CHANGED
|
@@ -64,6 +64,45 @@ directly), `KYWI_API_URL` / `KYWI_MCP_DEV_KEY` (API mode), and
|
|
|
64
64
|
`KYWI_MCP_MODE` (`filesystem` | `api` | `auto`, default `auto` — picks
|
|
65
65
|
filesystem mode when `configPath` is writable, otherwise API mode).
|
|
66
66
|
|
|
67
|
+
## Tool contracts worth knowing before you call them
|
|
68
|
+
|
|
69
|
+
Three behaviours account for most of the surprises when an agent drives a real
|
|
70
|
+
site. They are documented in the tool descriptions too, but here in one place:
|
|
71
|
+
|
|
72
|
+
**Every `list_*` result carries `total` and `hasMore`.** `list_content` (and the
|
|
73
|
+
per-type `list_<type>` tools) page: the default page size is **10** and the
|
|
74
|
+
server caps `limit` at **100**. `hasMore: true` means you are holding a
|
|
75
|
+
truncated answer and must ask for the next `page` — the tempting shortcut,
|
|
76
|
+
`limit: 1000`, is silently clamped to 100 and fails again at the 101st row. The
|
|
77
|
+
unpaged lists (`list_media` with no `limit`, `list_feeds`, `list_menus`,
|
|
78
|
+
`list_components`, `list_users`) return everything and report `hasMore: false`.
|
|
79
|
+
|
|
80
|
+
**Check for existence with a filter, not by paging.** `list_content` accepts
|
|
81
|
+
`slug` and `path` for exact matches, so "does `/resources` already exist?" is
|
|
82
|
+
one call whose `total` is the answer. Paging until you happen to see it is how a
|
|
83
|
+
build creates a second published copy of a page it already had.
|
|
84
|
+
|
|
85
|
+
**Omitted module props take the module's default; `''` stays blank.**
|
|
86
|
+
`add_module` fills in every prop you leave out with the `defaultValue` the module
|
|
87
|
+
declares, so a module placed with no props still renders. Writing a prop as an
|
|
88
|
+
empty string means "blank on purpose" and is preserved. Call `list_module_types`
|
|
89
|
+
to see each prop's default. Defaults are applied to modules a write ADDS, so
|
|
90
|
+
re-saving a page never puts back a prop that was deliberately left off an
|
|
91
|
+
existing module.
|
|
92
|
+
|
|
93
|
+
`upload_media` sends the file as the raw request body with its name in
|
|
94
|
+
`x-filename` and its type in `Content-Type` — so `filename` must carry a real
|
|
95
|
+
extension (`hero.png`, not `hero`), and it must agree with `mimeType`: the
|
|
96
|
+
server gates uploads on both. The name is reduced to a plain basename on the way
|
|
97
|
+
(path segments stripped, anything outside `[A-Za-z0-9._-]` replaced with `_`),
|
|
98
|
+
so pass a bare file name and read the stored `filename` back off the result
|
|
99
|
+
rather than assuming it. `alt` and `caption` are stored as the file's metadata
|
|
100
|
+
after the upload.
|
|
101
|
+
|
|
102
|
+
`list_media` returns the whole library when you omit `limit`; `page` is only
|
|
103
|
+
meaningful alongside a `limit`, and sending it alone is an error rather than a
|
|
104
|
+
silent first page.
|
|
105
|
+
|
|
67
106
|
## Building patterns for agents
|
|
68
107
|
|
|
69
108
|
Both servers register a `get_building_patterns` tool that returns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/site/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAajD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/site/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAajD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,YAAY,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAgDjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAiCpE"}
|
package/dist/site/server.js
CHANGED
|
@@ -38,10 +38,11 @@ export async function registerTypeSpecificTools(server, sdk, baseUrl) {
|
|
|
38
38
|
return textResult(item);
|
|
39
39
|
});
|
|
40
40
|
server.registerTool(`list_${ct.name}`, {
|
|
41
|
-
description: `List ${ct.label} content
|
|
41
|
+
description: `List ${ct.label} content. The default page size is 10 (maximum 100), and the result carries `
|
|
42
|
+
+ '`total`, `page`, `pageSize` and `hasMore` — while `hasMore` is true you have not seen every row.',
|
|
42
43
|
inputSchema: z.object({
|
|
43
|
-
page: z.number().int().optional(),
|
|
44
|
-
limit: z.number().int().optional(),
|
|
44
|
+
page: z.number().int().optional().describe('Page number (1-based)'),
|
|
45
|
+
limit: z.number().int().optional().describe('Items per page — default 10, maximum 100'),
|
|
45
46
|
status: z.string().optional(),
|
|
46
47
|
}),
|
|
47
48
|
}, async (args) => {
|
package/dist/site/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/site/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAiB,EACjB,GAAiB,EACjB,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAIpB,uBAAuB,CAAC,CAAA;QAE9B,IAAI,OAAO,IAAK,GAA+B;YAAE,OAAO,CAAC,CAAA;QAEzD,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAiC,EAAE,CAAA;YACrD,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;gBAC9B,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ;oBACvC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;oBAClC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACjD,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvC,WAAW,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE;gBACvC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;aACpC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAA+B,CAAC,CAAA;gBAC/E,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrC,WAAW,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/site/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;;;;;;
|
|
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;;;;;;GAUF;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CA0BjF"}
|
|
@@ -27,12 +27,15 @@ export async function handleListComponents(sdk, args) {
|
|
|
27
27
|
type: args.type,
|
|
28
28
|
withUsage: args.withUsage,
|
|
29
29
|
});
|
|
30
|
-
|
|
30
|
+
// The components endpoint is not paged — this is the whole library
|
|
31
|
+
// (kywi-cms#199).
|
|
32
|
+
return textResult({ components, total: components.length, hasMore: false });
|
|
31
33
|
}
|
|
32
34
|
// ─── Registration ───────────────────────────────────────────────────────────
|
|
33
35
|
export function registerComponentTools(server, sdk) {
|
|
34
36
|
server.registerTool('list_components', {
|
|
35
|
-
description: 'List the site\'s reusable components (saved modules, sections
|
|
37
|
+
description: 'List the site\'s reusable components (saved modules, sections, personalized/A-B bands and '
|
|
38
|
+
+ 'personalized/A-B MODULES). ' +
|
|
36
39
|
'Each row carries its `definition` — the stored node. To PLACE one, write a layout node ' +
|
|
37
40
|
'shaped like that definition with a fresh `id` of its own plus `componentId: <the id>`; the ' +
|
|
38
41
|
'inline content is the fallback copy, so keep the definition\'s content there. Every ' +
|
|
@@ -42,9 +45,10 @@ export function registerComponentTools(server, sdk) {
|
|
|
42
45
|
inputSchema: {
|
|
43
46
|
siteId: z.string().optional().describe('Site ID (uses the default site if omitted)'),
|
|
44
47
|
type: z
|
|
45
|
-
.enum(['module', 'section', 'variantContainer'])
|
|
48
|
+
.enum(['module', 'section', 'variantContainer', 'moduleVariantContainer'])
|
|
46
49
|
.optional()
|
|
47
|
-
.describe('Filter by granularity: a single module, a whole section,
|
|
50
|
+
.describe('Filter by granularity: a single module, a whole section, a personalized/A-B band ' +
|
|
51
|
+
'(section-level), or a personalized/A-B module (column-level)'),
|
|
48
52
|
withUsage: z
|
|
49
53
|
.boolean()
|
|
50
54
|
.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;
|
|
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,mEAAmE;IACnE,kBAAkB;IAClB,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AAC7E,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"}
|
|
@@ -24,6 +24,8 @@ export declare function handleListContent(sdk: KywiSdkScope, args: {
|
|
|
24
24
|
limit?: number | undefined;
|
|
25
25
|
sort?: string | undefined;
|
|
26
26
|
dir?: 'asc' | 'desc' | undefined;
|
|
27
|
+
slug?: string | undefined;
|
|
28
|
+
path?: string | undefined;
|
|
27
29
|
}): Promise<{
|
|
28
30
|
content: [{
|
|
29
31
|
type: "text";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/site/tools/content.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKtD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;;;;;;;GAW7D;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/site/tools/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,16 @@ export async function handleGetContent(sdk, args) {
|
|
|
16
16
|
export async function handleListContent(sdk, args) {
|
|
17
17
|
const { type, ...opts } = args;
|
|
18
18
|
const result = await sdk.content.list(type, undefined, opts);
|
|
19
|
-
|
|
19
|
+
// kywi-cms#199: `rows` + `total` alone left the caller unable to tell a
|
|
20
|
+
// complete answer from the first page of one. `hasMore` is the field that
|
|
21
|
+
// says "there are rows you have not seen".
|
|
22
|
+
return textResult({
|
|
23
|
+
rows: result.rows,
|
|
24
|
+
total: result.total,
|
|
25
|
+
hasMore: result.hasMore,
|
|
26
|
+
page: result.page,
|
|
27
|
+
pageSize: result.pageSize,
|
|
28
|
+
});
|
|
20
29
|
}
|
|
21
30
|
export async function handleCreateContent(sdk, args) {
|
|
22
31
|
const merged = { ...args.fields };
|
|
@@ -153,7 +162,13 @@ export async function handleListPendingContent(sdk, args) {
|
|
|
153
162
|
opts.siteId = args.siteId;
|
|
154
163
|
}
|
|
155
164
|
const result = await sdk.content.list('page', undefined, opts);
|
|
156
|
-
return textResult({
|
|
165
|
+
return textResult({
|
|
166
|
+
items: result.rows,
|
|
167
|
+
total: result.total,
|
|
168
|
+
hasMore: result.hasMore,
|
|
169
|
+
page: result.page,
|
|
170
|
+
pageSize: result.pageSize,
|
|
171
|
+
});
|
|
157
172
|
}
|
|
158
173
|
export function getBuiltInContentTypes() {
|
|
159
174
|
return [
|
|
@@ -172,13 +187,20 @@ export function registerContentTools(server, sdk, baseUrl, apiKey) {
|
|
|
172
187
|
},
|
|
173
188
|
}, async (args) => handleGetContent(sdk, args));
|
|
174
189
|
server.registerTool('list_content', {
|
|
175
|
-
description: 'List content nodes by type with optional filtering, pagination, and sorting'
|
|
190
|
+
description: 'List content nodes by type with optional filtering, pagination, and sorting. '
|
|
191
|
+
+ 'PAGINATION: the default page size is 10 and the server caps `limit` at 100, so a list of any size '
|
|
192
|
+
+ 'comes back truncated unless you page. The result carries `total`, `page`, `pageSize` and `hasMore` — '
|
|
193
|
+
+ 'while `hasMore` is true you have NOT seen every row, and must request the next `page`. '
|
|
194
|
+
+ 'EXISTENCE CHECKS: do not page to find out whether a node exists — pass `slug` or `path` and read '
|
|
195
|
+
+ '`total`. Skipping that is how a build creates a duplicate of a page it already has.',
|
|
176
196
|
inputSchema: {
|
|
177
197
|
type: z.string().describe('Content type name'),
|
|
178
198
|
status: z.string().optional().describe('Filter by status (e.g. draft, published)'),
|
|
179
|
-
search: z.string().optional().describe('
|
|
180
|
-
|
|
181
|
-
|
|
199
|
+
search: z.string().optional().describe('Substring search over titles'),
|
|
200
|
+
slug: z.string().optional().describe('Exact slug match — the cheap existence check'),
|
|
201
|
+
path: z.string().optional().describe('Exact full-path match (e.g. /resources)'),
|
|
202
|
+
page: z.number().optional().describe('Page number (1-based)'),
|
|
203
|
+
limit: z.number().optional().describe('Items per page — default 10, maximum 100'),
|
|
182
204
|
sort: z.string().optional().describe('Sort field'),
|
|
183
205
|
dir: z.enum(['asc', 'desc']).optional().describe('Sort direction'),
|
|
184
206
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/site/tools/content.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/site/tools/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../src/site/tools/feeds.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,oBAAoB,CAAA;AAKjE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IACJ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,GAAG,SAAS,CAAA;CACd;;;;;;;;;;;;GAiBF;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,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;GAWjI;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;GAS3J;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;
|
|
1
|
+
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../src/site/tools/feeds.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,oBAAoB,CAAA;AAKjE,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IACJ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC1B,GAAG,SAAS,CAAA;CACd;;;;;;;;;;;;GAiBF;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,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;GAWjI;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;GAS3J;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;;;;;;GAMtC;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CA8C5E"}
|
package/dist/site/tools/feeds.js
CHANGED
|
@@ -49,7 +49,9 @@ export async function handleUpdateFeed(sdk, args) {
|
|
|
49
49
|
}
|
|
50
50
|
export async function handleListFeeds(sdk, args) {
|
|
51
51
|
const feeds = await sdk.feeds.list({ siteId: args.siteId });
|
|
52
|
-
|
|
52
|
+
// `GET /feeds` returns every feed in one response, so this is always the
|
|
53
|
+
// complete answer — said out loud rather than left to be assumed (kywi-cms#199).
|
|
54
|
+
return textResult({ feeds, total: feeds.length, hasMore: false });
|
|
53
55
|
}
|
|
54
56
|
// ─── Registration ───────────────────────────────────────────────────────────
|
|
55
57
|
export function registerFeedTools(server, sdk) {
|
|
@@ -88,7 +90,8 @@ export function registerFeedTools(server, sdk) {
|
|
|
88
90
|
},
|
|
89
91
|
}, async (args) => handleUpdateFeed(sdk, args));
|
|
90
92
|
server.registerTool('list_feeds', {
|
|
91
|
-
description: 'List saved feed definitions for a site'
|
|
93
|
+
description: 'List saved feed definitions for a site. Returns every feed in one call — `total` is the whole '
|
|
94
|
+
+ 'set and `hasMore` is always false, so there is nothing to page.',
|
|
92
95
|
inputSchema: {
|
|
93
96
|
siteId: z.string().optional().describe('Filter by site ID'),
|
|
94
97
|
},
|