@typeroll/mcp-server 0.45.43 → 0.45.44

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
@@ -247,11 +247,15 @@ maps to one HTTP endpoint; the actual logic runs in the customer's portal
247
247
  API key may write are excluded by default: a gap you can't close is
248
248
  noise.
249
249
  - **Per-field write authority.** A content type field can declare
250
- `writable_by` (`portal | owner | agent | app | import`). A write you're
251
- not permitted, or one that would overwrite a higher-precedence writer
252
- (a human correction, the listed business's own edit), comes back as
253
- **409 with the losing field names** — never a silent no-op. Treat that
254
- as "already handled" and record it; retrying will lose again.
250
+ `writable_by` (`portal | owner | agent | app | import`); your API key may
251
+ write every field open to `portal` or `agent`. A write you're not
252
+ permitted, or one that would replace the listed business's own edit
253
+ without a reason, comes back as
254
+ **409 with the losing field names** — never a silent no-op. Your writes
255
+ carry the same authority as an editor in the portal: you may replace a
256
+ value someone set in the portal, as they may replace yours. Only a value
257
+ the listed business set itself needs `override_reason`; send one only
258
+ when the user asked for the change.
255
259
  - **Item references.** `page_ref` / `page_ref_list` fields point at items
256
260
  in another content type (`ref_content_type`). The reverse direction is
257
261
  computed at render time — don't try to maintain backlinks yourself.
@@ -599,14 +603,9 @@ set_page_mode page_id=about to=blocks
599
603
  set_page_mode page_id=about to=html
600
604
  ```
601
605
 
602
- `convert_page_to_blocks` previews a heuristic conversion and lists
603
- `unconverted` text, classes, and markup. It does not write, and
604
- `set_page_mode` does not apply that preview. A person accepts the
605
- preview in the page editor. The heuristic recognises `<h1-4>` →
606
- heading, `<img>` → image, `<a.btn>` → button, `grid-cols-2` →
607
- two-column, `<section>` / hero divs → section. Link-wrapped card text
608
- and author classes are reported as unconverted rather than discarded
609
- silently.
606
+ Typeroll does not convert HTML into blocks. `set_page_mode to=blocks`
607
+ keeps the HTML as a revision and starts an empty block tree; build the
608
+ content with blocks.
610
609
 
611
610
  ### "Build a directory or migrate a content family"
612
611
 
@@ -1031,7 +1030,7 @@ preview.
1031
1030
  | **Insights** | `get_site_insights` — traffic, AI-assistant referrals, and first-party conversion events over 7/30/90 days. Read-only. Traffic is powered by Cloudflare Web Analytics; conversion rows come from validated Analytics attribution `click_event` targets and can be present even when the traffic provider is unavailable. |
1032
1031
  | **Pages — reads** | `list_pages`, `read_page`, `batch_read_pages` |
1033
1032
  | **Pages — writes** | `create_page`, `update_page`, `replace_page`, `batch_update_pages`, `delete_page`, `clone_page` |
1034
- | **Pages — blocks** | `get_page_blocks`, `add_block`, `update_block`, `move_block`, `remove_block`, `duplicate_block`, `set_block_responsive`, `set_page_mode`, `convert_page_to_blocks` (preview only), `convert_prose_block` (preview, then `accept`) |
1033
+ | **Pages — blocks** | `get_page_blocks`, `add_block`, `update_block`, `move_block`, `remove_block`, `duplicate_block`, `set_block_responsive`, `set_page_mode` (never converts HTML into blocks) |
1035
1034
  | **Pages — meta** | `get_page_preview` |
1036
1035
  | **Global blocks (partials)** | `list_partials` (summary by default), `read_partial`, `create_free_block` (`blocks` or `html_content`), `update_partial`, `replace_partial`, `set_partial_mode`, `delete_partial`, `find_pages_using_block`, `make_block_global`, `detach_global_block`. Block pages reference a global block with `core/global_block` (`global_block_id`); HTML pages use `<x-include>`. |
1037
1036
  | **Block templates** | `list_block_templates`, `read_block_template`, `save_block_template` (from `blocks` or `from: { page_id, block_id }`), `update_block_template`, `delete_block_template`, `insert_block_template` (copies with new ids). Per site, not per branch. |
@@ -1042,7 +1041,7 @@ preview.
1042
1041
  | **Media** | `list_media`, `read_media`, `create_upload_url`, `upload_media_from_url`, `upload_media_inline`, `update_media`, `delete_media`, `finalize_media`, `finalize_all_media`, `generate_image_variants`, `suggest_alt_text_context` |
1043
1042
  | **Redirects** | `list_redirects`, `create_redirect`, `delete_redirect`. `from_path` may be a PATTERN: a trailing `*` (with `:splat` in the target) or `:name` for one segment — one rule retires a whole family of dead URLs (`/category/*` → `/blogg/:splat`). Mid-path splats and query strings are refused, as is any rule that would hide a live page. |
1044
1043
  | **Migration inventory + launch gate** | `get_migration_readiness` (preflight — CALL FIRST), `list_migration_urls`, `add_migration_urls`, `update_migration_url`, `update_migration_urls`, `delete_migration_url`, `import_sitemap`, `import_gsc_performance`, `repair_migration_plain_text`, `verify_migration_urls`, `record_migration_seo_acceptance`, `get_migration_launch_report`. Sitemap indexes are recursive. GSC supports direct Search Console access or CSV and aggregates fragment variants. Plain-text repair is allowlisted and dry-run-first. A complete unfiltered URL check and reviewed SEO evidence are bound to the latest hosted deploy; the launch report fails closed when either is stale or incomplete. |
1045
- | **Forms** | `list_forms`, `read_form`, `create_form`, `update_form`, `delete_form`, `list_form_submissions`, `delete_form_submission` (removes one submission — e.g. cleaning up a test entry; `delete_form` with `delete_submissions` is the bulk path). **Steps (form/* block trees) are the ONLY stored model**: pass `steps` for funnels, or `fields` for simple forms — the server converts a flat field list to a single static step. Place with a `core/form` block on block-mode pages or `<x-form id="…" />` in HTML mode. Both expand server-side to the same complete signed shell and initial state. Email/webhook actions are admin-only in the portal and excluded from agent reads/writes. |
1044
+ | **Forms** | `list_forms`, `read_form`, `create_form`, `update_form`, `delete_form`, `list_form_submissions`, `delete_form_submission` (removes one submission — e.g. cleaning up a test entry; `delete_form` with `delete_submissions` is the bulk path). **Steps (form/* block trees) are the ONLY stored model**: pass `steps` for funnels, or `fields` for simple forms — the server converts a flat field list to a single static step. Place with a `core/form` block on block-mode pages or `<x-form id="…" />` in HTML mode. Both expand server-side to the same complete signed shell and initial state. `read_form` shows the form's actions (email notifications, webhooks; secrets masked) and `create_form`/`update_form` set them with `actions`, with admin permission as in the portal. |
1046
1045
  | **Settings** | `update_site_settings` (whitelist, including `sitewide_noindex` and shallow-merged native `cookie_consent`), `check_site_indexing` (live fallback/production headers, meta robots, and robots.txt diagnostics) |
1047
1046
  | **Core modules** | `list_apps`, `read_app`, `update_app` (legacy API name; admin; schema-driven config, masked secrets, redeploy when `affects_build` is true) |
1048
1047
  | **Extension installations** | `list_extension_installations`, `read_extension_installation`, `update_extension_installation_config` (admin; schema-driven config, masked secrets preserved, production deploy queued by default) |
package/README.md CHANGED
@@ -154,7 +154,7 @@ the full reference + concrete operation recipes.
154
154
  `read_site_settings`, `update_site_settings`.
155
155
  - **Pages** — list, read, batch-read, create, update (PATCH), replace
156
156
  (PUT), batch-update, delete, clone, get-preview, `set_page_mode`
157
- (flip between blocks/html), `convert_page_to_blocks`, `convert_prose_block`.
157
+ (flip between blocks/html; HTML is never converted into blocks).
158
158
  - **Blocks (instances)** — `get_page_blocks`, `add_block`,
159
159
  `update_block`, `move_block`, `remove_block`, `duplicate_block`,
160
160
  `set_block_responsive`. All take a `target` (page, partial, page
@@ -206,8 +206,9 @@ the full reference + concrete operation recipes.
206
206
  - **Forms** — list, read, create, update, delete, list submissions.
207
207
  Place forms with `core/form` blocks or an HTML-mode `<x-form id="…" />`
208
208
  reference; preview/build expands both server-side to the same complete,
209
- signed form shell. Admins configure email and allowlisted, signed webhooks
210
- in the portal; action configuration stays off agent surfaces.
209
+ signed form shell. With an admin key, `read_form` returns the form's email
210
+ notifications and allowlisted, signed webhooks (`actions`, secrets masked)
211
+ and `create_form`/`update_form` set them, as the portal's Forms editor does.
211
212
  - **Extension installations** — list/read installed Extensions and update
212
213
  manifest-defined installation config through the API key with
213
214
  `update_extension_installation_config`; omitted and masked secrets are