@respira/wordpress-mcp-server 7.6.2 → 8.0.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/README.md CHANGED
@@ -7,14 +7,14 @@
7
7
  <h1 align="center">Respira WordPress MCP Server</h1>
8
8
 
9
9
  <p align="center">
10
- <strong>200+ MCP tools (275+ with add-ons). 16 page builders. Context-aware tool filtering. The AI infrastructure layer for WordPress.</strong><br>
10
+ <strong>169 core MCP tools, 272 with the WooCommerce add-on. 16 page builders. Context-aware tool filtering. The AI infrastructure layer for WordPress.</strong><br>
11
11
  Element-level editing, full page creation, HTML-to-builder conversion with rendering fidelity validation, per-site tool governance, storefront design intelligence, stock images, bulk operations — all through one MCP server.
12
12
  </p>
13
13
 
14
14
  <p align="center">
15
15
  <a href="https://www.npmjs.com/package/@respira/wordpress-mcp-server"><img src="https://img.shields.io/npm/v/@respira/wordpress-mcp-server.svg?style=flat-square&color=10b981" alt="npm version"></a>
16
16
  <a href="https://www.npmjs.com/package/@respira/wordpress-mcp-server"><img src="https://img.shields.io/npm/dm/@respira/wordpress-mcp-server.svg?style=flat-square" alt="npm downloads"></a>
17
- <img src="https://img.shields.io/badge/tools-200+-10b981?style=flat-square" alt="200+ Tools">
17
+ <img src="https://img.shields.io/badge/tools-272-10b981?style=flat-square" alt="272 Tools with WooCommerce">
18
18
  <img src="https://img.shields.io/badge/builders-16-10b981?style=flat-square" alt="16 Page Builders">
19
19
  <img src="https://img.shields.io/badge/TypeScript-100%25-blue?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
20
20
  </p>
@@ -35,6 +35,19 @@ Other WordPress MCP servers wrap the REST API. They can create posts and pages,
35
35
 
36
36
  Respira includes a WordPress plugin that gives AI **native access** to 16 page builders, plus element-level precision, full page creation from structure, HTML-to-builder conversion, storefront design intelligence, stock image search, and bulk operations across hundreds of pages.
37
37
 
38
+ ### Next release: verified FSE and WooCommerce operations
39
+
40
+ - **First-class Site Editor tools.** Agents can list, inspect, create, target-update, and reset block templates and template parts; create and safely edit synced/unsynced patterns; and traverse native block navigation as exact nested paths. Every editable surface uses stale-write fingerprints, structural proposals, snapshots, compact diffs, cache invalidation, and truthful stored/rendered verification.
41
+ - **Native design-token tools.** Gutenberg `theme.json` colors, typography, and spacing variables are exposed through the existing WordPress storage model rather than a parallel token database.
42
+ - **Truthful storefront writes.** Woo product-card, checkout, sale-badge, and low-stock-badge tools resolve the real FSE template and registered block paths. An unsupported layout now returns `respira_woo_fse_write_not_supported`; it never reports an applied change that only logged intent.
43
+ - **Bounded, defined commerce reporting.** Revenue, sales time series, top products, order summaries, and privacy-safe customer summaries use paginated WooCommerce data-store queries compatible with HPOS. Responses state currency, timezone, boundaries, statuses, coverage, and metric definitions.
44
+ - **Safe store operations.** Read-only store configuration, payment gateway, shipping-zone, and tax-rate discovery is joined by approval-gated Woo webhooks with HTTPS targets, allowlisted topics, write-only secrets, and redacted rate-limited tests.
45
+ - **Agent-visible audit history.** Activity list/detail tools connect compact diffs to snapshots, proposals, approvals, and rollbacks.
46
+ - **Truthful capability discovery.** `wordpress_search_abilities` labels each result as Respira-native, inhaled, unavailable, or replaced by a safer audited Respira workflow, and returns the exact next action.
47
+ - **Explicit feed recovery.** `woocommerce_get_feed_status` stays read-only while `woocommerce_repair_feed_scheduler` can clear only a confirmed-stale Respira lock, resume the idempotent build, verify the repair, and preserve Action Scheduler history.
48
+ - **Safer plugin activation.** Dependency/version preflight, a signed fresh-process activation probe, REST/frontend boot checks, and narrowly scoped rollback prevent a broken plugin from taking the controlling request down with it.
49
+ - **Generated release integrity.** A public [tool catalog](./TOOL_CATALOG.md) and machine-readable `tool-capabilities.json` are generated from the declarations used in release CI. Missing native or documentation coverage requires an explicit, reviewable exclusion.
50
+
38
51
  ### New in v7.6.2: clearer failures and trustworthy quality signals
39
52
 
40
53
  - **PageSpeed failures keep their real machine-readable reason.** Rate limits, upstream outages, proxy HTML responses, and other structured WordPress errors no longer collapse into a generic failure, so agents can distinguish “retry later” from a Respira defect.
@@ -53,7 +66,7 @@ Respira includes a WordPress plugin that gives AI **native access** to 16 page b
53
66
  - **v7.6.0:** WPML translation tools and Divi Theme Builder header, footer, and body-template tools.
54
67
  - **v7.6.1:** `wordpress_build_mega_menu` creates a complete native Divi 4 or Divi 5 mega-menu hierarchy in one call.
55
68
 
56
- ### v7.5.2: reconnect-safe writes and drop diagnostics
69
+ ### Reconnect-safe writes and drop diagnostics (v7.5.2)
57
70
 
58
71
  - **Writes carry a stable idempotency key.** The connector automatically retries transient reads. It retries a write only when WordPress explicitly confirms replay support; an ambiguous timeout/reset is reported as `respira_write_outcome_unknown` so the agent verifies the target before trying again.
59
72
  - **Telemetry queues and retries independently of tool execution.** A dashboard or network interruption cannot block a WordPress call, and failed metadata batches are retained with bounded exponential backoff.
@@ -103,7 +116,7 @@ Every successful tool response includes `structuredContent`, the raw JSON object
103
116
 
104
117
  ### v6.0 "Storefront" — Context-Aware Tool Filtering
105
118
 
106
- The MCP server automatically filters the tool list based on your site's detected builder and active plugins. A Divi site without WooCommerce sees ~130 tools instead of ~170. Less noise, faster AI responses, lower token usage. Fail-open: if detection fails, the full list is returned.
119
+ The MCP server exposes 169 core tools and 103 WooCommerce add-on tools. It automatically filters the list based on the site's detected builder and active plugins, so clients receive only the useful subset. Fail-open: if detection fails, the full list is returned.
107
120
 
108
121
  | Capability | Respira | Typical WordPress MCP servers |
109
122
  |---|---|---|
@@ -211,7 +224,7 @@ Or run the interactive setup wizard: `npx @respira/wordpress-mcp-server --setup`
211
224
 
212
225
  ### Tool Limit? Use `enabledTools`
213
226
 
214
- Some MCP clients (Antigravity, etc.) have a hard limit on active tools (often 100). Respira exposes 172 tools by default. To stay under the limit, add `enabledTools` to your config — only those tools will appear in the listing:
227
+ Some MCP clients (Antigravity, etc.) have a hard limit on active tools (often 100). Respira can expose up to 272 tools when the WooCommerce add-on is active. To stay under the limit, add `enabledTools` to your config — only those tools will appear in the listing:
215
228
 
216
229
  ```json
217
230
  {
@@ -250,13 +263,13 @@ Unknown tool names now return a proper `CallToolResult` with `isError: true` and
250
263
  ## v6.0 "Storefront" — What's New
251
264
 
252
265
  ### Context-Aware Tool Filtering
253
- The MCP server automatically filters the tool list based on your site's detected builder and active plugins. A Divi site without WooCommerce sees ~130 tools instead of ~170. Less noise, faster AI responses, lower token usage. Fail-open: if detection fails, the full list is returned.
266
+ The MCP server automatically filters its 169 core and 103 WooCommerce tools based on the site's detected builder and active plugins. Less noise, faster AI responses, lower token usage. Fail-open: if detection fails, the full list is returned.
254
267
 
255
268
  ### Flatsome UX Builder (Builder #12)
256
269
  Full round-trip shortcode editing, element-level precision, declarative page creation, and 55-element intelligence. Detected by active theme — mixed-builder sites handled per-page.
257
270
 
258
271
  ### 15 New WooCommerce Commerce Tools
259
- Storefront design intelligence bridges commerce data and page builder visuals. Bulk pricing, catalog health audits, advanced filtering, natural language product search. Total WooCommerce tools: 36.
272
+ Storefront design intelligence bridges commerce data and page builder visuals. Bulk pricing, catalog health audits, advanced filtering, natural language product search. Total WooCommerce tools: 103.
260
273
 
261
274
  ### Element-Level Operations
262
275
  Find, update, move, duplicate, and remove individual elements inside any page builder — by ID, type, CSS class, or content text.
@@ -340,6 +353,23 @@ respira_add_image({ post_id: 42, image_url: "https://..." })
340
353
 
341
354
  ## All Tools
342
355
 
356
+ ### Native Site Editor structures (10 tools) — Next release
357
+
358
+ These are Respira-native WordPress operations, not a copied generic tool catalog. User-owned structures use the same approval, revision, snapshot, no-op detection, read-back, and render-verification contract as template editing. Theme and plugin patterns are inspectable but remain owned by their source.
359
+
360
+ | Tool | Description |
361
+ |---|---|
362
+ | `wordpress_list_site_patterns` | List user, theme, plugin, and core patterns with source, sync status, and fingerprints |
363
+ | `wordpress_get_site_pattern` | Inspect a pattern as a lossless path-addressed block tree |
364
+ | `wordpress_create_site_pattern` | Stage a synced or unsynced user pattern |
365
+ | `wordpress_update_site_pattern` | Apply exact block operations with stale/wrong-target protection |
366
+ | `wordpress_delete_site_pattern` | Delete through approval; referenced patterns are refused by default |
367
+ | `wordpress_list_site_navigations` | List block navigation entities with compact nested items and exact paths |
368
+ | `wordpress_get_site_navigation` | Inspect the full native navigation block document and its references |
369
+ | `wordpress_create_site_navigation` | Stage a native block navigation entity |
370
+ | `wordpress_update_site_navigation` | Target one link/submenu while preserving unknown extension blocks |
371
+ | `wordpress_delete_site_navigation` | Delete through approval; referenced navigation is refused by default |
372
+
343
373
  ### Bricks Deep Intelligence (20 tools) — NEW in v5.4
344
374
  | Tool | Description |
345
375
  |---|---|
@@ -484,12 +514,13 @@ Add any widget to a page in one call:
484
514
  | `respira_switch_site` | Switch active site |
485
515
  | `respira_get_active_site` | Get current site info |
486
516
 
487
- ### WooCommerce Add-on (21 tools)
517
+ ### WooCommerce Add-on (103 tools)
488
518
  Available when the [WooCommerce add-on](https://respira.press/addons/woocommerce) is installed. Included free with Studio and Founder plans.
489
519
 
490
520
  | Category | Tools |
491
521
  |---|---|
492
522
  | **Storefront intelligence** (NEW in v6.0) | `analyze_shop_page`, `analyze_product_page`, `update_product_card_layout`, `add_low_stock_badge`, `add_sale_badge`, `update_checkout_layout` |
523
+ | **Product-card fields** (NEW in 8.0) | `analyze_storefront_card`, `update_storefront_card_field` |
493
524
  | **Catalog operations** (NEW in v6.0) | `list_products_advanced`, `bulk_update_products`, `analyze_catalog_health`, `find_product_by_natural_language` |
494
525
  | **Pricing** (NEW in v6.0) | `bulk_update_prices`, `schedule_sale`, `revert_pricing` |
495
526
  | **Inventory** (NEW in v6.0) | `bulk_update_stock`, `find_low_stock` |
@@ -498,7 +529,9 @@ Available when the [WooCommerce add-on](https://respira.press/addons/woocommerce
498
529
  | **Inventory control** | `get_stock_status`, `update_stock` |
499
530
  | **Product categories** | `list_categories`, `get_category`, `create_category`, `update_category`, `delete_category` |
500
531
  | **Product tags** | `list_tags`, `get_tag`, `create_tag`, `update_tag`, `delete_tag` |
501
- | **Analytics** | `sales_report` |
532
+ | **Analytics** | `sales_report` (deprecated alias), `revenue_summary`, `sales_timeseries`, `top_products`, `orders_summary`, `customers_summary` |
533
+ | **Store configuration** | `get_store_configuration`, `list_payment_gateways`, `list_shipping_zones`, `list_tax_rates` |
534
+ | **Webhooks** | `list_webhooks`, `get_webhook`, `create_webhook`, `update_webhook`, `delete_webhook`, `test_webhook` |
502
535
 
503
536
  ---
504
537
 
@@ -531,19 +564,6 @@ Manage multiple WordPress sites from one config:
531
564
 
532
565
  Switch sites: `respira_switch_site({ siteId: "staging" })`
533
566
 
534
- Every non-global tool also accepts `site_id`. For shared connectors, include it on every call; set `RESPIRA_REQUIRE_SITE_ID=1` to reject multi-site writes that omit it. If two installs share a hostname (for example the root site and `/blog`), keep distinct explicit IDs as shown below. v7.5.5+ also derives distinct IDs from their paths automatically.
535
-
536
- ```json
537
- {
538
- "sites": [
539
- { "id": "brand24-main", "name": "Brand24 staging", "url": "https://stag.brand24.com", "apiKey": "respira_main_key", "default": true },
540
- { "id": "brand24-blog", "name": "Brand24 blog staging", "url": "https://stag.brand24.com/blog", "apiKey": "respira_blog_key" }
541
- ]
542
- }
543
- ```
544
-
545
- For the strongest isolation—especially when several testers work concurrently—use one connector/config per WordPress install. A shared connector is safe when IDs are unique, calls carry `site_id`, and `RESPIRA_REQUIRE_SITE_ID=1` is enabled.
546
-
547
567
  For agencies managing many sites, use the hosted setup at [respira.press/dashboard/mcp](https://www.respira.press/dashboard/mcp) to generate configs and install commands from your account.
548
568
 
549
569
  ---
@@ -782,6 +802,6 @@ MIT © [Respira](https://respira.press)
782
802
  ---
783
803
 
784
804
  <p align="center">
785
- <strong>200+ tools. 16 builders. The AI infrastructure layer for WordPress.</strong><br>
805
+ <strong>169 core tools, 272 with WooCommerce. 16 builders. The AI infrastructure layer for WordPress.</strong><br>
786
806
  <a href="https://respira.press">respira.press</a>
787
807
  </p>
@@ -0,0 +1,288 @@
1
+ # Respira MCP tool catalog
2
+
3
+ <!-- Generated by scripts/check-tool-registry-parity.mjs. Do not edit by hand. -->
4
+
5
+ Generated catalog: **169 core tools**, **105 WooCommerce tools**, **274 total**.
6
+
7
+ The runtime applies site context and per-site governance, so an individual connection may expose a smaller relevant subset.
8
+
9
+ ## WordPress and Respira
10
+
11
+ - `respira_duplicate_with_translations` — write; hosted/stdio
12
+ - `wordpress_abilities_gap_report` — read; hosted/stdio
13
+ - `wordpress_activate_plugin` — write; native + hosted
14
+ - `wordpress_analyze_aeo` — read; native + hosted
15
+ - `wordpress_analyze_images` — read; native + hosted
16
+ - `wordpress_analyze_pagespeed` — read; hosted/stdio
17
+ - `wordpress_analyze_performance` — read; native + hosted
18
+ - `wordpress_analyze_rankmath` — read; native + hosted
19
+ - `wordpress_analyze_readability` — read; native + hosted
20
+ - `wordpress_analyze_seo` — read; native + hosted
21
+ - `wordpress_append_theme_file` — read; hosted/stdio
22
+ - `wordpress_apply_accessibility_fixes` — write; hosted/stdio
23
+ - `wordpress_apply_builder_patch` — write; native + hosted
24
+ - `wordpress_assign_menu_location` — write; native + hosted
25
+ - `wordpress_batch_update` — write; native + hosted
26
+ - `wordpress_begin_session` — read; hosted/stdio
27
+ - `wordpress_build_mega_menu` — write; native + hosted
28
+ - `wordpress_build_page` — write; native + hosted
29
+ - `wordpress_bulk_pages_operation` — write; native + hosted
30
+ - `wordpress_check_seo_issues` — read; native + hosted
31
+ - `wordpress_check_structured_data` — read; native + hosted
32
+ - `wordpress_convert_html_to_builder` — write; native + hosted
33
+ - `wordpress_create_acf_field_group` — write; hosted/stdio
34
+ - `wordpress_create_comment` — write; native + hosted
35
+ - `wordpress_create_custom_post` — write; native + hosted
36
+ - `wordpress_create_design_token` — write; native + hosted
37
+ - `wordpress_create_menu` — write; native + hosted
38
+ - `wordpress_create_menu_item` — write; native + hosted
39
+ - `wordpress_create_page_duplicate` — write; native + hosted
40
+ - `wordpress_create_playbook` — write; hosted/stdio
41
+ - `wordpress_create_post_duplicate` — write; native + hosted
42
+ - `wordpress_create_post_type` — write; hosted/stdio
43
+ - `wordpress_create_site_navigation` — write; native + hosted
44
+ - `wordpress_create_site_pattern` — write; native + hosted
45
+ - `wordpress_create_site_template` — write; native + hosted
46
+ - `wordpress_create_taxonomy` — write; hosted/stdio
47
+ - `wordpress_create_term` — write; native + hosted
48
+ - `wordpress_create_theme_builder_template` — write; native + hosted
49
+ - `wordpress_create_translation` — write; native + hosted
50
+ - `wordpress_create_user` — write; native + hosted
51
+ - `wordpress_deactivate_plugin` — write; native + hosted
52
+ - `wordpress_delete_acf_field_group` — write; hosted/stdio
53
+ - `wordpress_delete_comment` — write; native + hosted
54
+ - `wordpress_delete_custom_post` — write; native + hosted
55
+ - `wordpress_delete_design_token` — write; native + hosted
56
+ - `wordpress_delete_media` — write; native + hosted
57
+ - `wordpress_delete_menu` — write; native + hosted
58
+ - `wordpress_delete_menu_item` — write; native + hosted
59
+ - `wordpress_delete_option` — write; native + hosted
60
+ - `wordpress_delete_page` — write; native + hosted
61
+ - `wordpress_delete_playbook` — write; hosted/stdio
62
+ - `wordpress_delete_plugin` — write; native + hosted
63
+ - `wordpress_delete_post` — write; native + hosted
64
+ - `wordpress_delete_post_type` — write; hosted/stdio
65
+ - `wordpress_delete_site_navigation` — write; native + hosted
66
+ - `wordpress_delete_site_pattern` — write; native + hosted
67
+ - `wordpress_delete_taxonomy` — write; hosted/stdio
68
+ - `wordpress_delete_term` — write; native + hosted
69
+ - `wordpress_delete_user` — write; native + hosted
70
+ - `wordpress_diagnose_connection` — read; hosted/stdio
71
+ - `wordpress_diff_snapshots` — read; native + hosted
72
+ - `wordpress_duplicate_element` — write; native + hosted
73
+ - `wordpress_end_session` — read; hosted/stdio
74
+ - `wordpress_extract_builder_content` — read; native + hosted
75
+ - `wordpress_find_builder_targets` — read; native + hosted
76
+ - `wordpress_find_element` — read; native + hosted
77
+ - `wordpress_get_accessibility_scan` — read; hosted/stdio
78
+ - `wordpress_get_active_site` — read; hosted/stdio
79
+ - `wordpress_get_activity` — read; native + hosted
80
+ - `wordpress_get_builder_info` — read; native + hosted
81
+ - `wordpress_get_builder_inline_schemas` — read; hosted/stdio
82
+ - `wordpress_get_comment` — read; native + hosted
83
+ - `wordpress_get_core_web_vitals` — read; native + hosted
84
+ - `wordpress_get_custom_post` — read; native + hosted
85
+ - `wordpress_get_divi_migration_readiness` — read; hosted/stdio
86
+ - `wordpress_get_media` — read; native + hosted
87
+ - `wordpress_get_menu` — read; native + hosted
88
+ - `wordpress_get_menu_item` — read; native + hosted
89
+ - `wordpress_get_option` — read; native + hosted
90
+ - `wordpress_get_page_outline` — read; hosted/stdio
91
+ - `wordpress_get_playbook` — read; hosted/stdio
92
+ - `wordpress_get_post_type` — read; native + hosted
93
+ - `wordpress_get_server_compatibility` — read; native + hosted
94
+ - `wordpress_get_site_context` — read; native + hosted
95
+ - `wordpress_get_site_navigation` — read; native + hosted
96
+ - `wordpress_get_site_pattern` — read; native + hosted
97
+ - `wordpress_get_site_template` — read; native + hosted
98
+ - `wordpress_get_snapshot` — read; native + hosted
99
+ - `wordpress_get_taxonomy` — read; native + hosted
100
+ - `wordpress_get_term` — read; native + hosted
101
+ - `wordpress_get_theme_docs` — read; native + hosted
102
+ - `wordpress_get_translations` — read; native + hosted
103
+ - `wordpress_get_user` — read; native + hosted
104
+ - `wordpress_inject_builder_content` — write; native + hosted
105
+ - `wordpress_install_plugin` — write; native + hosted
106
+ - `wordpress_invoke_ability` — write; hosted/stdio
107
+ - `wordpress_list_accessibility_scans` — read; hosted/stdio
108
+ - `wordpress_list_acf_field_groups` — read; hosted/stdio
109
+ - `wordpress_list_activity` — read; native + hosted
110
+ - `wordpress_list_comments` — read; native + hosted
111
+ - `wordpress_list_custom_post_types` — read; hosted/stdio
112
+ - `wordpress_list_custom_posts` — read; native + hosted
113
+ - `wordpress_list_custom_taxonomies` — read; hosted/stdio
114
+ - `wordpress_list_design_tokens` — read; native + hosted
115
+ - `wordpress_list_media` — read; native + hosted
116
+ - `wordpress_list_menu_items` — read; native + hosted
117
+ - `wordpress_list_menu_locations` — read; native + hosted
118
+ - `wordpress_list_menus` — read; native + hosted
119
+ - `wordpress_list_options` — read; native + hosted
120
+ - `wordpress_list_pages` — read; native + hosted
121
+ - `wordpress_list_playbooks` — read; hosted/stdio
122
+ - `wordpress_list_plugins` — read; native + hosted
123
+ - `wordpress_list_post_types` — read; native + hosted
124
+ - `wordpress_list_posts` — read; native + hosted
125
+ - `wordpress_list_site_navigations` — read; native + hosted
126
+ - `wordpress_list_site_patterns` — read; native + hosted
127
+ - `wordpress_list_site_templates` — read; native + hosted
128
+ - `wordpress_list_sites` — read; hosted/stdio
129
+ - `wordpress_list_snapshots` — read; native + hosted
130
+ - `wordpress_list_taxonomies` — read; native + hosted
131
+ - `wordpress_list_terms` — read; native + hosted
132
+ - `wordpress_list_theme_builder_templates` — read; native + hosted
133
+ - `wordpress_list_users` — read; native + hosted
134
+ - `wordpress_make_responsive` — read; hosted/stdio
135
+ - `wordpress_move_element` — write; native + hosted
136
+ - `wordpress_read_page` — read; native + hosted
137
+ - `wordpress_read_post` — read; native + hosted
138
+ - `wordpress_read_theme_file` — read; hosted/stdio
139
+ - `wordpress_redeem_token` — write; hosted/stdio
140
+ - `wordpress_remove_element` — write; native + hosted
141
+ - `wordpress_reorder_elements` — write; native + hosted
142
+ - `wordpress_report_issue` — read; hosted/stdio
143
+ - `wordpress_reset_site_template` — write; native + hosted
144
+ - `wordpress_restore_session` — write; hosted/stdio
145
+ - `wordpress_restore_snapshot` — write; native + hosted
146
+ - `wordpress_run_pagespeed_audit` — read; hosted/stdio
147
+ - `wordpress_scan_page_accessibility` — read; hosted/stdio
148
+ - `wordpress_search_abilities` — read; native + hosted
149
+ - `wordpress_search_docs` — read; hosted/stdio
150
+ - `wordpress_search_stock_images` — read; native + hosted
151
+ - `wordpress_sideload_image` — write; native + hosted
152
+ - `wordpress_switch_site` — write; native + hosted
153
+ - `wordpress_update_acf_field_group` — write; hosted/stdio
154
+ - `wordpress_update_comment` — write; native + hosted
155
+ - `wordpress_update_custom_post` — write; native + hosted
156
+ - `wordpress_update_design_token` — write; native + hosted
157
+ - `wordpress_update_element` — write; native + hosted
158
+ - `wordpress_update_media` — write; native + hosted
159
+ - `wordpress_update_media_batch` — write; hosted/stdio
160
+ - `wordpress_update_menu` — write; native + hosted
161
+ - `wordpress_update_menu_item` — write; native + hosted
162
+ - `wordpress_update_module` — write; native + hosted
163
+ - `wordpress_update_option` — write; native + hosted
164
+ - `wordpress_update_page` — write; native + hosted
165
+ - `wordpress_update_playbook` — write; hosted/stdio
166
+ - `wordpress_update_plugin` — write; native + hosted
167
+ - `wordpress_update_post` — write; native + hosted
168
+ - `wordpress_update_post_type` — write; hosted/stdio
169
+ - `wordpress_update_site_navigation` — write; native + hosted
170
+ - `wordpress_update_site_pattern` — write; native + hosted
171
+ - `wordpress_update_site_template` — write; native + hosted
172
+ - `wordpress_update_taxonomy` — write; hosted/stdio
173
+ - `wordpress_update_term` — write; native + hosted
174
+ - `wordpress_update_theme_builder_template` — write; native + hosted
175
+ - `wordpress_update_translation` — write; native + hosted
176
+ - `wordpress_update_user` — write; native + hosted
177
+ - `wordpress_upload_media` — write; native + hosted
178
+ - `wordpress_validate_security` — read; native + hosted
179
+ - `wordpress_write_theme_file` — read; hosted/stdio
180
+
181
+ ## WooCommerce add-on
182
+
183
+ - `woocommerce_add_low_stock_badge` — write; native + hosted
184
+ - `woocommerce_add_order_note` — write; native + hosted
185
+ - `woocommerce_add_sale_badge` — write; native + hosted
186
+ - `woocommerce_add_subscription_note` — write; native + hosted
187
+ - `woocommerce_agent_orders_report` — read; native + hosted
188
+ - `woocommerce_analyze_product_page` — read; native + hosted
189
+ - `woocommerce_analyze_shop_page` — read; native + hosted
190
+ - `woocommerce_analyze_storefront_card` — read; native + hosted
191
+ - `woocommerce_bulk_update_prices` — write; native + hosted
192
+ - `woocommerce_bulk_update_products` — write; native + hosted
193
+ - `woocommerce_bulk_update_stock` — write; native + hosted
194
+ - `woocommerce_catalog_ai_readiness` — read; native + hosted
195
+ - `woocommerce_catalog_health` — read; native + hosted
196
+ - `woocommerce_configurator_status` — read; native + hosted
197
+ - `woocommerce_configure_feed` — write; native + hosted
198
+ - `woocommerce_create_brand` — write; native + hosted
199
+ - `woocommerce_create_cart_link` — write; native + hosted
200
+ - `woocommerce_create_category` — write; native + hosted
201
+ - `woocommerce_create_coupon` — write; native + hosted
202
+ - `woocommerce_create_customer` — write; native + hosted
203
+ - `woocommerce_create_global_attribute` — write; native + hosted
204
+ - `woocommerce_create_order_refund` — write; native + hosted
205
+ - `woocommerce_create_product` — write; native + hosted
206
+ - `woocommerce_create_tag` — write; native + hosted
207
+ - `woocommerce_create_variation` — write; native + hosted
208
+ - `woocommerce_create_webhook` — write; native + hosted
209
+ - `woocommerce_customers_summary` — read; native + hosted
210
+ - `woocommerce_delete_brand` — write; native + hosted
211
+ - `woocommerce_delete_category` — write; native + hosted
212
+ - `woocommerce_delete_tag` — write; native + hosted
213
+ - `woocommerce_delete_webhook` — write; native + hosted
214
+ - `woocommerce_duplicate_product` — write; native + hosted
215
+ - `woocommerce_find_low_stock` — read; native + hosted
216
+ - `woocommerce_find_product` — read; native + hosted
217
+ - `woocommerce_generate_feed` — write; native + hosted
218
+ - `woocommerce_generate_variations` — write; native + hosted
219
+ - `woocommerce_get_booking` — read; native + hosted
220
+ - `woocommerce_get_brand` — read; native + hosted
221
+ - `woocommerce_get_category` — read; native + hosted
222
+ - `woocommerce_get_configurator_attribute_items` — read; native + hosted
223
+ - `woocommerce_get_feed_status` — read; native + hosted
224
+ - `woocommerce_get_membership` — read; native + hosted
225
+ - `woocommerce_get_order` — read; native + hosted
226
+ - `woocommerce_get_order_refunds` — read; native + hosted
227
+ - `woocommerce_get_plugin_state` — read; native + hosted
228
+ - `woocommerce_get_product` — read; native + hosted
229
+ - `woocommerce_get_product_configurator` — read; native + hosted
230
+ - `woocommerce_get_stock_status` — read; native + hosted
231
+ - `woocommerce_get_store_configuration` — read; native + hosted
232
+ - `woocommerce_get_subscription` — read; native + hosted
233
+ - `woocommerce_get_tag` — read; native + hosted
234
+ - `woocommerce_get_webhook` — read; native + hosted
235
+ - `woocommerce_list_bookings` — read; native + hosted
236
+ - `woocommerce_list_brands` — read; native + hosted
237
+ - `woocommerce_list_categories` — read; native + hosted
238
+ - `woocommerce_list_configurator_attributes` — read; native + hosted
239
+ - `woocommerce_list_coupons` — read; native + hosted
240
+ - `woocommerce_list_membership_plans` — read; native + hosted
241
+ - `woocommerce_list_memberships` — read; native + hosted
242
+ - `woocommerce_list_orders` — read; native + hosted
243
+ - `woocommerce_list_payment_gateways` — read; native + hosted
244
+ - `woocommerce_list_products` — read; native + hosted
245
+ - `woocommerce_list_products_advanced` — read; native + hosted
246
+ - `woocommerce_list_shipping_zones` — read; native + hosted
247
+ - `woocommerce_list_subscriptions` — read; native + hosted
248
+ - `woocommerce_list_tags` — read; native + hosted
249
+ - `woocommerce_list_tax_rates` — read; native + hosted
250
+ - `woocommerce_list_webhooks` — read; native + hosted
251
+ - `woocommerce_orders_summary` — read; native + hosted
252
+ - `woocommerce_product_ai_readiness` — read; native + hosted
253
+ - `woocommerce_readiness_fixlist` — read; native + hosted
254
+ - `woocommerce_repair_feed_scheduler` — write; native + hosted
255
+ - `woocommerce_reschedule_booking` — write; native + hosted
256
+ - `woocommerce_revenue_summary` — read; native + hosted
257
+ - `woocommerce_revert_pricing` — write; native + hosted
258
+ - `woocommerce_sales_report` — read; native + hosted
259
+ - `woocommerce_sales_timeseries` — read; native + hosted
260
+ - `woocommerce_schedule_sale` — write; native + hosted
261
+ - `woocommerce_set_configurator_attribute_items` — write; native + hosted
262
+ - `woocommerce_set_feed_category_mapping` — write; native + hosted
263
+ - `woocommerce_set_image_alt` — write; native + hosted
264
+ - `woocommerce_set_membership_end_date` — write; native + hosted
265
+ - `woocommerce_set_plugin_state` — write; native + hosted
266
+ - `woocommerce_set_product_attributes` — write; native + hosted
267
+ - `woocommerce_set_product_configurator` — write; native + hosted
268
+ - `woocommerce_set_variation_gallery` — write; native + hosted
269
+ - `woocommerce_test_webhook` — read; native + hosted
270
+ - `woocommerce_top_products` — read; native + hosted
271
+ - `woocommerce_update_booking_status` — write; native + hosted
272
+ - `woocommerce_update_brand` — write; native + hosted
273
+ - `woocommerce_update_category` — write; native + hosted
274
+ - `woocommerce_update_checkout_layout` — write; native + hosted
275
+ - `woocommerce_update_coupon` — write; native + hosted
276
+ - `woocommerce_update_customer` — write; native + hosted
277
+ - `woocommerce_update_membership_status` — write; native + hosted
278
+ - `woocommerce_update_order_status` — write; native + hosted
279
+ - `woocommerce_update_product` — write; native + hosted
280
+ - `woocommerce_update_product_card_layout` — write; native + hosted
281
+ - `woocommerce_update_stock` — write; native + hosted
282
+ - `woocommerce_update_storefront_card_field` — write; native + hosted
283
+ - `woocommerce_update_subscription_dates` — write; native + hosted
284
+ - `woocommerce_update_subscription_status` — write; native + hosted
285
+ - `woocommerce_update_tag` — write; native + hosted
286
+ - `woocommerce_update_webhook` — write; native + hosted
287
+ - `woocommerce_validate_feed` — read; native + hosted
288
+
@@ -262,68 +262,4 @@ test('diagnose_connection reports rest_route_fallback_worked: true when applicab
262
262
  restoreAdapter();
263
263
  }
264
264
  });
265
- // Regression test for ticket 73b64e82: diagnoseConnection's own probes run
266
- // over a bare axios.request() and never touched the interceptor-wrapped
267
- // client, so a confirmed rest_route_fallback_worked: true never actually
268
- // flipped the sticky flag — every subsequent normal tool call kept retrying
269
- // the shadowed pretty path from scratch instead of going straight to
270
- // ?rest_route=, even though the diagnostic had already proven it works.
271
- test('diagnose_connection sticky flag: a confirmed rest_route_fallback_worked applies to the NEXT tool call, not just the report', async () => {
272
- installMockAdapter();
273
- try {
274
- const client = new WordPressClient(buildConfig());
275
- setHandler((config) => {
276
- const url = config.url || '';
277
- const baseURL = config.baseURL || '';
278
- const fullUrl = url.startsWith('http') ? url : `${baseURL}${url}`;
279
- if (/\/wp-json\/?$/.test(fullUrl) || fullUrl.endsWith('/wp-json/')) {
280
- return {
281
- status: 200,
282
- headers: { 'content-type': 'application/json' },
283
- data: { namespaces: ['respira/v1'] },
284
- };
285
- }
286
- if (/[?&]rest_route=/.test(fullUrl)) {
287
- return {
288
- status: 200,
289
- headers: { 'content-type': 'application/json' },
290
- data: { builder: 'elementor' },
291
- };
292
- }
293
- if (/\/wp-json\/respira\//.test(fullUrl)) {
294
- return {
295
- status: 200,
296
- headers: { 'content-type': 'text/html; charset=UTF-8' },
297
- data: HOMEPAGE_HTML,
298
- };
299
- }
300
- return {
301
- status: 404,
302
- headers: { 'content-type': 'application/json' },
303
- data: { code: 'rest_no_route' },
304
- };
305
- });
306
- // Before diagnosing, the sticky flag is off (nothing has proven the
307
- // fallback works yet on this client instance).
308
- assert.equal(client.useRestRouteFallback, false);
309
- const report = await client.diagnoseConnection({});
310
- assert.equal(report.rest_route_fallback_worked, true);
311
- // The diagnostic's own finding must flip the sticky flag immediately,
312
- // not just describe it in the report.
313
- assert.equal(client.useRestRouteFallback, true, 'diagnoseConnection should apply its own finding to the client');
314
- assert.equal(report.rest_route_fallback_active, true, 'report should reflect the now-active sticky flag');
315
- const callsBeforeNextTool = callLog.length;
316
- const info = await client.getBuilderInfo();
317
- assert.deepEqual(info, { builder: 'elementor' });
318
- // The next normal tool call must go straight to ?rest_route= — it must
319
- // NOT re-probe the pretty path that diagnose_connection already proved
320
- // is shadowed.
321
- const newCalls = callLog.slice(callsBeforeNextTool);
322
- assert.equal(newCalls.length, 1, 'sticky flag from diagnose_connection should skip the pretty-path probe entirely');
323
- assert.match(newCalls[0].url, /[?&]rest_route=/, 'post-diagnose tool call should be in rest_route form');
324
- }
325
- finally {
326
- restoreAdapter();
327
- }
328
- });
329
265
  //# sourceMappingURL=rest-route-fallback.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest-route-fallback.test.js","sourceRoot":"","sources":["../../src/__tests__/rest-route-fallback.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAezD,MAAM,OAAO,GAAqF,EAAE,CAAC;AACrG,IAAI,cAAc,GAAuB,IAAI,CAAC;AAE9C,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAE/C,SAAS,kBAAkB;IACzB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACnB,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;QACxC,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE;YAC9C,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;YACxB,MAAM;YACN,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC,CAAC;IACN,CAAC,CAAQ,CAAC;AACZ,CAAC;AAED,SAAS,cAAc;IACrB,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;IACzC,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,CAAc;IAChC,cAAc,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,SAAuC,EAAE;IAC5D,OAAO;QACL,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,aAAa,GACjB,6IAA6I,CAAC;AAEhJ,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF,IAAI,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;IACtH,kBAAkB,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;YACpB,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;YAElE,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,sCAAsC;gBACtC,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;iBACrE,CAAC;YACJ,CAAC;YAED,4BAA4B;YAC5B,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;gBACvD,IAAI,EAAE,aAAa;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAExF,gCAAgC;QAChC,iEAAiE;QACjE,mFAAmF;QACnF,wEAAwE;QACxE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,iCAAiC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,kEAAkE;QAClE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YACpD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;YAChB,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,sBAAsB,EAAE,qDAAqD,CAAC,CAAC;QAC1G,iCAAiC;QACjC,MAAM,CAAC,EAAE,CACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAClD,iDAAiD,CAClD,CAAC;QACF,iGAAiG;QACjG,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,EAAE,uDAAuD,IAAI,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,wDAAwD;QACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;IACzF,kBAAkB,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YAChB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;YACvD,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAM,GAAQ,IAAI,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,yEAAyE,CAAC,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;QACrD,uCAAuC;QACvC,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9E,iCAAiC;QACjC,MAAM,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5F,mDAAmD;QACnD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;IAC9F,kBAAkB,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;YACpB,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;YAElE,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;iBAC7C,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;gBACvD,IAAI,EAAE,aAAa;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAEhD,mFAAmF;QACnF,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,0DAA0D,CAAC,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,EAAE,0CAA0C,CAAC,CAAC;IAC/F,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAC/E,kBAAkB,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE1E,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;YACpB,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;YAElE,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;iBACtD,CAAC;YACJ,CAAC;YACD,wEAAwE;YACxE,MAAM,IAAI,KAAK,CAAC,oDAAoD,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,EAAE,kDAAkD,CAAC,CAAC;QACpG,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAEzE,mDAAmD;QACnD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,EAAE,iCAAiC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;IAC9F,kBAAkB,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;YACpB,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;YAElE,0DAA0D;YAC1D,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnE,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE;iBACrC,CAAC;YACJ,CAAC;YACD,mCAAmC;YACnC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;iBAC/B,CAAC;YACJ,CAAC;YACD,yDAAyD;YACzD,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;oBACvD,IAAI,EAAE,aAAa;iBACpB,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAChC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAQ,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAChD,oFAAoF;QACpF,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,yBAAyB,CAAC,CAAC;QAChG,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAC;QAC3D,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,kDAAkD,CAAC,CAAC;QACzE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC/C,0CAA0C;QAC1C,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACtF,6DAA6D,CAC9D,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,4EAA4E;AAC5E,qEAAqE;AACrE,wEAAwE;AACxE,IAAI,CAAC,4HAA4H,EAAE,KAAK,IAAI,EAAE;IAC5I,kBAAkB,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;QAElD,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE;YACpB,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;YAElE,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnE,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE;iBACrC,CAAC;YACJ,CAAC;YACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;iBAC/B,CAAC;YACJ,CAAC;YACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE;oBACvD,IAAI,EAAE,aAAa;iBACpB,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAChC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,oEAAoE;QACpE,+CAA+C;QAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAQ,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QAEtD,sEAAsE;QACtE,sCAAsC;QACtC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,EAAE,+DAA+D,CAAC,CAAC;QACjH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,EAAE,kDAAkD,CAAC,CAAC;QAE1G,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAEjD,uEAAuE;QACvE,uEAAuE;QACvE,eAAe;QACf,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,iFAAiF,CAAC,CAAC;QACpH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,EAAE,sDAAsD,CAAC,CAAC;IAC3G,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"rest-route-fallback.test.js","sourceRoot":"","sources":["../../src/__tests__/rest-route-fallback.test.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,2 @@
1
- /**
2
- * Ticket fc4fa49e: "Rejected builder writes read as success to the agent."
3
- *
4
- * Root-cause trace found the response SHAPE was already correct end to end
5
- * (WP_Error carries an explicit status, the 5xx-retry interceptor never fires
6
- * for 401/403, and the MCP tool-call handler always returns isError:true /
7
- * throws). But `handleError()`'s 401 branch had one real, narrow gap: unlike
8
- * the 403 branch (`formatErrorWithInstructions`) and the generic catch-all,
9
- * it returned early WITHOUT stamping the WP_Error's machine-readable code
10
- * (`respira_invalid_site_token`, `respira_token_stale`, `license_inactive`,
11
- * a rotated/deactivated dashboard site token after a trial lapse, ...) onto
12
- * `error.name`. That name is what `mcp_tool_events` telemetry and the
13
- * admin/mcp-quality dashboard use to classify a failure — losing it meant
14
- * every dashboard-site-token 401 collapsed into an opaque 'Error' bucket
15
- * instead of surfacing which specific auth failure occurred.
16
- *
17
- * This test locks in that the 401 branch of handleError() now stamps
18
- * error.name from data.code, matching the 403 / generic-catch-all branches.
19
- */
20
1
  export {};
21
2
  //# sourceMappingURL=site-token-401-error-classification.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"site-token-401-error-classification.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/site-token-401-error-classification.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
1
+ {"version":3,"file":"site-token-401-error-classification.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/site-token-401-error-classification.test.ts"],"names":[],"mappings":""}