@reqvire-org/ads 0.3.17 → 0.3.18
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/dist/atomic-composition.mjs +1 -1
- package/dist/check.mjs +30 -3
- package/dist/investigations.mjs +34 -3
- package/dist/linaria/preserve-values.cjs +21 -2
- package/dist/mcp/behavior-pages.mjs +36 -0
- package/dist/mcp/context.mjs +3 -1
- package/dist/mcp/execution-results.mjs +146 -0
- package/dist/mcp/mutations.mjs +3 -3
- package/dist/mcp/result-pages.mjs +87 -0
- package/dist/mcp/server.mjs +43 -28
- package/dist/property-registrations.mjs +39 -0
- package/dist/scenario-trace.mjs +1 -1
- package/dist/scoped-tokens.mjs +6 -0
- package/dist/skills/ads-break-ui/SKILL.md +6 -4
- package/dist/skills/ads-break-ui/references/atomic-styles.md +48 -0
- package/dist/skills/ads-break-ui/references/captures.md +6 -1
- package/dist/skills/ads-break-ui/references/evidence.md +52 -5
- package/dist/skills/ads-break-ui/references/guarded-editing.md +8 -5
- package/dist/skills/ads-designer/SKILL.md +6 -4
- package/dist/skills/ads-designer/references/atomic-styles.md +48 -0
- package/dist/skills/ads-designer/references/captures.md +6 -1
- package/dist/skills/ads-designer/references/evidence.md +52 -5
- package/dist/skills/ads-designer/references/guarded-editing.md +8 -5
- package/dist/skills/ads-import/SKILL.md +6 -4
- package/dist/skills/ads-import/references/atomic-styles.md +48 -0
- package/dist/skills/ads-import/references/captures.md +6 -1
- package/dist/skills/ads-import/references/evidence.md +52 -5
- package/dist/skills/ads-import/references/guarded-editing.md +8 -5
- package/dist/skills/ads-migrate/SKILL.md +6 -4
- package/dist/skills/ads-migrate/references/atomic-styles.md +48 -0
- package/dist/skills/ads-migrate/references/captures.md +6 -1
- package/dist/skills/ads-migrate/references/evidence.md +52 -5
- package/dist/skills/ads-migrate/references/guarded-editing.md +8 -5
- package/dist/skills/ads-motion/SKILL.md +6 -4
- package/dist/skills/ads-motion/references/atomic-styles.md +48 -0
- package/dist/skills/ads-motion/references/captures.md +6 -1
- package/dist/skills/ads-motion/references/evidence.md +52 -5
- package/dist/skills/ads-motion/references/guarded-editing.md +8 -5
- package/docs/ADS.md +10 -0
- package/docs/ARCHITECTURE.md +27 -0
- package/docs/BEHAVIORS.md +14 -2
- package/docs/CHANGELOG.md +17 -0
- package/docs/MCP.md +60 -14
- package/package.json +2 -1
|
@@ -101,7 +101,12 @@ failed/cancelled capture does not replace existing image slots or apply source.
|
|
|
101
101
|
If a scenario/target is newly introduced, `current` is null with an explicit
|
|
102
102
|
`currentAbsent` explanation; only the real candidate image exists.
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
The edit reply is a summary. Read `ads_results({resultId,section:"captures"})` for
|
|
105
|
+
the requested image resource URIs and `section:"diagnostics"` for relevant
|
|
106
|
+
messages; follow `nextCursor` when needed. Read image resources explicitly.
|
|
107
|
+
Standalone `ads_capture` continues returning its selected capture directly.
|
|
108
|
+
|
|
109
|
+
Review those images and diagnostics, fix the draft if necessary, then apply
|
|
105
110
|
with `dryRun:false`. Apply reruns all gates. An image is promoted only when the
|
|
106
111
|
accepted source revision matches the captured candidate; other proposals remain
|
|
107
112
|
stale. Images do not approve a patch or certify interaction/accessibility/parity.
|
|
@@ -20,21 +20,67 @@ A complete failed run can contain independent passing cases. Suite interruption,
|
|
|
20
20
|
missing/skipped cases, stale inputs and an unexplained process exit cannot certify
|
|
21
21
|
a pass. Keep the reported case outcome separate from whole-run acceptance.
|
|
22
22
|
|
|
23
|
+
## Retrieve only the evidence needed
|
|
24
|
+
|
|
25
|
+
`ads_verify`, `ads_apply_patch` and `ads_apply_transaction` reply with counts,
|
|
26
|
+
bounded acceptance, at most three failure previews and `resultId`, within 4096
|
|
27
|
+
UTF-8 JSON bytes. Full validation still decides acceptance. Do not repeat a suite
|
|
28
|
+
merely to recover its output, or restate the complete report in conversation.
|
|
29
|
+
|
|
30
|
+
Read a relevant saved section:
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
ads_results({resultId: "<returned ID>", section: "outcomes", status: "not_passed"})
|
|
34
|
+
// Continue only when needed, with the same section and status:
|
|
35
|
+
ads_results({resultId: "<returned ID>", section: "outcomes", status: "not_passed", cursor: "<nextCursor>"})
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Pages default to 10 rows, allow at most 20 and stay within 8192 JSON bytes. The
|
|
39
|
+
byte cap can return fewer rows; `nextCursor` is the continuation. Other sections
|
|
40
|
+
are `checks` (pipeline steps), `diagnostics`, `advisories`, `warnings`, `changes`,
|
|
41
|
+
`captures`, `acceptance`, `investigation` (mutation boundary) and `selection`.
|
|
42
|
+
A row marked `detailTruncated` is a preview. To read that exact record, pass its
|
|
43
|
+
`recordIndex`, the same result/section, and `offset`/`chars` (maximum 2000 UTF-16
|
|
44
|
+
characters); follow `nextOffset`. Do not combine ranges with a cursor/status filter.
|
|
45
|
+
Read only the relevant log range. Reading pages or ranges never executes checks.
|
|
46
|
+
|
|
47
|
+
`ads://project/results` lists the latest IDs. `ads://results/<resultId>` reads a
|
|
48
|
+
summary; matching query parameters read pages/ranges. Only the latest verification
|
|
49
|
+
and latest mutation snapshots are retained, independently, up to 8 MiB each.
|
|
50
|
+
A superseded ID fails explicitly. An oversized report retains only its summary
|
|
51
|
+
with a warning; disk failure retains details in server memory until shutdown.
|
|
52
|
+
Neither changes actual acceptance or applied state. These are logical JSON byte
|
|
53
|
+
budgets, not token estimates; compatibility text can duplicate structured JSON.
|
|
54
|
+
Saved outcomes describe completion-time evidence, not current source freshness;
|
|
55
|
+
compare their revisions with `ads_behaviors` before claiming a current pass.
|
|
56
|
+
|
|
57
|
+
`ads_behaviors` pages owner summaries, then an exact unit's `checks`, `guarantees`,
|
|
58
|
+
`subjects`, `demonstrations` or `profiles`. Use `nextCursor` and identical filters;
|
|
59
|
+
changes invalidate a discovery cursor. Read a truncated contract via its
|
|
60
|
+
`sourceFile` and bounded `ads_read_file`, rather than requesting everything.
|
|
61
|
+
|
|
23
62
|
## Get a compact investigation
|
|
24
63
|
|
|
25
|
-
|
|
64
|
+
Take an outcome's exact owner/check/run IDs from `ads_results`, then:
|
|
26
65
|
|
|
27
66
|
```json
|
|
28
|
-
{ "unit": "components/Example", "check": "keyboard-navigation" }
|
|
67
|
+
{ "unit": "components/Example", "check": "keyboard-navigation", "runId": "<outcome runId>" }
|
|
29
68
|
```
|
|
30
69
|
|
|
31
|
-
Send this to `ads_investigate`. It reads
|
|
70
|
+
Send this to `ads_investigate`. It reads a summary within 4096 JSON bytes, without
|
|
71
|
+
running code. The run ID rejects evidence superseded by another execution.
|
|
72
|
+
`section: "details"`, `"requests"`, `"browserErrors"` or `"artifacts"` reads separate pages
|
|
73
|
+
(default 10/max 20 rows, at most 8192 JSON bytes); artifacts themselves require
|
|
74
|
+
explicit resource reads. Truncated investigation records also support
|
|
75
|
+
`recordIndex`/`offset`/`chars`; keep the exact `runId` to avoid mixing evidence.
|
|
76
|
+
Without a check, the tool pages available investigations.
|
|
32
77
|
`ads://project/investigations` lists available entries; the returned `resourceUri`
|
|
33
78
|
reads the same bundle. It records:
|
|
34
79
|
|
|
35
80
|
- Project versus isolated candidate, configured framework/profile and scenario.
|
|
36
81
|
- Exact input revision and the preview revision actually observed by the helper.
|
|
37
|
-
-
|
|
82
|
+
- `details.failingStep`, `details.source`, startup viewport and failure boundary.
|
|
83
|
+
- Counts for separately paged relevant requests, browser errors and artifacts.
|
|
38
84
|
- Available registered trace, screenshot or context artifact resource URIs.
|
|
39
85
|
- Explicit `acceptance.established` and `acceptance.unverified` scope.
|
|
40
86
|
|
|
@@ -58,7 +104,8 @@ Candidate evidence never becomes passing live-source evidence. Compare the
|
|
|
58
104
|
recorded input revision with current `ads_behaviors` evidence; a bundle describes
|
|
59
105
|
its run, and does not claim current source merely because it remains available.
|
|
60
106
|
For a build/architecture rejection before behavior runs, inspect the mutation
|
|
61
|
-
|
|
107
|
+
saved `investigation` section via `ads_results`. Status retains the compact
|
|
108
|
+
execution summary and result ID, rather than embedding complete reports.
|
|
62
109
|
|
|
63
110
|
## Preserve the design while repairing the failure
|
|
64
111
|
|
|
@@ -15,8 +15,10 @@ ads_apply_patch({"unit":"components/Example","patchFile":"<returned patchFile>",
|
|
|
15
15
|
|
|
16
16
|
The dry run validates the full candidate, including affected registered behavior
|
|
17
17
|
checks in an isolated project copy. Configured browser checks use that candidate's
|
|
18
|
-
managed preview, not the live showcase.
|
|
19
|
-
|
|
18
|
+
managed preview, not the live showcase. Read the summary, then page failing
|
|
19
|
+
`outcomes`, `diagnostics` or pipeline `checks` through `ads_results` with its
|
|
20
|
+
`resultId`. Inspect one exact outcome with `ads_investigate({unit,check,runId})`;
|
|
21
|
+
fix the draft and diff again. See [evidence.md](evidence.md) for page/range limits.
|
|
20
22
|
Keep behavior.json/specs with their owner and use registered checks; a scratchpad
|
|
21
23
|
run against live source cannot verify unapplied changes. After validation, apply
|
|
22
24
|
with `dryRun:false`; ADS revalidates before writing. Dry-run evidence is not saved
|
|
@@ -120,9 +122,10 @@ them through their actual public composition/customization path and list their r
|
|
|
120
122
|
render references in covers. Do not count internal production renders as public API
|
|
121
123
|
coverage. Behavioral APIs use exercises and registered guarantees instead.
|
|
122
124
|
Scenario controls still use public UI. A native link/button can supply semantics
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
125
|
+
through a public runtime slot that demonstrably clones its child with owned
|
|
126
|
+
props, or through matching runtime-owned selectors attached to the actual rendered
|
|
127
|
+
DOM. Source ownership must be proven; an `asChild` flag or a lookalike marker is
|
|
128
|
+
insufficient. Standalone controls and custom scenario styling remain rejected. See
|
|
126
129
|
[scenarios.md](scenarios.md) for evidence and limits. Preserve the intended
|
|
127
130
|
composition instead of substituting an unrelated styled control or adding a
|
|
128
131
|
demo-only component prop. Review framing belongs in public layout patterns.
|
package/docs/ADS.md
CHANGED
|
@@ -259,6 +259,16 @@ custom styling in fixture files. The ADS frame pattern uses `--ux-*`. Foreign br
|
|
|
259
259
|
CSS imports the approved token files in order; shared assignments belong in
|
|
260
260
|
those token files, never in consumer styles or component state overrides.
|
|
261
261
|
|
|
262
|
+
Typed custom-property registrations follow the same ownership. Runtime-variable
|
|
263
|
+
`@property` metadata lives in component/pattern Linaria; shared and owner-local
|
|
264
|
+
token registrations live beside real token definitions. Names are document-global:
|
|
265
|
+
unrelated owners and conflicting descriptor sets cannot claim the same name.
|
|
266
|
+
Descriptors have their own CSS grammar and independent literal defaults; normal
|
|
267
|
+
visual styling still uses tokens. Registration does not create token/sample
|
|
268
|
+
coverage, and base resets/font metadata cannot host it. Preserve whole rules with
|
|
269
|
+
the ADS Linaria resolver in product and MCP preview builds. See the portable
|
|
270
|
+
[atomic styling guide](../skills/ads-designer/references/atomic-styles.md).
|
|
271
|
+
|
|
262
272
|
Foundation roles are enforced by `foundation-role`, `foundation-selector` and
|
|
263
273
|
`foundation-import`, alongside the regular token checks. Shared definitions
|
|
264
274
|
belong on the document root or explicit root themes; ordinary declarations belong
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -155,6 +155,19 @@ values; source guards alone cannot establish extraction correctness. The
|
|
|
155
155
|
skill-local [atomic styling guide](../skills/ads-designer/references/atomic-styles.md#preserve-custom-property-arithmetic-during-extraction)
|
|
156
156
|
documents integration and source-workaround semantics.
|
|
157
157
|
|
|
158
|
+
The resolver also preserves complete `@property` registrations and their
|
|
159
|
+
conditional at-rule context for atomic `css`/`styled`. Their descriptors are schema
|
|
160
|
+
metadata, not separate atomic declarations. CSS-tree validates CSS value grammar;
|
|
161
|
+
PostCSS supplies source/at-rule structure. Registered names have one owner and a
|
|
162
|
+
stable schema across its modules, because registration is document-global. Runtime
|
|
163
|
+
variables are registered in owned Linaria; shared or namespaced design tokens are
|
|
164
|
+
registered beside their real value definitions. Base resets and fonts cannot own
|
|
165
|
+
registrations. Descriptor literals are narrowly permitted where CSS requires an
|
|
166
|
+
independent initial value; ordinary visual assignments remain token-governed.
|
|
167
|
+
MCP serves these styles to the sandboxed App document. Registration metadata
|
|
168
|
+
neither creates new token definitions nor replaces token sample coverage.
|
|
169
|
+
Compiled-CSS and browser tests verify interpolation in React and Preact Apps.
|
|
170
|
+
|
|
158
171
|
## Public APIs preserve the boundary
|
|
159
172
|
|
|
160
173
|
The application and project-owned preview scenarios consume a project's public ADS entry. Components
|
|
@@ -445,6 +458,20 @@ Another run replaces that check's resource access; candidate evidence never
|
|
|
445
458
|
certifies live source. Detailed usage lives in the portable skill-local
|
|
446
459
|
[evidence guide](../skills/ads-designer/references/evidence.md).
|
|
447
460
|
|
|
461
|
+
MCP delivery is separate from validation: verification and mutation controllers
|
|
462
|
+
use complete results to decide acceptance. Their MCP replies contain counts,
|
|
463
|
+
bounded acceptance, at most three failure previews and a result ID in at most
|
|
464
|
+
4 KiB of UTF-8 JSON. `ads_results` reads saved outcomes, diagnostics and other
|
|
465
|
+
sections without rerunning checks. Pages have at most 20 rows and 8 KiB of JSON;
|
|
466
|
+
truncated records support bounded text ranges. Discovery and investigation
|
|
467
|
+
sections use the same paging budget. Cursors bind the query and result/revision;
|
|
468
|
+
superseded IDs fail explicitly instead of silently returning another run.
|
|
469
|
+
Only the latest verification and mutation snapshots are retained, each at most
|
|
470
|
+
8 MiB under `.ds/tool-results/`. Oversized reports retain a summary with an
|
|
471
|
+
explicit unavailable-details warning. Storage/notification failure cannot change
|
|
472
|
+
an accepted edit's applied state. These are payload byte budgets, not tokenizer
|
|
473
|
+
estimates; MCP compatibility text may duplicate structured JSON on the wire.
|
|
474
|
+
|
|
448
475
|
Edits stay focused without requiring entire file bodies in model context. Peer units and
|
|
449
476
|
unrelated owners remain outside the selected unit's edit boundary. Shared foundation,
|
|
450
477
|
branding and guides have their own units. Shared credits and text license notices
|
package/docs/BEHAVIORS.md
CHANGED
|
@@ -308,8 +308,20 @@ Guarantees report passing only when all their checks have current passing eviden
|
|
|
308
308
|
Passing applies to those cases and profiles, not every application state.
|
|
309
309
|
|
|
310
310
|
Results expose structured `failure` boundaries and explicit `acceptance` scope.
|
|
311
|
-
|
|
312
|
-
|
|
311
|
+
MCP execution replies contain counts, bounded acceptance, at most three failure
|
|
312
|
+
previews and a `resultId` (4 KiB UTF-8 JSON maximum). Use `ads_results` to read
|
|
313
|
+
selected `outcomes`, `checks`, `diagnostics` or other sections without execution.
|
|
314
|
+
Pages default to 10 rows, allow at most 20 and stay within 8 KiB; follow
|
|
315
|
+
`nextCursor` with identical selection/status. Truncated records provide
|
|
316
|
+
`recordIndex` for exact `offset`/`chars` ranges. Only the latest verification and
|
|
317
|
+
mutation snapshots are retained, independently, at most 8 MiB each. Replaced IDs
|
|
318
|
+
fail explicitly. Validation still uses complete internal outcomes.
|
|
319
|
+
|
|
320
|
+
Use `ads_investigate({unit,check,runId})` with an outcome's exact IDs for its compact
|
|
321
|
+
summary (4 KiB maximum); details, requests, browser errors and artifact metadata are separate
|
|
322
|
+
paged sections (8 KiB maximum). Truncated records support exact text ranges with
|
|
323
|
+
the recorded run ID. Saved outcomes describe completion time; compare current
|
|
324
|
+
`ads_behaviors` revisions for freshness. It includes isolated dry runs; `ads://project/investigations` lists available entries. Exact
|
|
313
325
|
input and observed preview revisions, failing step/source, startup viewport,
|
|
314
326
|
failed startup requests and available project-recorded artifacts keep diagnosis
|
|
315
327
|
separate from an inferred component defect. No artifact is invented or test
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.18
|
|
4
|
+
|
|
5
|
+
- Preserve complete typed `@property` registrations through atomic css/styled
|
|
6
|
+
extraction, conditional rules and CSS minification. Validate descriptors with
|
|
7
|
+
CSS-tree, enforce runtime/token ownership and naming conflicts, and retain
|
|
8
|
+
ordinary style-token gates. Verify dummy interpolation in React/Preact MCP Apps.
|
|
9
|
+
- Sync all skill references for registrations and selector-owned native
|
|
10
|
+
composition; keep implementation independent of any imported component library.
|
|
11
|
+
|
|
12
|
+
- Deliver verification and guarded-edit replies as 4 KiB JSON summaries with
|
|
13
|
+
counts, acceptance and result IDs. Page outcomes, diagnostics, logs and captures
|
|
14
|
+
through `ads_results`; retain only the latest verification and mutation snapshots.
|
|
15
|
+
Keep complete internal validation independent of delivery.
|
|
16
|
+
- Page behavior discovery and investigation details; bind cursors to their query
|
|
17
|
+
and recorded run, reject superseded evidence, and document selective retrieval
|
|
18
|
+
in every portable skill. Keep artifacts separate from tool JSON.
|
|
19
|
+
|
|
3
20
|
## 0.3.17
|
|
4
21
|
|
|
5
22
|
- Recognize native semantic composition through source-verified runtime Linaria
|
package/docs/MCP.md
CHANGED
|
@@ -175,9 +175,10 @@ The server supplies agent guidance through its instructions, tool descriptions,
|
|
|
175
175
|
| `ads_show_tokens` | Render a discovered token scenario; legacy compilers retain the definition inspector |
|
|
176
176
|
| `ads_scenarios` | Bounded token/component/pattern/composition scenario discovery |
|
|
177
177
|
| `ads_show_scenario` | Render an exact discovered scenario with its own fixtures |
|
|
178
|
-
| `ads_behaviors` |
|
|
178
|
+
| `ads_behaviors` | Paged owner discovery; select a unit and detail section |
|
|
179
179
|
| `ads_verify` | Execute an owner's registered checks and record revision-bound evidence |
|
|
180
|
-
| `
|
|
180
|
+
| `ads_results` | Page saved execution outcomes, diagnostics, logs and captures without rerunning |
|
|
181
|
+
| `ads_investigate` | Read one check's summary, then paged requests/errors/artifacts |
|
|
181
182
|
| `ads_capture` | On-demand PNG of a discovered scenario or named element; replace current and clear candidate |
|
|
182
183
|
| `ads_capture_clear` | Remove generated captures or discard only the candidate |
|
|
183
184
|
| `ads_show_<id>` | Optional explicitly configured grouped App |
|
|
@@ -193,8 +194,9 @@ public exports from `components/`, `patterns/` and `controllers/`; it does not e
|
|
|
193
194
|
guess component props. Read the exported API and owning guide. An export name
|
|
194
195
|
alone does not prove that a preview renders that particular element.
|
|
195
196
|
|
|
196
|
-
`ads://project/status`, `/build`, `/tokens`, `/catalog`, `/scenarios
|
|
197
|
-
detail.
|
|
197
|
+
`ads://project/status`, `/build`, `/tokens`, `/catalog`, `/scenarios` and `/checks`
|
|
198
|
+
carry project JSON detail. Behavior discovery, execution outcomes and investigation
|
|
199
|
+
details are paged; their resource reads use the same bounds as their tools. Allowed project documentation/source and skill files are separate
|
|
198
200
|
resources. No arbitrary filesystem reader is exposed. Prefer bounded tools for
|
|
199
201
|
large catalogues; explicit resource reads can enter model context and a client
|
|
200
202
|
may truncate large payloads.
|
|
@@ -215,6 +217,14 @@ informational limit nor a traced target proves a rendered failure or success.
|
|
|
215
217
|
Bounded check results put warnings before informational limits; the checks
|
|
216
218
|
resource retains complete results.
|
|
217
219
|
|
|
220
|
+
`property-registration` is a blocking architecture diagnostic for invalid or
|
|
221
|
+
conflicting typed CSS registrations. Keep registrations in their runtime owner
|
|
222
|
+
or beside their real token definitions; `base.css` remains a closed reset contract.
|
|
223
|
+
Use `@reqvire-org/ads/linaria` in both product and preview extraction so each
|
|
224
|
+
registration survives intact in the App's CSS resources. Descriptor literals are
|
|
225
|
+
metadata; normal styling still uses tokens. Read `ads://guides/atomic-styles` for
|
|
226
|
+
ownership, valid initial values, browser checks and examples.
|
|
227
|
+
|
|
218
228
|
### Screenshots and candidate comparison
|
|
219
229
|
|
|
220
230
|
`ads_capture({scenario:"<discovered ID>",target?,theme?,viewport?})` renders current
|
|
@@ -249,8 +259,10 @@ limits, target declarations and the guarded review workflow.
|
|
|
249
259
|
|
|
250
260
|
Read `ads://guides/behaviors` or the [behavior guide](BEHAVIORS.md) for the contract
|
|
251
261
|
and runner schema. `ads_behaviors({ "unit": "components/MessageScroller" })`
|
|
252
|
-
|
|
253
|
-
|
|
262
|
+
pages an owner's checks by default; select `section: "subjects"`, `"guarantees"`,
|
|
263
|
+
`"demonstrations"` or `"profiles"` for other details. Without a unit it lists owner
|
|
264
|
+
summaries. Follow `nextCursor` with identical filters. Changed registrations or
|
|
265
|
+
evidence revisions invalidate discovery cursors. `ads_verify({ "unit": "components/MessageScroller", "checks": ["prepend-anchor"] })`
|
|
254
266
|
runs those registered cases. The names here are examples, never built-in cases.
|
|
255
267
|
|
|
256
268
|
`covers` describes rendered UI; optional `exercises` describes public behavioral
|
|
@@ -276,14 +288,47 @@ single failed assertion does not turn the other checks into failures. Overall
|
|
|
276
288
|
verification and guarded application still fail. Suite errors, unexplained exits,
|
|
277
289
|
missing results and interrupted reports cannot certify passing checks.
|
|
278
290
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
291
|
+
Verification and guarded-edit replies are summaries: counts, acceptance, at most
|
|
292
|
+
three failure previews and `resultId`, within 4096 UTF-8 JSON bytes. Use:
|
|
293
|
+
|
|
294
|
+
```js
|
|
295
|
+
ads_results({resultId: "<returned ID>", section: "outcomes", status: "not_passed"})
|
|
296
|
+
ads_results({resultId: "<returned ID>", section: "outcomes", status: "not_passed", cursor: "<nextCursor>"})
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Each listing defaults to 10 rows, allows at most 20 and stays within 8192 JSON
|
|
300
|
+
bytes. A byte-limited page can contain fewer than `limit` rows; follow
|
|
301
|
+
`nextCursor` with the same result ID, section and status. Other sections are
|
|
302
|
+
`checks`, `advisories`, `warnings`, `changes`, `captures`, `acceptance`,
|
|
303
|
+
`investigation` and `selection`. No page reruns validation. Rows marked
|
|
304
|
+
`detailTruncated` can be read exactly with `recordIndex`, `offset` and `chars`
|
|
305
|
+
(maximum 2000 UTF-16 characters); follow `nextOffset`. Read full logs only for the
|
|
306
|
+
relevant record. JSON also remains available through `ads://results/<resultId>`;
|
|
307
|
+
use matching query parameters for pages or ranges. `ads://project/results` lists
|
|
308
|
+
the latest IDs. Status embeds summaries, not complete runner reports. Saved
|
|
309
|
+
outcomes are completion-time evidence; compare revisions with `ads_behaviors`
|
|
310
|
+
before claiming current source passed.
|
|
311
|
+
|
|
312
|
+
Only the latest verification snapshot and latest mutation snapshot are retained,
|
|
313
|
+
independently, each up to 8 MiB in `.ds/tool-results/`. Replacing a snapshot makes
|
|
314
|
+
its old ID unavailable; do not mix pages across runs. An oversized report retains
|
|
315
|
+
only its summary and an explicit unavailable-details warning. A failed disk write
|
|
316
|
+
keeps details in server memory until shutdown. Neither condition changes guard
|
|
317
|
+
acceptance or whether source was applied. These are logical payload byte limits;
|
|
318
|
+
compatibility text can duplicate structured JSON in the MCP response.
|
|
319
|
+
|
|
320
|
+
For diagnosis, take one outcome's exact `unit`, `check` and `runId` and call
|
|
321
|
+
`ads_investigate`. The run ID rejects superseded evidence. Without a check, it
|
|
322
|
+
lists available investigations with paging. An exact check returns a summary
|
|
323
|
+
within 4096 JSON bytes; `section: "details"`, `"requests"`, `"browserErrors"` or `"artifacts"`
|
|
324
|
+
returns detail pages with the same 10/20-row and 8192-byte limits. Truncated records support
|
|
325
|
+
`recordIndex`/`offset`/`chars` with the exact `runId`; artifact URIs are read
|
|
326
|
+
separately. It never reruns checks, including rejected candidates.
|
|
327
|
+
`ads://project/investigations` lists available bundles; returned resource URIs expose the bundle and available registered
|
|
283
328
|
artifacts. Exact input/observed preview revisions, source/failing step, startup
|
|
284
329
|
viewport and failed requests separate evidence from a suspected cause.
|
|
285
|
-
`failure.category` distinguishes architecture, build,
|
|
286
|
-
assertion boundaries; `acceptance` names established and unverified scope.
|
|
330
|
+
The summary's `details.failure.category` distinguishes architecture, build,
|
|
331
|
+
transport, runner and assertion boundaries; `acceptance` names established and unverified scope.
|
|
287
332
|
Only the latest bundle per check remains resource-accessible. Read the portable
|
|
288
333
|
[evidence guide](../skills/ads-designer/references/evidence.md) for collection
|
|
289
334
|
limits and project-controlled trace/screenshot recording.
|
|
@@ -424,8 +469,9 @@ Pass that `patchFile` to `ads_apply_patch` with `dryRun:true` to validate before
|
|
|
424
469
|
applying. This runs the normal candidate gates, including affected registered
|
|
425
470
|
behavior checks against an isolated candidate and its configured browser preview.
|
|
426
471
|
It writes no live source and does not persist passing evidence for live inputs.
|
|
427
|
-
Read
|
|
428
|
-
|
|
472
|
+
Read the summary, then use its `resultId` with `ads_results` for failing
|
|
473
|
+
`outcomes`, `diagnostics` or named pipeline `checks`; update the draft, diff again
|
|
474
|
+
and repeat as needed. Apply with `dryRun:false` after validation;
|
|
429
475
|
the gates run again. `ads_verify({unit,checks?})` checks current source and accepts
|
|
430
476
|
no draft argument; a selected-check draft runner is not currently exposed.
|
|
431
477
|
Use `action:"discard"` to remove the draft. Remote clients can continue sending
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reqvire-org/ads",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.18",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A design system your agent can see and shape. Your components. Your look. Your code.",
|
|
6
6
|
"repository": {
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@modelcontextprotocol/server": "2.3.1",
|
|
55
|
+
"css-tree": "3.2.1",
|
|
55
56
|
"postcss": "^8.5.30",
|
|
56
57
|
"postcss-selector-parser": "^7.1.6",
|
|
57
58
|
"postcss-value-parser": "^4.2.0",
|