@lacneu/wix-openclaw 0.4.0 → 0.5.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/CHANGELOG.md CHANGED
@@ -7,6 +7,112 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.5.1] - 2026-08-29
11
+
12
+ Two corrections to the accessibility family, both in the one thing it exists to
13
+ get right: what an answer is allowed to claim.
14
+
15
+ ### Fixed
16
+
17
+ - **A result page implied the scan had been whole.** `wix_a11y_list_findings`
18
+ and `wix_a11y_list_page_summaries` carried no trace of the scan's status, so
19
+ on a `PARTIALLY_COMPLETED` scan the findings were real while the pages that
20
+ failed to scan were invisible from those calls — and an empty list read as a
21
+ finished audit, which is precisely the report this family exists to prevent.
22
+ Both now carry `scanCompletenessNotEstablishedHere`, and their caveat sends
23
+ the caller to `wix_a11y_get_scan` for `resultIsWhole` before describing a
24
+ target as checked.
25
+ - **An empty category string counted as a filter.** `categories: [""]` sent
26
+ `filter.categories=` and the answer then described itself as filtered: if Wix
27
+ ignores the empty value the caller reads unfiltered findings as a subset, and
28
+ if Wix rejects it the call fails for nothing. Empty entries are dropped before
29
+ the request is built and before `filtered` is computed, and the schema now
30
+ requires a non-empty string.
31
+
32
+ ## [0.5.0] - 2026-08-29
33
+
34
+ Six accessibility tools, off by default behind **their own** switch. The 0.4
35
+ line could correct a site's SEO tags and say nothing about whether the site
36
+ could be used with a screen reader; Wix runs an accessibility scan of its own,
37
+ and this release reads it.
38
+
39
+ Nothing in this family writes to the site, so there are no tokens and no
40
+ refusals here. The discipline moved instead to what an answer is allowed to
41
+ CLAIM — see below.
42
+
43
+ ### Added — Accessibility: Wix runs the scan, this reads the result
44
+
45
+ > Developer Preview, and **off by default behind its own switch**,
46
+ > `enableAccessibilityTools`. Nothing in this family writes to the site.
47
+
48
+ Six tools: `wix_a11y_list_page_collections`, `wix_a11y_run_scan`,
49
+ `wix_a11y_get_scan`, `wix_a11y_get_latest_scan`,
50
+ `wix_a11y_list_page_summaries` and `wix_a11y_list_findings`.
51
+
52
+ ### The discipline moves, because the danger moved
53
+
54
+ The SEO writes needed tokens because they destroyed the previous value of what
55
+ they wrote. Nothing here destroys anything — so the way this family hurts a user
56
+ is different, and Wix names it: **a page is clear only when it has no findings,
57
+ its page status is completed, and its coverage confirms the relevant checks
58
+ ran**. A page that failed to scan reports zero findings too, because nothing was
59
+ read.
60
+
61
+ So no answer here can be skimmed into a clean one. Page summaries carry `clear`,
62
+ valued `true`, `false` or `"unknown"`, instead of a bare count — and a `true`
63
+ comes with `clearFor`, naming the checks it is true for, because coverage says
64
+ which checks ran, not that the right ones did. The `"unknown"` pages are
65
+ counted for you. A scan reports `resultIsWhole`;
66
+ `PARTIALLY_COMPLETED` never collapses into success, a running scan says its
67
+ numbers are progress rather than a result, and a failed scan refuses to be a
68
+ result at all. An unfiltered empty findings list says that an absent finding is
69
+ not a rule that passed.
70
+
71
+ ### `attempt` is what tells a retry apart from a new scan
72
+
73
+ Wix takes a caller-generated idempotency key so a lost response cannot create
74
+ duplicate work, and requires a **new** key for a genuinely new scan — verifying
75
+ a fix is a new scan, not a retry. The key is derived from the site, the target
76
+ and the `attempt` label the caller passes. A random key per call would satisfy
77
+ the schema and make the guarantee inert against a 5-per-minute limit; deriving
78
+ it from the target alone would turn every verification into a retry that hands
79
+ back the stale result.
80
+
81
+ ### Recovery paths that would otherwise be unreachable
82
+
83
+ `SCAN_ALREADY_IN_PROGRESS` and `SCAN_STATE_UNKNOWN` carry a scan id the caller
84
+ is meant to poll. Left inside a thrown message, the only move an agent has left
85
+ is to start a duplicate — so those errors return the id and the instruction not
86
+ to. `SCAN_SIZE_LIMIT_EXCEEDED` returns with an explicit ban on describing the
87
+ site as fully scanned.
88
+
89
+ ### The SDK view is not the wire view
90
+
91
+ The Wix SDK renames three keys coming back from REST — `id` → `_id`,
92
+ `createdDate` → `_createdDate`, `updatedDate` → `_updatedDate`. This plugin
93
+ speaks REST directly, so the wire says `id`. Every field name here was taken
94
+ from the SDK typings, which made that rename the one place the typings are not
95
+ the contract: reading `_id` returned `undefined` on every real call, so a
96
+ started scan handed back no id and the polling flow had nothing to poll. The
97
+ tests agreed, because the fixtures had been shaped from the same typings.
98
+
99
+ Query encoding came from the same source and had the same shape of trap: Wix's
100
+ serialiser flattens nested objects to dotted keys (`filter.severity`) but emits
101
+ a repeated field as a **repeated key** (`filter.categories=A&filter.categories=B`).
102
+ An indexed `filter.categories.0` is a different parameter, and a filter the API
103
+ ignores returns unfiltered findings that the tool would then label filtered.
104
+
105
+ ### Fixed
106
+
107
+ - **A raw NUL byte had been written into a source file.** It was a legitimate
108
+ HMAC separator written the wrong way, and its effect was not on the running
109
+ code: `grep` treats a file containing NUL as binary and answers **nothing**,
110
+ silently, so searches reported symbols absent that were present. Written as
111
+ an escape now, and a guard rejects any raw control character in `src/` and
112
+ `test/` — the same class as a stray U+2028 that once landed in a test regex.
113
+ - Stale counts in the SEO opt-in comments in `src/config.ts` and the manifest
114
+ test, still saying four tools write irreversibly when eleven do.
115
+
10
116
  ## [0.4.0] - 2026-08-29
11
117
 
12
118
  Ten more `wix_seo_*` tools, still **off by default**, close the other half of
package/README.md CHANGED
@@ -15,10 +15,12 @@
15
15
  ## Overview
16
16
 
17
17
  `wix-openclaw` is an OpenClaw plugin that lets your agent operate a Wix site
18
- through the official Wix REST API. It registers ~60 tools split across a dozen
19
- Wix products (Blog, CMS Data, Forms, Bookings, Contacts, Events, Reviews, FAQ,
20
- Multilingual, Sites, Site Media, SEO), plus a `wix_design_brief` helper that
21
- turns loose textual briefs into structured markdown artefacts.
18
+ through the official Wix REST API. It registers **50 tools by default** across a
19
+ dozen Wix products (Blog, CMS Data, Forms, Bookings, Contacts, Events, Reviews,
20
+ FAQ, Multilingual, Sites, Site Media), plus a `wix_design_brief` helper that
21
+ turns loose textual briefs into structured markdown artefacts. Two families are
22
+ opt-in and add to that: SEO (`enableSeoTools`, 19 tools) and accessibility
23
+ (`enableAccessibilityTools`, 6 tools) — **75 with both**.
22
24
 
23
25
  Every tool funnels through a single authenticated HTTP client that:
24
26
 
@@ -190,6 +192,18 @@ the target site:
190
192
  each of the eleven writing tools refuses until what it would destroy, be it a
191
193
  redirect, a tag or a template, has been named and acknowledged.
192
194
 
195
+ - [ ] **Manage Accessibility Scans** — **only if you set
196
+ `enableAccessibilityTools: true`**, which registers six tools. None of them
197
+ writes to the site: Wix runs the scan, the plugin reads the result. **The
198
+ scope identifier for this permission is not published in the API reference
199
+ and is NOT recorded here** — the last time this README guessed a Wix
200
+ permission name it invented one that does not exist, so this line stays empty
201
+ until the exact label is read off the Wix permissions page. Note that reading
202
+ page collections or past results does **not** prove the key may start a scan:
203
+ Wix states that starting one needs this permission specifically, and answers
204
+ `403` / `PERMISSION_DENIED` otherwise — which the tools surface as a
205
+ permission problem, never as an empty site.
206
+
193
207
  - [ ] **Pricing Plans** — if you sell subscription packages
194
208
  - [ ] **Wix Stores** + **Wix eCommerce** — if you sell physical/digital
195
209
  products. Without these, the `wix_*` tools that touch e-commerce
@@ -241,6 +255,7 @@ columns and remove the matching tools from your agent's allow-list.
241
255
  | `wix_faq_*` | Manage FAQ | FAQ tooling |
242
256
  | `wix_multilingual_*` | Multilingual Translation Schema Read | Translation reads |
243
257
  | `wix_seo_*` (all nineteen) | Manage SEO (`SCOPE.PROMOTE.MANAGE-SEO`) | SEO audit **and** redirect changes — Wix has no read-only SEO scope, so this one permission covers both |
258
+ | `wix_a11y_*` (all six) | Manage Accessibility Scans (identifier not published — read it off the Wix permissions page) | Starting a scan. Reading collections or stored results does not imply it |
244
259
  | `wix_design_brief` | _(none — no API call)_ | Always |
245
260
 
246
261
  ### Wix app installation requirements
@@ -565,6 +580,65 @@ delete it, then create it carrying **every** field over — an omitted field is
565
580
  filled with its default, not its previous value. To find one, list them all and
566
581
  filter client-side.
567
582
 
583
+ ### Accessibility
584
+
585
+ > **Developer Preview, and OFF by default — separately from SEO.** The Wix
586
+ > Accessibility Scans endpoints are in Developer Preview and may change without
587
+ > notice. Nothing here writes to the site, so there is no approval to give and
588
+ > nothing to undo; the switch exists because starting a scan needs its own Wix
589
+ > permission, which the SEO scope does not grant. Set
590
+ > `enableAccessibilityTools: true` to opt in.
591
+ > _Contract read from the public Introduction, Sample Flows and agent Skill
592
+ > pages, and from the published SDK package
593
+ > `@wix/auto_sdk_accessibility_accessibility-scans`, whose own host mapping
594
+ > gives the REST prefix `/accessibility/v1/accessibility-scans` verbatim. The
595
+ > per-method reference pages are listed in the Wix menu but return 404, so no
596
+ > field name here was taken from a rendered page — verified 2026-08-29._
597
+
598
+ Wix runs the scan; these tools start it and read what it found.
599
+
600
+ | Tool | What it does | Approval | Validated |
601
+ |---|---|---|---|
602
+ | `wix_a11y_list_page_collections` | The page collections this site supports right now — pass a `collectionId` back unchanged | — | schema |
603
+ | `wix_a11y_run_scan` | Start a scan of one target: the site, one page, or one collection. Returns a scan id immediately | — | schema |
604
+ | `wix_a11y_get_scan` | Poll target: lifecycle, progress, aggregate totals. No pages, no findings | — | schema |
605
+ | `wix_a11y_get_latest_scan` | The most recent stored scan for a target, without starting a new one | — | schema |
606
+ | `wix_a11y_list_page_summaries` | Every discovered page, including clear ones and ones that failed to scan | — | schema |
607
+ | `wix_a11y_list_findings` | The actionable findings, filterable by page, rule, severity or category | — | schema |
608
+
609
+ **What makes a page clear, and why it takes three conditions.**
610
+
611
+ Wix states it plainly: a page is clear only when it has no findings, **its page
612
+ status is completed**, and **its coverage confirms the relevant checks ran**. A
613
+ page that failed to scan also reports zero findings — because nothing was read,
614
+ not because nothing is wrong. So every page summary carries `clear`, valued
615
+ `true`, `false` or `"unknown"`, rather than a bare count — with `clearFor`
616
+ naming the checks a `true` is true *for* — a scan reports `resultIsWhole`, and
617
+ `PARTIALLY_COMPLETED` never collapses into success. The
618
+ failure mode this family has is not data loss, it is an agent reporting a clean
619
+ site from an incomplete scan.
620
+
621
+ **Scans are asynchronous, and these tools do not wait.** `wix_a11y_run_scan`
622
+ returns a scan id; poll `wix_a11y_get_scan` after `suggestedPollIntervalSeconds`
623
+ (every 5 seconds when absent) until the status is terminal. A tool that blocked
624
+ for the length of a site scan would be the wrong shape for an agent turn.
625
+
626
+ **`attempt` is what tells a retry apart from a new scan.** Wix takes a
627
+ caller-generated idempotency key so a lost response cannot create duplicate
628
+ work, and requires a *new* key for a genuinely new scan. The plugin derives that
629
+ key from the site, the target and the `attempt` label you pass: reuse the label
630
+ to retry, change it to scan again. A random key per call would satisfy the
631
+ schema and make the whole guarantee inert.
632
+
633
+ **Limits worth knowing.** Runs are capped at 5 per minute per site; a multi-page
634
+ scan covers at most 300 pages and answers `SCAN_SIZE_LIMIT_EXCEEDED` beyond that
635
+ — after which the site must never be described as fully scanned. Stored results
636
+ are kept about six months, and `resultsExpirationDate` says exactly when. A
637
+ published site is scanned from its published version, an unpublished one from
638
+ its latest saved version — the opposite way round from the SEO tag reads above.
639
+
640
+ ---
641
+
568
642
  ### Design
569
643
 
570
644
  | Tool | What it does | Approval | Validated |
package/dist/config.js CHANGED
@@ -69,10 +69,16 @@ export function resolveConfig(cfg = {}) {
69
69
  enabled: cfg.enabled !== false,
70
70
  // OPT-IN, unlike every other tool group. The Wix SEO endpoints are in
71
71
  // Developer Preview: Wix may change them at any time and says they
72
- // "shouldn't be used on live sites". Four of these tools also write
72
+ // "shouldn't be used on live sites". Eleven of these tools also write
73
73
  // irreversibly to a live site the moment they succeed. Defaulting them on
74
74
  // would enable that on every existing install without anyone deciding to.
75
75
  enableSeoTools: cfg.enableSeoTools === true,
76
+ // A SEPARATE SWITCH, not a sub-case of the SEO one. These tools destroy
77
+ // nothing, but starting a scan needs its own Wix permission that the SEO
78
+ // scope does not grant — so an install that turned SEO on has not thereby
79
+ // decided anything about this, and folding the two together would enable a
80
+ // family of calls that would only fail with 403.
81
+ enableAccessibilityTools: cfg.enableAccessibilityTools === true,
76
82
  apiKey,
77
83
  accountId,
78
84
  allowedSiteIds,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,2EAA2E;AAC3E,6DAA6D;AAQ7D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAI,KAAQ;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC,CAAiB,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,wBAAwB;IACxB,oBAAoB;IACpB,uBAAuB;IACvB,sBAAsB;IACtB,qBAAqB;IACrB,yBAAyB;IACzB,qBAAqB;IACrB,sBAAsB;IACtB,yBAAyB;IACzB,sEAAsE;IACtE,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,6DAA6D;IAC7D,yBAAyB;IACzB,yBAAyB;IACzB,+BAA+B;IAC/B,+BAA+B;IAC/B,uEAAuE;IACvE,wEAAwE;IACxE,uBAAuB;IACvB,4BAA4B;IAC5B,yBAAyB;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;CACxB,CAAC;AAEF,MAAM,gBAAgB,GAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAuB,EAAE;IAEzB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,aAAa,GACjB,eAAe,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;IAE3E,MAAM,QAAQ,GAAgB,gBAAgB,CAAC,QAAQ,CACrD,GAAG,CAAC,QAAuB,CAC5B;QACC,CAAC,CAAE,GAAG,CAAC,QAAwB;QAC/B,CAAC,CAAC,MAAM,CAAC;IAEX,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,KAAK;QAC9B,sEAAsE;QACtE,mEAAmE;QACnE,oEAAoE;QACpE,0EAA0E;QAC1E,0EAA0E;QAC1E,cAAc,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI;QAC3C,MAAM;QACN,SAAS;QACT,cAAc;QACd,aAAa;QACb,gBAAgB,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC;QAC3C,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,EAAE;AACF,2EAA2E;AAC3E,6DAA6D;AAQ7D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAI,KAAQ;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC,CAAiB,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,wBAAwB;IACxB,oBAAoB;IACpB,uBAAuB;IACvB,sBAAsB;IACtB,qBAAqB;IACrB,yBAAyB;IACzB,qBAAqB;IACrB,sBAAsB;IACtB,yBAAyB;IACzB,sEAAsE;IACtE,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,6DAA6D;IAC7D,yBAAyB;IACzB,yBAAyB;IACzB,+BAA+B;IAC/B,+BAA+B;IAC/B,uEAAuE;IACvE,wEAAwE;IACxE,uBAAuB;IACvB,4BAA4B;IAC5B,yBAAyB;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,wBAAwB;IACxB,uBAAuB;CACxB,CAAC;AAEF,MAAM,gBAAgB,GAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3E;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAuB,EAAE;IAEzB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,aAAa,GACjB,eAAe,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC;IAE3E,MAAM,QAAQ,GAAgB,gBAAgB,CAAC,QAAQ,CACrD,GAAG,CAAC,QAAuB,CAC5B;QACC,CAAC,CAAE,GAAG,CAAC,QAAwB;QAC/B,CAAC,CAAC,MAAM,CAAC;IAEX,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,KAAK;QAC9B,sEAAsE;QACtE,mEAAmE;QACnE,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,cAAc,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI;QAC3C,wEAAwE;QACxE,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,iDAAiD;QACjD,wBAAwB,EAAE,GAAG,CAAC,wBAAwB,KAAK,IAAI;QAC/D,MAAM;QACN,SAAS;QACT,cAAc;QACd,aAAa;QACb,gBAAgB,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC;QAC3C,QAAQ;KACT,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export type { ResolvedWixConfig, WixPluginConfig, WixRequestOptions, } from "./t
18
18
  */
19
19
  export declare function buildAllTools(client: WixClient, options?: {
20
20
  seo?: boolean;
21
+ accessibility?: boolean;
21
22
  }): ({
22
23
  name: string;
23
24
  description: string;
@@ -1546,6 +1547,136 @@ export declare function buildAllTools(client: WixClient, options?: {
1546
1547
  data?: unknown;
1547
1548
  error?: string;
1548
1549
  }>>;
1550
+ } | {
1551
+ name: string;
1552
+ description: string;
1553
+ label: string;
1554
+ parameters: import("@sinclair/typebox").TObject<{
1555
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1556
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1557
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1558
+ }>;
1559
+ execute: (toolCallId: string, params: {
1560
+ siteId?: string | undefined;
1561
+ limit?: number | undefined;
1562
+ cursor?: string | undefined;
1563
+ }, signal?: AbortSignal) => Promise<import("./tools/_factory.js").WixToolResult<{
1564
+ status: "ok" | "failed";
1565
+ data?: unknown;
1566
+ error?: string;
1567
+ }>>;
1568
+ } | {
1569
+ name: string;
1570
+ description: string;
1571
+ label: string;
1572
+ parameters: import("@sinclair/typebox").TObject<{
1573
+ attempt: import("@sinclair/typebox").TString;
1574
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1575
+ fullSite: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
1576
+ pageId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1577
+ pageUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1578
+ collectionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1579
+ }>;
1580
+ execute: (toolCallId: string, params: {
1581
+ siteId?: string | undefined;
1582
+ pageId?: string | undefined;
1583
+ fullSite?: boolean | undefined;
1584
+ pageUrl?: string | undefined;
1585
+ collectionId?: string | undefined;
1586
+ attempt: string;
1587
+ }, signal?: AbortSignal) => Promise<import("./tools/_factory.js").WixToolResult<{
1588
+ status: "ok" | "failed";
1589
+ data?: unknown;
1590
+ error?: string;
1591
+ }>>;
1592
+ } | {
1593
+ name: string;
1594
+ description: string;
1595
+ label: string;
1596
+ parameters: import("@sinclair/typebox").TObject<{
1597
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1598
+ scanId: import("@sinclair/typebox").TString;
1599
+ }>;
1600
+ execute: (toolCallId: string, params: {
1601
+ siteId?: string | undefined;
1602
+ scanId: string;
1603
+ }, signal?: AbortSignal) => Promise<import("./tools/_factory.js").WixToolResult<{
1604
+ status: "ok" | "failed";
1605
+ data?: unknown;
1606
+ error?: string;
1607
+ }>>;
1608
+ } | {
1609
+ name: string;
1610
+ description: string;
1611
+ label: string;
1612
+ parameters: import("@sinclair/typebox").TObject<{
1613
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1614
+ fullSite: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
1615
+ pageId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1616
+ pageUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1617
+ collectionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1618
+ }>;
1619
+ execute: (toolCallId: string, params: {
1620
+ siteId?: string | undefined;
1621
+ pageId?: string | undefined;
1622
+ fullSite?: boolean | undefined;
1623
+ pageUrl?: string | undefined;
1624
+ collectionId?: string | undefined;
1625
+ }, signal?: AbortSignal) => Promise<import("./tools/_factory.js").WixToolResult<{
1626
+ status: "ok" | "failed";
1627
+ data?: unknown;
1628
+ error?: string;
1629
+ }>>;
1630
+ } | {
1631
+ name: string;
1632
+ description: string;
1633
+ label: string;
1634
+ parameters: import("@sinclair/typebox").TObject<{
1635
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1636
+ scanId: import("@sinclair/typebox").TString;
1637
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1638
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1639
+ }>;
1640
+ execute: (toolCallId: string, params: {
1641
+ siteId?: string | undefined;
1642
+ limit?: number | undefined;
1643
+ cursor?: string | undefined;
1644
+ scanId: string;
1645
+ }, signal?: AbortSignal) => Promise<import("./tools/_factory.js").WixToolResult<{
1646
+ status: "ok" | "failed";
1647
+ data?: unknown;
1648
+ error?: string;
1649
+ }>>;
1650
+ } | {
1651
+ name: string;
1652
+ description: string;
1653
+ label: string;
1654
+ parameters: import("@sinclair/typebox").TObject<{
1655
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1656
+ scanId: import("@sinclair/typebox").TString;
1657
+ pageId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1658
+ pageUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1659
+ ruleId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1660
+ severity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1661
+ categories: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
1662
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1663
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
1664
+ }>;
1665
+ execute: (toolCallId: string, params: {
1666
+ siteId?: string | undefined;
1667
+ severity?: string | undefined;
1668
+ limit?: number | undefined;
1669
+ cursor?: string | undefined;
1670
+ pageId?: string | undefined;
1671
+ pageUrl?: string | undefined;
1672
+ categories?: string[] | undefined;
1673
+ ruleId?: string | undefined;
1674
+ scanId: string;
1675
+ }, signal?: AbortSignal) => Promise<import("./tools/_factory.js").WixToolResult<{
1676
+ status: "ok" | "failed";
1677
+ data?: unknown;
1678
+ error?: string;
1679
+ }>>;
1549
1680
  } | {
1550
1681
  name: string;
1551
1682
  description: string;
package/dist/index.js CHANGED
@@ -30,6 +30,7 @@ import { buildMediaTools } from "./tools/media.js";
30
30
  import { buildMultilingualTools } from "./tools/multilingual.js";
31
31
  import { buildReviewsTools } from "./tools/reviews.js";
32
32
  import { buildSeoTools } from "./tools/seo.js";
33
+ import { buildAccessibilityTools } from "./tools/accessibility.js";
33
34
  import { buildSiteTools } from "./tools/site.js";
34
35
  import { WixClient } from "./wix-client.js";
35
36
  // Re-export helpers so tests can pull them without re-importing every
@@ -65,6 +66,10 @@ export function buildAllTools(client, options = {}) {
65
66
  // Developer Preview upstream, and half of them write irreversibly: opted
66
67
  // into per install, never on by default.
67
68
  ...(options.seo === true ? buildSeoTools(client) : []),
69
+ // Developer Preview upstream too, but nothing here writes: the opt-in
70
+ // exists because starting a scan needs a permission of its own, and
71
+ // because the endpoints may change without notice.
72
+ ...(options.accessibility === true ? buildAccessibilityTools(client) : []),
68
73
  ...buildDesignTools(client),
69
74
  ];
70
75
  }
@@ -87,7 +92,16 @@ export function registerWixPlugin(api) {
87
92
  api.logger.warn("wix-openclaw: allowedSiteIds is empty — every site-scoped call will be rejected. Add at least one site UUID to enable.");
88
93
  }
89
94
  const client = new WixClient(config, api.logger);
90
- const allTools = buildAllTools(client, { seo: config.enableSeoTools });
95
+ const allTools = buildAllTools(client, {
96
+ seo: config.enableSeoTools,
97
+ accessibility: config.enableAccessibilityTools,
98
+ });
99
+ if (!config.enableAccessibilityTools) {
100
+ api.logger.info("wix-openclaw: accessibility tools not registered — the Wix Accessibility " +
101
+ "Scans endpoints are in Developer Preview and starting a scan needs the " +
102
+ "Wix `Manage Accessibility Scans` permission. Set " +
103
+ "config.enableAccessibilityTools to true to opt in.");
104
+ }
91
105
  if (!config.enableSeoTools) {
92
106
  api.logger.info("wix-openclaw: SEO tools not registered — the Wix SEO endpoints are in " +
93
107
  "Developer Preview and may change without notice. Set " +
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -114,4 +114,4 @@ export declare function buildGetPagingQuery(paging: WixGetPagingEnvelope | undef
114
114
  * Drop `undefined`, `null`, and empty-string entries from a query
115
115
  * record so they don't end up as `?key=undefined` after serialisation.
116
116
  */
117
- export declare function compactQuery(q: Record<string, string | number | boolean | undefined | null>): Record<string, string | number | boolean | undefined>;
117
+ export declare function compactQuery(q: Record<string, string | number | boolean | undefined | null | (string | number)[]>): Record<string, string | number | boolean | undefined | (string | number)[]>;
@@ -233,6 +233,9 @@ export function compactQuery(q) {
233
233
  for (const [k, v] of Object.entries(q)) {
234
234
  if (v === undefined || v === null || v === "")
235
235
  continue;
236
+ // An EMPTY array is an absent filter, not a filter matching nothing.
237
+ if (Array.isArray(v) && v.length === 0)
238
+ continue;
236
239
  out[k] = v;
237
240
  }
238
241
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"_query.js","sourceRoot":"","sources":["../../src/tools/_query.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,yCAAyC;AACzC,EAAE;AACF,kEAAkE;AAClE,yEAAyE;AACzE,+CAA+C;AAC/C,yEAAyE;AACzE,uEAAuE;AACvE,sBAAsB;AACtB,0HAA0H;AAC1H,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,gBAAgB;AAChB,EAAE;AACF,kEAAkE;AAClE,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,2DAA2D;AAC3D,EAAE;AACF,uEAAuE;AACvE,wDAAwD;AACxD,mEAAmE;AACnE,gEAAgE;AAEhE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,yDAAyD;KACvE,CAAC;IACF,KAAK,EAAE,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE;QACtD,WAAW,EAAE,2CAA2C;KACzD,CAAC,CACH;CACF,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,MAAM,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,kDAAkD;KAChE,CAAC,CACH;IACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,CACpE;CACF,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAClB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAC3C;IACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,MAAM,CAAC;QACV,WAAW,EACT,6EAA6E;KAChF,CAAC,CACH;CACF,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC;IACpD,MAAM,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,OAAO,CAAC;QACX,WAAW,EACT,gEAAgE;YAChE,yDAAyD;YACzD,sDAAsD;YACtD,uEAAuE;KAC1E,CAAC,CACH;IACD,IAAI,EAAE,IAAI,CAAC,QAAQ,CACjB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;QAC7B,WAAW,EAAE,wCAAwC;KACtD,CAAC,CACH;IACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC5C,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAClD,MAAM,EAAE,IAAI,CAAC,QAAQ,CACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;QACxB,WAAW,EACT,yFAAyF;KAC5F,CAAC,CACH;CACF,CAAC,CAAC;AAIH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA0C,EAC1C,WAAqC;IAErC,MAAM,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAChD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC3D,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IACxC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IACnE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,WAAW,CACzB,IAAa,EACb,KAA0C;IAE1C,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,qEAAqE;IACrE,sEAAsE;IACtE,8DAA8D;IAC9D,oEAAoE;IACpE,aAAa;IACb,IACE,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EACpB,CAAC;QACD,MAAM,OAAO,GAAG,IAA+B,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,uBAAuB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CACxB,CAAC;QACF,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,+DAA+D;YAC/D,MAAM,YAAY,GAA4B,EAAE,CAAC;YACjD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,4DAA4D;gBAC5D,wCAAwC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,+DAA+D;YAC/D,2DAA2D;YAC3D,kBAAkB;YAClB,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IACD,mEAAmE;IACnE,wEAAwE;IACxE,gDAAgD;IAChD,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM,CAAC;IACpD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;CACrC,CAAC,CAAC;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAwC;IAExC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,GAA0D,EAAE,CAAC;IACtE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACnE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACtE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACtE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,CAA+D;IAE/D,MAAM,GAAG,GAA0D,EAAE,CAAC;IACtE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,SAAS;QACxD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"_query.js","sourceRoot":"","sources":["../../src/tools/_query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { type WixClient } from "../wix-client.js";
2
+ export declare function buildAccessibilityTools(client: WixClient): ({
3
+ name: string;
4
+ description: string;
5
+ label: string;
6
+ parameters: import("@sinclair/typebox").TObject<{
7
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
10
+ }>;
11
+ execute: (toolCallId: string, params: {
12
+ siteId?: string | undefined;
13
+ limit?: number | undefined;
14
+ cursor?: string | undefined;
15
+ }, signal?: AbortSignal) => Promise<import("./_factory.js").WixToolResult<{
16
+ status: "ok" | "failed";
17
+ data?: unknown;
18
+ error?: string;
19
+ }>>;
20
+ } | {
21
+ name: string;
22
+ description: string;
23
+ label: string;
24
+ parameters: import("@sinclair/typebox").TObject<{
25
+ attempt: import("@sinclair/typebox").TString;
26
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
27
+ fullSite: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
28
+ pageId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
29
+ pageUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
30
+ collectionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
31
+ }>;
32
+ execute: (toolCallId: string, params: {
33
+ siteId?: string | undefined;
34
+ pageId?: string | undefined;
35
+ fullSite?: boolean | undefined;
36
+ pageUrl?: string | undefined;
37
+ collectionId?: string | undefined;
38
+ attempt: string;
39
+ }, signal?: AbortSignal) => Promise<import("./_factory.js").WixToolResult<{
40
+ status: "ok" | "failed";
41
+ data?: unknown;
42
+ error?: string;
43
+ }>>;
44
+ } | {
45
+ name: string;
46
+ description: string;
47
+ label: string;
48
+ parameters: import("@sinclair/typebox").TObject<{
49
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
50
+ scanId: import("@sinclair/typebox").TString;
51
+ }>;
52
+ execute: (toolCallId: string, params: {
53
+ siteId?: string | undefined;
54
+ scanId: string;
55
+ }, signal?: AbortSignal) => Promise<import("./_factory.js").WixToolResult<{
56
+ status: "ok" | "failed";
57
+ data?: unknown;
58
+ error?: string;
59
+ }>>;
60
+ } | {
61
+ name: string;
62
+ description: string;
63
+ label: string;
64
+ parameters: import("@sinclair/typebox").TObject<{
65
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
66
+ fullSite: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
67
+ pageId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
68
+ pageUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
69
+ collectionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
70
+ }>;
71
+ execute: (toolCallId: string, params: {
72
+ siteId?: string | undefined;
73
+ pageId?: string | undefined;
74
+ fullSite?: boolean | undefined;
75
+ pageUrl?: string | undefined;
76
+ collectionId?: string | undefined;
77
+ }, signal?: AbortSignal) => Promise<import("./_factory.js").WixToolResult<{
78
+ status: "ok" | "failed";
79
+ data?: unknown;
80
+ error?: string;
81
+ }>>;
82
+ } | {
83
+ name: string;
84
+ description: string;
85
+ label: string;
86
+ parameters: import("@sinclair/typebox").TObject<{
87
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
88
+ scanId: import("@sinclair/typebox").TString;
89
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
90
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
91
+ }>;
92
+ execute: (toolCallId: string, params: {
93
+ siteId?: string | undefined;
94
+ limit?: number | undefined;
95
+ cursor?: string | undefined;
96
+ scanId: string;
97
+ }, signal?: AbortSignal) => Promise<import("./_factory.js").WixToolResult<{
98
+ status: "ok" | "failed";
99
+ data?: unknown;
100
+ error?: string;
101
+ }>>;
102
+ } | {
103
+ name: string;
104
+ description: string;
105
+ label: string;
106
+ parameters: import("@sinclair/typebox").TObject<{
107
+ siteId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
108
+ scanId: import("@sinclair/typebox").TString;
109
+ pageId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
110
+ pageUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
111
+ ruleId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
112
+ severity: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
113
+ categories: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
114
+ cursor: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
115
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
116
+ }>;
117
+ execute: (toolCallId: string, params: {
118
+ siteId?: string | undefined;
119
+ severity?: string | undefined;
120
+ limit?: number | undefined;
121
+ cursor?: string | undefined;
122
+ pageId?: string | undefined;
123
+ pageUrl?: string | undefined;
124
+ categories?: string[] | undefined;
125
+ ruleId?: string | undefined;
126
+ scanId: string;
127
+ }, signal?: AbortSignal) => Promise<import("./_factory.js").WixToolResult<{
128
+ status: "ok" | "failed";
129
+ data?: unknown;
130
+ error?: string;
131
+ }>>;
132
+ })[];