@typeroll/mcp-server 0.26.2 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -238,6 +238,30 @@ maps to one HTTP endpoint; the actual logic runs in the customer's portal
238
238
  your own changes. Do NOT `trigger_deploy` merely to preview a content/design
239
239
  change — a deploy builds static pages (slow) and only reflects state as of
240
240
  that build.
241
+ - **THE BUFFER MODEL — every content write is a draft; saving is always
242
+ explicit.** All content writes (update_page, replace_page, block tools,
243
+ update_partial, update_collection_item, batch/bulk tools) land in a
244
+ per-doc *working copy* — the same draft layer the portal editor
245
+ autosaves into. Deploys and plain preview links see SAVED content only;
246
+ your drafts are invisible to them until committed. The loop:
247
+ 1. Edit freely — reads (`read_page`, `get_page_blocks`) return the
248
+ draft view (plus `has_unsaved_changes`), so chained edits compose.
249
+ 2. Look at it: `get_preview_link` / `get_page_preview` with
250
+ `include_working_copy: true` (the link flag is signed into the
251
+ token, so your iteration link needs one mint with the flag).
252
+ 3. SAVE explicitly: `commit_working_copy`, or `save: true` directly on
253
+ the write call (typical for pre-approved changes and batch sweeps).
254
+ Commit = the editor's Save button: revision snapshot, SEO
255
+ transform, redirect hygiene. Rejected → `discard_working_copy`.
256
+ Exceptions that apply immediately (they are publish state / structure,
257
+ not content): `status` fields, create/delete, `set_page_mode`,
258
+ templates, settings, redirects, block-type definitions, media.
259
+ The human editor shows your drafts as "Unsaved changes" it can Save or
260
+ Discard; `read_working_copy` shows the raw unsaved diff when you need to
261
+ know whose edits are in it. Working copies are per-doc scratch; for
262
+ multi-page efforts branch instead (`create_branch`).
263
+ **Before `trigger_deploy`: commit.** Deploys build saved content only —
264
+ an uncommitted draft silently stays behind.
241
265
  - **Deploys / `{branch}.{project}.pages.dev` are the STATIC BUILD**, refreshed
242
266
  only by `trigger_deploy`. Reach for them when you want the real compiled
243
267
  output: publishing, a stakeholder link to the built site, or a faithful
package/README.md CHANGED
@@ -154,7 +154,14 @@ the full reference + concrete operation recipes.
154
154
  own URL at `{branch}.{project}.pages.dev`.
155
155
  - **Deploy** — trigger, list, get status.
156
156
  - **Preview** — `get_preview_link` (signed URL for browser navigation;
157
- supports `page_id`, `slug`, or `collection_name + item_id`).
157
+ supports `page_id`, `slug`, or `collection_name + item_id`; pass
158
+ `include_working_copy: true` to also render unsaved drafts).
159
+ - **Drafts (the buffer model)** — every content write lands in a per-doc
160
+ unsaved draft (working copy); deploys and plain previews see saved
161
+ content only. Save explicitly with `commit_working_copy` or `save: true`
162
+ on the write call; inspect/discard with `read_working_copy` /
163
+ `discard_working_copy`. Status changes and structural operations apply
164
+ immediately.
158
165
 
159
166
  ## Direct REST API access
160
167