@adia-ai/gen-ui 0.8.37 → 0.8.39
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 +17 -0
- package/README.md +9 -3
- package/compose/CHANGELOG.md +22 -22
- package/compose/README.md +3 -3
- package/compose/evals/harness.mjs +1 -1
- package/compose/strategies/_shared/chunk-loader.js +2 -2
- package/compose/strategies/monolithic/_shared.js +18 -5
- package/compose/strategies/monolithic/generate-pro.js +1 -1
- package/compose/strategies/zettel/composition-library.js +2 -2
- package/compose/strategies/zettel/issue-reporter.js +1 -1
- package/compose/transpiler/transpiler-maps.js +2 -2
- package/compose/transpiler/transpiler.js +1 -1
- package/corpus/CHANGELOG.md +17 -17
- package/corpus/README.md +2 -2
- package/corpus/chunks/_index.json +177 -1
- package/corpus/chunks/_source-hashes.json +20 -15
- package/corpus/chunks/access-denied-with-request.json +6 -2
- package/corpus/chunks/admin-page-header-with-actions.json +6 -2
- package/corpus/chunks/admin-topbar-breadcrumb-actions.json +6 -2
- package/corpus/chunks/agent-memory-list.json +6 -2
- package/corpus/chunks/agent-reasoning-collapsed.json +6 -2
- package/corpus/chunks/agent-tool-call-accordion.json +6 -2
- package/corpus/chunks/alert-dialog-unsaved.json +6 -2
- package/corpus/chunks/analytics-chart.json +6 -2
- package/corpus/chunks/api-keys-list.json +6 -2
- package/corpus/chunks/app-nav-groups.json +6 -2
- package/corpus/chunks/auth-signin-card-otp.json +6 -2
- package/corpus/chunks/avatar-group-overflow.json +6 -2
- package/corpus/chunks/banner-system-maintenance.json +6 -2
- package/corpus/chunks/bell-menu-empty.json +6 -2
- package/corpus/chunks/bulk-action-toolbar-swap.json +1 -1
- package/corpus/chunks/chart-in-card-full-chart.json +6 -2
- package/corpus/chunks/checkout-order-summary-card.json +6 -2
- package/corpus/chunks/code-snippet.json +6 -2
- package/corpus/chunks/comments-composer.json +6 -2
- package/corpus/chunks/contact-form-card.json +6 -2
- package/corpus/chunks/data-export-history.json +6 -2
- package/corpus/chunks/destructive-confirm-modal.json +6 -2
- package/corpus/chunks/export-flow-delivery.json +6 -2
- package/corpus/chunks/faq-accordion.json +6 -2
- package/corpus/chunks/feature-grid-three-cards.json +6 -2
- package/corpus/chunks/filter-popover-form.json +6 -2
- package/corpus/chunks/hero-cta-simple.json +6 -2
- package/corpus/chunks/image-caption-tile.json +6 -2
- package/corpus/chunks/inline-dialog-rename.json +6 -2
- package/corpus/chunks/login-form-card.json +6 -2
- package/corpus/chunks/onb-persona-picker.json +6 -2
- package/corpus/chunks/order-tracking-timeline.json +6 -2
- package/corpus/chunks/permissions-role-picker-radio.json +6 -2
- package/corpus/chunks/product-tour.json +6 -2
- package/corpus/chunks/retention-cohort-with-legend.json +6 -2
- package/corpus/chunks/search-results-list.json +6 -2
- package/corpus/chunks/signup-form-card.json +6 -2
- package/corpus/chunks/stat-cards-kpi-dashboard.json +6 -2
- package/corpus/chunks/tabs-with-panels.json +6 -2
- package/corpus/chunks/testimonial-pull-quote.json +6 -2
- package/corpus/chunks/toolbar-icons.json +6 -2
- package/corpus/chunks/usage-quota-meter-card.json +6 -2
- package/corpus/chunks/user-profile-card.json +6 -2
- package/corpus/chunks/verification-stepper.json +6 -2
- package/corpus/chunks/webhooks-list.json +6 -2
- package/corpus/manifest.json +2 -2
- package/corpus/scripts/chunk-library.js +3 -3
- package/node-shims.d.ts +1 -1
- package/package.json +2 -9
- package/retrieval/CHANGELOG.md +21 -21
- package/retrieval/catalog.js +8 -5
- package/retrieval/component-catalog.js +9 -7
- package/retrieval/feedback/dialog-recorder.js +1 -1
- package/retrieval/feedback/feedback-analyzer.js +1 -1
- package/retrieval/feedback/feedback-store.js +1 -1
- package/retrieval/feedback/gap-registry.js +1 -1
- package/retrieval/intent/prompt-analyzer.js +12 -2
- package/retrieval/wiring-catalog.js +1 -1
- package/validate/catalog-validator.js +22 -20
- package/validate/semantic/cache.js +1 -1
- package/validate/semantic/index.js +1 -1
- package/corpus/catalog-a2ui_0_9.d.ts +0 -4
- package/corpus/catalog-a2ui_0_9.json +0 -29571
- package/corpus/catalog-a2ui_0_9_rules.txt +0 -1215
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"full-form"
|
|
39
39
|
]
|
|
40
40
|
},
|
|
41
|
-
"captured_at": "2026-
|
|
41
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
42
42
|
"template": [
|
|
43
43
|
{
|
|
44
44
|
"id": "text",
|
|
@@ -214,5 +214,9 @@
|
|
|
214
214
|
"footer"
|
|
215
215
|
]
|
|
216
216
|
}
|
|
217
|
-
]
|
|
217
|
+
],
|
|
218
|
+
"catalogEntry": {
|
|
219
|
+
"tier": "L1",
|
|
220
|
+
"name": "signup-form-card"
|
|
221
|
+
}
|
|
218
222
|
}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"business-metrics"
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
|
-
"captured_at": "2026-
|
|
43
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
44
44
|
"template": [
|
|
45
45
|
{
|
|
46
46
|
"id": "stat",
|
|
@@ -174,5 +174,9 @@
|
|
|
174
174
|
"card-4"
|
|
175
175
|
]
|
|
176
176
|
}
|
|
177
|
-
]
|
|
177
|
+
],
|
|
178
|
+
"catalogEntry": {
|
|
179
|
+
"tier": "L1",
|
|
180
|
+
"name": "stat-cards-kpi-dashboard"
|
|
181
|
+
}
|
|
178
182
|
}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"tab-strip"
|
|
23
23
|
]
|
|
24
24
|
},
|
|
25
|
-
"captured_at": "2026-08-
|
|
25
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
26
26
|
"template": [
|
|
27
27
|
{
|
|
28
28
|
"id": "tab",
|
|
@@ -183,5 +183,9 @@
|
|
|
183
183
|
"card"
|
|
184
184
|
]
|
|
185
185
|
}
|
|
186
|
-
]
|
|
186
|
+
],
|
|
187
|
+
"catalogEntry": {
|
|
188
|
+
"tier": "L1",
|
|
189
|
+
"name": "tabs-with-panels"
|
|
190
|
+
}
|
|
187
191
|
}
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"mouth"
|
|
47
47
|
]
|
|
48
48
|
},
|
|
49
|
-
"captured_at": "2026-08-
|
|
49
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
50
50
|
"template": [
|
|
51
51
|
{
|
|
52
52
|
"id": "text",
|
|
@@ -133,5 +133,9 @@
|
|
|
133
133
|
"card"
|
|
134
134
|
]
|
|
135
135
|
}
|
|
136
|
-
]
|
|
136
|
+
],
|
|
137
|
+
"catalogEntry": {
|
|
138
|
+
"tier": "L1",
|
|
139
|
+
"name": "testimonial-pull-quote"
|
|
140
|
+
}
|
|
137
141
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"icon-only"
|
|
31
31
|
]
|
|
32
32
|
},
|
|
33
|
-
"captured_at": "2026-08-
|
|
33
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
34
34
|
"template": [
|
|
35
35
|
{
|
|
36
36
|
"id": "bold",
|
|
@@ -212,5 +212,9 @@
|
|
|
212
212
|
"row"
|
|
213
213
|
]
|
|
214
214
|
}
|
|
215
|
-
]
|
|
215
|
+
],
|
|
216
|
+
"catalogEntry": {
|
|
217
|
+
"tier": "L1",
|
|
218
|
+
"name": "toolbar-icons"
|
|
219
|
+
}
|
|
216
220
|
}
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"period"
|
|
45
45
|
]
|
|
46
46
|
},
|
|
47
|
-
"captured_at": "2026-08-
|
|
47
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
48
48
|
"template": [
|
|
49
49
|
{
|
|
50
50
|
"id": "text",
|
|
@@ -213,5 +213,9 @@
|
|
|
213
213
|
"card"
|
|
214
214
|
]
|
|
215
215
|
}
|
|
216
|
-
]
|
|
216
|
+
],
|
|
217
|
+
"catalogEntry": {
|
|
218
|
+
"tier": "L1",
|
|
219
|
+
"name": "usage-quota-meter-card"
|
|
220
|
+
}
|
|
217
221
|
}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"user-profile"
|
|
28
28
|
]
|
|
29
29
|
},
|
|
30
|
-
"captured_at": "2026-08-
|
|
30
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
31
31
|
"template": [
|
|
32
32
|
{
|
|
33
33
|
"id": "avatar",
|
|
@@ -188,5 +188,9 @@
|
|
|
188
188
|
"footer"
|
|
189
189
|
]
|
|
190
190
|
}
|
|
191
|
-
]
|
|
191
|
+
],
|
|
192
|
+
"catalogEntry": {
|
|
193
|
+
"tier": "L1",
|
|
194
|
+
"name": "user-profile-card"
|
|
195
|
+
}
|
|
192
196
|
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"compliance"
|
|
26
26
|
]
|
|
27
27
|
},
|
|
28
|
-
"captured_at": "2026-
|
|
28
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
29
29
|
"template": [
|
|
30
30
|
{
|
|
31
31
|
"id": "text",
|
|
@@ -107,5 +107,9 @@
|
|
|
107
107
|
"section"
|
|
108
108
|
]
|
|
109
109
|
}
|
|
110
|
-
]
|
|
110
|
+
],
|
|
111
|
+
"catalogEntry": {
|
|
112
|
+
"tier": "L1",
|
|
113
|
+
"name": "verification-stepper"
|
|
114
|
+
}
|
|
111
115
|
}
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"callbacks"
|
|
29
29
|
]
|
|
30
30
|
},
|
|
31
|
-
"captured_at": "2026-08-
|
|
31
|
+
"captured_at": "2026-08-15T04:10:49.553Z",
|
|
32
32
|
"template": [
|
|
33
33
|
{
|
|
34
34
|
"id": "text",
|
|
@@ -200,5 +200,9 @@
|
|
|
200
200
|
"section"
|
|
201
201
|
]
|
|
202
202
|
}
|
|
203
|
-
]
|
|
203
|
+
],
|
|
204
|
+
"catalogEntry": {
|
|
205
|
+
"tier": "L1",
|
|
206
|
+
"name": "webhooks-list"
|
|
207
|
+
}
|
|
204
208
|
}
|
package/corpus/manifest.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Gen-UI training-chunk library.
|
|
3
3
|
*
|
|
4
4
|
* Loads the harvester's per-chunk JSON records + aggregate index from
|
|
5
|
-
* `packages/gen-ui/corpus/chunks/` into in-memory Maps for fast retrieval.
|
|
5
|
+
* `packages/gen-ui/engine/corpus/chunks/` into in-memory Maps for fast retrieval.
|
|
6
6
|
*
|
|
7
7
|
* Used by:
|
|
8
|
-
* - packages/a2ui/mcp/server.js — exposes search_chunks / get_chunk / lookup_chunk tools
|
|
9
|
-
* - packages/gen-ui/compose/strategies/zettel/chunk-synthesizer.js — Phase C.2
|
|
8
|
+
* - packages/gen-ui/a2ui/mcp/server.js — exposes search_chunks / get_chunk / lookup_chunk tools
|
|
9
|
+
* - packages/gen-ui/engine/compose/strategies/zettel/chunk-synthesizer.js — Phase C.2
|
|
10
10
|
*
|
|
11
11
|
* Spec: .claude/docs/specs/genui-chunk-marker.md (Draft v0.1.0).
|
|
12
12
|
*/
|
package/node-shims.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Consumers: gen-ui/{compose,retrieval,validate} (via `../node-shims.d.ts`)
|
|
8
8
|
* and a2ui/mcp (via `../../gen-ui/node-shims.d.ts`). This lived at
|
|
9
|
-
* packages/a2ui/node-shims.d.ts until ADR-0048 P1 moved retrieval — its
|
|
9
|
+
* packages/gen-ui/a2ui/node-shims.d.ts until ADR-0048 P1 moved retrieval — its
|
|
10
10
|
* original and primary consumer — into @adia-ai/gen-ui. Kept as ONE copy
|
|
11
11
|
* on purpose: two ambient shim files drift silently.
|
|
12
12
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/gen-ui",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.39",
|
|
4
4
|
"description": "AdiaUI generative-UI system — compose strategies, retrieval, the harvested training corpus, and catalog-aware + LLM-judge validation. Emits A2UI protocol messages; pairs with @adia-ai/a2ui (the protocol runtime). Folded from @adia-ai/a2ui-{compose,retrieval,corpus} + the catalog/semantic halves of the former @adia-ai/a2ui-validator (ADR-0048).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./compose/index.js",
|
|
@@ -120,11 +120,6 @@
|
|
|
120
120
|
"import": "./retrieval/*.js",
|
|
121
121
|
"default": "./retrieval/*.js"
|
|
122
122
|
},
|
|
123
|
-
"./corpus": {
|
|
124
|
-
"types": "./corpus/catalog-a2ui_0_9.d.ts",
|
|
125
|
-
"import": "./corpus/catalog-a2ui_0_9.json",
|
|
126
|
-
"default": "./corpus/catalog-a2ui_0_9.json"
|
|
127
|
-
},
|
|
128
123
|
"./corpus/manifest": {
|
|
129
124
|
"types": "./corpus/manifest.d.ts",
|
|
130
125
|
"import": "./corpus/manifest.json",
|
|
@@ -178,8 +173,6 @@
|
|
|
178
173
|
"retrieval/embedding/",
|
|
179
174
|
"retrieval/feedback/",
|
|
180
175
|
"retrieval/authoring/",
|
|
181
|
-
"corpus/catalog-a2ui_0_9.json",
|
|
182
|
-
"corpus/catalog-a2ui_0_9_rules.txt",
|
|
183
176
|
"corpus/manifest.json",
|
|
184
177
|
"corpus/chunks/",
|
|
185
178
|
"corpus/chunk-embeddings.json",
|
|
@@ -200,7 +193,7 @@
|
|
|
200
193
|
"repository": {
|
|
201
194
|
"type": "git",
|
|
202
195
|
"url": "git+https://github.com/adiahealth/gen-ui-kit.git",
|
|
203
|
-
"directory": "packages/gen-ui"
|
|
196
|
+
"directory": "packages/gen-ui/engine"
|
|
204
197
|
},
|
|
205
198
|
"dependencies": {
|
|
206
199
|
"@adia-ai/agent": "^0.8.0",
|
package/retrieval/CHANGELOG.md
CHANGED
|
@@ -748,7 +748,7 @@ _No pending changes._
|
|
|
748
748
|
|
|
749
749
|
Lockstep PATCH cut alongside `@adia-ai/web-components@0.4.8` (§80 event-types codegen for 38 non-form primitives + §85 class-subpath script fix + §89 icons.js split + B+C+D consumer-friction infra), `@adia-ai/web-modules@0.4.8` (FEEDBACK-02 #1 `.d.ts` shipment + `composes:` ADR-0027 wiring), `@adia-ai/a2ui-compose@0.4.8` (§87 zettel `ensureBooted()` race fix + §88 free-form composition mode), `@adia-ai/a2ui-corpus@0.4.8` (catalog regen ride-along), `@adia-ai/a2ui-mcp@0.4.8` (§87 eval threshold rebaseline). Source byte-identical to v0.4.7.
|
|
750
750
|
|
|
751
|
-
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.8]`](
|
|
751
|
+
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.8]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
752
752
|
## [0.4.7] - 2026-05-12
|
|
753
753
|
|
|
754
754
|
### Removed — `embedding/embedding-retriever.js` + `concept-mapper.js` retired (§72, the §65 carry-over)
|
|
@@ -772,21 +772,21 @@ The legacy `pattern-library.js` retrieval surface is retired in v0.4.6. Composit
|
|
|
772
772
|
- **`authoring/index.js` + `authoring/pattern-promotion.js` + `authoring/synthetic-data.js` retired** (§64 step 2). All three were dead code by §63 (pattern-promotion fired on a surface that no consumer exercised; synthetic-data targeted the pattern shape). Files deleted; barrel re-exports cleaned.
|
|
773
773
|
- **`index.js`** — barrel updated to reflect the carved-out + retired modules.
|
|
774
774
|
|
|
775
|
-
See root [CHANGELOG.md `[Unreleased]`](
|
|
775
|
+
See root [CHANGELOG.md `[Unreleased]`](../../../../CHANGELOG.md) and `@adia-ai/a2ui-compose@[Unreleased]` for the cross-cutting arc narrative.
|
|
776
776
|
## [0.4.5] - 2026-05-12
|
|
777
777
|
|
|
778
778
|
### Ride-along (no source changes)
|
|
779
779
|
|
|
780
780
|
Lockstep PATCH cut alongside `@adia-ai/web-components@0.4.5` (§61 CSS subpath exports + CustomEvent.detail sweep across 17 form-bearing primitives + slider reactivity test lock-in + §52 design-tokens export module + UI), `@adia-ai/web-modules@0.4.5` (§61 CSS subpath exports — six cluster `*.css` exports), `@adia-ai/a2ui-compose@0.4.5` (§56 system-prompt CORPUS CONTEXT block in monolithic strategies), `@adia-ai/llm@0.4.5` (§54 doc-comment path refresh). Source byte-identical to v0.4.4.
|
|
781
781
|
|
|
782
|
-
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.5]`](
|
|
782
|
+
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.5]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
783
783
|
## [0.4.4] - 2026-05-12
|
|
784
784
|
|
|
785
785
|
### Ride-along (no source changes)
|
|
786
786
|
|
|
787
787
|
Lockstep PATCH cut alongside `@adia-ai/web-components@0.4.4` (14 yaml gap closures from corpus simplification arc), `@adia-ai/a2ui-runtime@0.4.4` (registry expansion +27 web-modules + renderer kebab-case fix), `@adia-ai/a2ui-compose@0.4.4` (composition-library rename + transpiler `<a>` → Link), `@adia-ai/a2ui-corpus@0.4.4` (corpus simplification arc §36–§51), `@adia-ai/a2ui-mcp@0.4.4` (`get_fragment` tool retirement). Source byte-identical to v0.4.3.
|
|
788
788
|
|
|
789
|
-
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.4]`](
|
|
789
|
+
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.4]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
790
790
|
## [0.4.3] - 2026-05-11
|
|
791
791
|
|
|
792
792
|
### Fixed
|
|
@@ -795,46 +795,46 @@ Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4
|
|
|
795
795
|
|
|
796
796
|
### Lockstep
|
|
797
797
|
|
|
798
|
-
9-package coordinated PATCH cut to v0.4.3. Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry). Source change scoped to one file (`feedback/dialog-recorder.js`); pairs with the same fix in `@adia-ai/a2ui-compose` v0.4.3. See root [CHANGELOG.md `## [0.4.3]`](
|
|
798
|
+
9-package coordinated PATCH cut to v0.4.3. Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry). Source change scoped to one file (`feedback/dialog-recorder.js`); pairs with the same fix in `@adia-ai/a2ui-compose` v0.4.3. See root [CHANGELOG.md `## [0.4.3]`](../../../../CHANGELOG.md).
|
|
799
799
|
## [0.4.2] - 2026-05-11
|
|
800
800
|
|
|
801
801
|
### Ride-along (no source changes)
|
|
802
802
|
|
|
803
803
|
Lockstep PATCH cut alongside `@adia-ai/web-components@0.4.2` (`<input-ui type="number">` rewrite drops native `<input type=number>` wrapping) + `@adia-ai/web-modules@0.4.2` (`<editor-sidebar>` grid-track width-mirror fix). Source byte-identical to v0.4.1.
|
|
804
804
|
|
|
805
|
-
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.2]`](
|
|
805
|
+
Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). See root [CHANGELOG.md `## [0.4.2]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
806
806
|
## [0.4.1] - 2026-05-10
|
|
807
807
|
|
|
808
808
|
### Ride-along (no source changes)
|
|
809
809
|
|
|
810
810
|
Lockstep PATCH cut alongside `@adia-ai/web-modules@0.4.1` (simple cluster) + `@adia-ai/a2ui-validator@0.4.1` (Phase 3 foundation) + `@adia-ai/a2ui-corpus@0.4.1` (fragment metrics reconciliation). Source byte-identical to v0.4.0.
|
|
811
811
|
|
|
812
|
-
Internal `@adia-ai/*` dep ranges bumped from `^0.4.0` to `^0.4.1`. See root [CHANGELOG.md `## [0.4.1]`](
|
|
812
|
+
Internal `@adia-ai/*` dep ranges bumped from `^0.4.0` to `^0.4.1`. See root [CHANGELOG.md `## [0.4.1]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
813
813
|
## [0.4.0] - 2026-05-10
|
|
814
814
|
|
|
815
815
|
### Ride-along (no source changes)
|
|
816
816
|
|
|
817
817
|
Lockstep MINOR cut alongside `@adia-ai/web-modules@0.4.0` (ADR-0024 legacy shell shapes retired). Source byte-identical to v0.3.6.
|
|
818
818
|
|
|
819
|
-
Internal `@adia-ai/*` dep ranges bumped from `^0.3.0` to `^0.4.0`. See root [CHANGELOG.md `## [0.4.0]`](
|
|
819
|
+
Internal `@adia-ai/*` dep ranges bumped from `^0.3.0` to `^0.4.0`. See root [CHANGELOG.md `## [0.4.0]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
820
820
|
## [0.3.6] - 2026-05-10
|
|
821
821
|
|
|
822
822
|
### Ride-along (no source changes)
|
|
823
823
|
|
|
824
|
-
Lockstep version bump only — source byte-identical to v0.3.5. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.6]`](
|
|
824
|
+
Lockstep version bump only — source byte-identical to v0.3.5. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.6]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
825
825
|
## [0.3.5] - 2026-05-07
|
|
826
826
|
|
|
827
827
|
### Ride-along (no source changes)
|
|
828
828
|
|
|
829
|
-
Lockstep version bump only — source byte-identical to v0.3.4. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.5]`](
|
|
829
|
+
Lockstep version bump only — source byte-identical to v0.3.4. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.5]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
830
830
|
## [0.3.4] - 2026-05-07
|
|
831
831
|
|
|
832
832
|
### Ride-along (no source changes)
|
|
833
833
|
|
|
834
|
-
Lockstep version bump only — source byte-identical to v0.3.3. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.4]`](
|
|
834
|
+
Lockstep version bump only — source byte-identical to v0.3.3. Internal `@adia-ai/*` dep ranges remain at `^0.3.0`. See root [CHANGELOG.md `## [0.3.4]`](../../../../CHANGELOG.md) for the cut narrative.
|
|
835
835
|
## [0.3.3] - 2026-05-07
|
|
836
836
|
|
|
837
|
-
**Lockstep cut.** All 9 published `@adia-ai/*` packages now share version `0.3.3`, governed by [`.claude/docs/specs/package-architecture.md` § 15](
|
|
837
|
+
**Lockstep cut.** All 9 published `@adia-ai/*` packages now share version `0.3.3`, governed by [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` ranges stay at `^0.3.0` (patch-cut asymmetry — caret floats `0.3.x`).
|
|
838
838
|
|
|
839
839
|
### Changed
|
|
840
840
|
|
|
@@ -848,7 +848,7 @@ Lockstep version bump only — source byte-identical to v0.3.3. Internal `@adia-
|
|
|
848
848
|
## [0.3.2] - 2026-05-06
|
|
849
849
|
|
|
850
850
|
**9-package lockstep patch cut to v0.3.2.** All lockstep members share
|
|
851
|
-
one version per [`.claude/docs/specs/package-architecture.md` § 15](
|
|
851
|
+
one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
|
|
852
852
|
Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
|
|
853
853
|
|
|
854
854
|
### No source changes
|
|
@@ -861,7 +861,7 @@ version only.
|
|
|
861
861
|
- `version`: `0.3.1` → `0.3.2`.
|
|
862
862
|
## [0.3.1] - 2026-05-06
|
|
863
863
|
|
|
864
|
-
**9-package lockstep patch cut.** All 9 published `@adia-ai/*` packages bump 0.3.0 → 0.3.1 per [`.claude/docs/specs/package-architecture.md` § 15](
|
|
864
|
+
**9-package lockstep patch cut.** All 9 published `@adia-ai/*` packages bump 0.3.0 → 0.3.1 per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
|
|
865
865
|
|
|
866
866
|
This package itself ships **no source changes** in v0.3.1. The cut bumps version only — substantive content lives in [`@adia-ai/web-components`](https://github.com/adiahealth/gen-ui-kit/releases/tag/web-components-v0.3.1) (folder-per-trait restructure; barrel API unchanged).
|
|
867
867
|
|
|
@@ -871,7 +871,7 @@ This package itself ships **no source changes** in v0.3.1. The cut bumps version
|
|
|
871
871
|
- Internal `@adia-ai/*` dep ranges: unchanged at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
|
|
872
872
|
## [0.3.0] - 2026-05-05
|
|
873
873
|
|
|
874
|
-
**9-package lockstep cut.** All 9 published `@adia-ai/*` packages bump 0.2.5 → 0.3.0 per [`.claude/docs/specs/package-architecture.md` § 15](
|
|
874
|
+
**9-package lockstep cut.** All 9 published `@adia-ai/*` packages bump 0.2.5 → 0.3.0 per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges bump `^0.2.0` → `^0.3.0`.
|
|
875
875
|
|
|
876
876
|
The lockstep policy expanded from 8 to 9 packages with this cut — `@adia-ai/llm` joins as a 9th member, and `@adia-ai/a2ui-utils` was renamed to `@adia-ai/a2ui-runtime`. This package's `dependencies` updated accordingly.
|
|
877
877
|
|
|
@@ -884,7 +884,7 @@ This package itself ships **no source changes** in v0.3.0. The cut bumps version
|
|
|
884
884
|
- `version`: `0.2.5` → `0.3.0`.
|
|
885
885
|
## [0.2.5] - 2026-05-04
|
|
886
886
|
|
|
887
|
-
**8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.4 → 0.2.5 per [`.claude/docs/specs/package-architecture.md` § 15](
|
|
887
|
+
**8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.4 → 0.2.5 per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.5 under semver — patch-cut asymmetry).
|
|
888
888
|
|
|
889
889
|
This is a **patch cut on top of v0.2.4, no BREAKING changes.** Substantive content lives in `web-components` (new `<fields-ui>` form-grid primitive + `draggable-list-item` last-item drop-zone fix, both surfaced by the Tasks UI Playground at `.claude/docs/projects/tasks-playground/`); `a2ui-corpus` ships a catalog regen for the new `<fields-ui>` yaml. `a2ui-retrieval` rides along at version bump only — no source change.
|
|
890
890
|
|
|
@@ -894,7 +894,7 @@ This is a **patch cut on top of v0.2.4, no BREAKING changes.** Substantive conte
|
|
|
894
894
|
- Internal `@adia-ai/*` dep ranges: unchanged at `^0.2.0` (covers `0.2.5` under semver — patch-cut asymmetry).
|
|
895
895
|
## [0.2.4] - 2026-05-04
|
|
896
896
|
|
|
897
|
-
**8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.3 → 0.2.4 per [`.claude/docs/specs/package-architecture.md` § 15](
|
|
897
|
+
**8-package lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.3 → 0.2.4 per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Internal `@adia-ai/*` dep ranges remain at `^0.2.0` (covers 0.2.4 under semver — patch-cut asymmetry).
|
|
898
898
|
|
|
899
899
|
This is a **patch cut on top of v0.2.3, no BREAKING changes.** Substantive content lives in `web-components` (Tier 4 trait library lift, 11 new traits + 2 architectural rewrites, plus accumulated bug fixes); `a2ui-corpus` ships a catalog regen for the new `<demo-toggle-ui>` primitive. Six packages ride along at version + dep-range bump.
|
|
900
900
|
|
|
@@ -914,7 +914,7 @@ _Nothing yet._
|
|
|
914
914
|
|
|
915
915
|
**Lockstep cut.** All 8 published `@adia-ai/*` packages bump
|
|
916
916
|
0.2.2 → 0.2.3 per
|
|
917
|
-
[`.claude/docs/specs/package-architecture.md` § 15](
|
|
917
|
+
[`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
|
|
918
918
|
Patch cut — no breaking changes.
|
|
919
919
|
|
|
920
920
|
### Changed
|
|
@@ -927,7 +927,7 @@ Patch cut — no breaking changes.
|
|
|
927
927
|
`@adia-ai/a2ui-retrieval` source is byte-identical to `0.2.2`. The cut bumps version + the internal dep range entries only.
|
|
928
928
|
## [0.2.2] - 2026-05-02
|
|
929
929
|
|
|
930
|
-
**Lockstep cut + `detectReferences` brand-only filter.** All 8 published `@adia-ai/*` packages bump 0.2.1 → 0.2.2 per [`.claude/docs/specs/package-architecture.md` § 15](
|
|
930
|
+
**Lockstep cut + `detectReferences` brand-only filter.** All 8 published `@adia-ai/*` packages bump 0.2.1 → 0.2.2 per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
|
|
931
931
|
|
|
932
932
|
### Changed
|
|
933
933
|
|
|
@@ -957,7 +957,7 @@ Per memory `feedback_panel_label_reliability.md`. Companion fix in `@adia-ai/a2u
|
|
|
957
957
|
---
|
|
958
958
|
## [0.2.1] - 2026-05-02
|
|
959
959
|
|
|
960
|
-
**Lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.0 → 0.2.1 per [`.claude/docs/specs/package-architecture.md` § 15](
|
|
960
|
+
**Lockstep cut.** All 8 published `@adia-ai/*` packages bump 0.2.0 → 0.2.1 per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy). Patch cut — no breaking changes.
|
|
961
961
|
|
|
962
962
|
### Changed
|
|
963
963
|
|
|
@@ -975,7 +975,7 @@ Public API of `a2ui-retrieval` is byte-identical to `0.2.0`. The above embedding
|
|
|
975
975
|
|
|
976
976
|
**Lockstep cut + boundary reorganization.** All 8 published
|
|
977
977
|
`@adia-ai/*` packages now share one version, governed by
|
|
978
|
-
[`.claude/docs/specs/package-architecture.md` § 15 (Versioning Policy)](
|
|
978
|
+
[`.claude/docs/specs/package-architecture.md` § 15 (Versioning Policy)](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
|
|
979
979
|
This release also lands the boundary cleanup from T4 of the
|
|
980
980
|
`.claude/docs/plans/packages-architecture-fixes-2026-05-02.md`
|
|
981
981
|
plan.
|
package/retrieval/catalog.js
CHANGED
|
@@ -25,7 +25,7 @@ async function loadSchemas() {
|
|
|
25
25
|
const { readdir, readFile, stat } = await import(/* @vite-ignore */ 'node:fs/promises');
|
|
26
26
|
const { fileURLToPath } = await import(/* @vite-ignore */ 'node:url');
|
|
27
27
|
const { dirname, join } = await import(/* @vite-ignore */ 'node:path');
|
|
28
|
-
const compsDir = join(dirname(fileURLToPath(import.meta.url)), '
|
|
28
|
+
const compsDir = join(dirname(fileURLToPath(import.meta.url)), '../../../web-components/components');
|
|
29
29
|
const entries = await readdir(compsDir, { withFileTypes: true });
|
|
30
30
|
for (const e of entries) {
|
|
31
31
|
if (!e.isDirectory()) continue;
|
|
@@ -47,7 +47,7 @@ async function loadSchemas() {
|
|
|
47
47
|
// produced loaders. See composition-library.js for the full rationale.
|
|
48
48
|
let modules = null;
|
|
49
49
|
try {
|
|
50
|
-
modules = import.meta.glob('
|
|
50
|
+
modules = import.meta.glob('../../../web-components/components/*/*.a2ui.json', { query: '?raw', import: 'default' });
|
|
51
51
|
} catch { /* no Vite transform — static deploy */ }
|
|
52
52
|
|
|
53
53
|
if (modules && Object.keys(modules).length > 0) {
|
|
@@ -64,9 +64,12 @@ async function loadSchemas() {
|
|
|
64
64
|
// Static deploy — fetch the consolidated catalog once. Its `components`
|
|
65
65
|
// values carry the same `x-adiaui.tag` shape as the per-component
|
|
66
66
|
// sidecars (2026-06-10). Relative-to-module so it resolves under any
|
|
67
|
-
// mount point + the dist symlink layout.
|
|
67
|
+
// mount point + the dist symlink layout. The catalog is protocol-side
|
|
68
|
+
// since ADR-0050 (`@adia-ai/a2ui/catalog`); from engine/retrieval/ that
|
|
69
|
+
// is the sibling package dir, which is also what `../../a2ui/catalog/`
|
|
70
|
+
// resolves to inside a flat node_modules install.
|
|
68
71
|
try {
|
|
69
|
-
const url = new URL('
|
|
72
|
+
const url = new URL('../../a2ui/catalog/catalog-a2ui_0_9.json', import.meta.url);
|
|
70
73
|
const res = await fetch(url);
|
|
71
74
|
if (res.ok) {
|
|
72
75
|
const catalog = await res.json();
|
|
@@ -132,7 +135,7 @@ async function loadTraitRegistry() {
|
|
|
132
135
|
const { readFile } = await import(/* @vite-ignore */ 'node:fs/promises');
|
|
133
136
|
const { fileURLToPath } = await import(/* @vite-ignore */ 'node:url');
|
|
134
137
|
const { dirname, join } = await import(/* @vite-ignore */ 'node:path');
|
|
135
|
-
const path = join(dirname(fileURLToPath(import.meta.url)), '
|
|
138
|
+
const path = join(dirname(fileURLToPath(import.meta.url)), '../../../web-components/traits/_catalog.json');
|
|
136
139
|
const raw = await readFile(path, 'utf8');
|
|
137
140
|
const data = JSON.parse(raw);
|
|
138
141
|
traitRegistry = data.traits.map(t => ({
|
|
@@ -33,7 +33,7 @@ let _loadPromise = null;
|
|
|
33
33
|
let _globA2UIModules = null;
|
|
34
34
|
if (!IS_NODE) {
|
|
35
35
|
try {
|
|
36
|
-
_globA2UIModules = import.meta.glob('
|
|
36
|
+
_globA2UIModules = import.meta.glob('../../../web-components/components/**/*.a2ui.json', {
|
|
37
37
|
query: '?raw',
|
|
38
38
|
import: 'default',
|
|
39
39
|
});
|
|
@@ -44,13 +44,15 @@ if (!IS_NODE) {
|
|
|
44
44
|
const HAS_VITE_GLOB =
|
|
45
45
|
!IS_NODE && !!_globA2UIModules && Object.keys(_globA2UIModules).length > 0;
|
|
46
46
|
|
|
47
|
-
// Static-deploy source: the consolidated catalog
|
|
48
|
-
// Its `components` map values are
|
|
49
|
-
// `.a2ui.json` sidecars (verified
|
|
50
|
-
//
|
|
47
|
+
// Static-deploy source: the consolidated catalog, protocol-side since
|
|
48
|
+
// ADR-0050 (`@adia-ai/a2ui/catalog`). Its `components` map values are
|
|
49
|
+
// byte-shape-identical to the standalone `.a2ui.json` sidecars (verified
|
|
50
|
+
// 2026-06-10), so one fetch replaces 138. Relative-to-module from
|
|
51
|
+
// engine/retrieval/ → `../../a2ui/catalog/` — the sibling package dir in the
|
|
52
|
+
// repo, the static deploy, and a flat node_modules install alike.
|
|
51
53
|
const _CONSOLIDATED_CATALOG_URL =
|
|
52
54
|
!IS_NODE && !HAS_VITE_GLOB
|
|
53
|
-
? new URL('
|
|
55
|
+
? new URL('../../a2ui/catalog/catalog-a2ui_0_9.json', import.meta.url)
|
|
54
56
|
: null;
|
|
55
57
|
|
|
56
58
|
async function _loadNode() {
|
|
@@ -59,7 +61,7 @@ async function _loadNode() {
|
|
|
59
61
|
const url = await import(/* @vite-ignore */ 'node:url');
|
|
60
62
|
|
|
61
63
|
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
62
|
-
const componentsDir = path.resolve(__dirname, '..', '..', 'web-components', 'components');
|
|
64
|
+
const componentsDir = path.resolve(__dirname, '..', '..', '..', 'web-components', 'components');
|
|
63
65
|
|
|
64
66
|
let compEntries;
|
|
65
67
|
try {
|
|
@@ -19,7 +19,7 @@ async function _ensureModules() {
|
|
|
19
19
|
"node:url"
|
|
20
20
|
);
|
|
21
21
|
const __dirname = _path.dirname(_url.fileURLToPath(import.meta.url));
|
|
22
|
-
_logsRoot = _path.resolve(__dirname, "..", "..", "..", "..", "logs", "dialogs");
|
|
22
|
+
_logsRoot = _path.resolve(__dirname, "..", "..", "..", "..", "..", "logs", "dialogs");
|
|
23
23
|
}
|
|
24
24
|
const _turnCounter = /* @__PURE__ */ new Map();
|
|
25
25
|
const _sessionMetaWritten = /* @__PURE__ */ new Set();
|
|
@@ -16,7 +16,7 @@ if (IS_NODE) {
|
|
|
16
16
|
} catch {
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
const FEEDBACK_DIR = path ? path.join(path.dirname(new URL(import.meta.url).pathname), "..", "..", "..", "
|
|
19
|
+
const FEEDBACK_DIR = path ? path.join(path.dirname(new URL(import.meta.url).pathname), "..", "..", "..", "engine/corpus", "feedback") : null;
|
|
20
20
|
class FeedbackAnalyzer {
|
|
21
21
|
/**
|
|
22
22
|
* Read JSONL feedback files for the last N days.
|
|
@@ -19,7 +19,7 @@ function feedbackDir() {
|
|
|
19
19
|
if (!path) return null;
|
|
20
20
|
const override = typeof process !== "undefined" ? process.env?.["A2UI_FEEDBACK_DIR"] : void 0;
|
|
21
21
|
if (override) return override;
|
|
22
|
-
return path.join(path.dirname(new URL(import.meta.url).pathname), "..", "..", "..", "
|
|
22
|
+
return path.join(path.dirname(new URL(import.meta.url).pathname), "..", "..", "..", "engine/corpus", "feedback");
|
|
23
23
|
}
|
|
24
24
|
function todayFile() {
|
|
25
25
|
const dir = feedbackDir();
|
|
@@ -14,7 +14,7 @@ if (IS_NODE) {
|
|
|
14
14
|
} catch {
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
const REGISTRY_PATH = path ? path.join(path.dirname(new URL(import.meta.url).pathname), "..", "..", "..", "
|
|
17
|
+
const REGISTRY_PATH = path ? path.join(path.dirname(new URL(import.meta.url).pathname), "..", "..", "..", "engine/corpus", "gaps", "registry.json") : null;
|
|
18
18
|
async function loadGaps() {
|
|
19
19
|
if (!fs || !REGISTRY_PATH) return [];
|
|
20
20
|
try {
|
|
@@ -17,11 +17,21 @@ async function getVocab() {
|
|
|
17
17
|
/* @vite-ignore */
|
|
18
18
|
"node:url"
|
|
19
19
|
);
|
|
20
|
+
const { createRequire } = await import(
|
|
21
|
+
/* @vite-ignore */
|
|
22
|
+
"node:module"
|
|
23
|
+
);
|
|
20
24
|
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
21
|
-
|
|
25
|
+
let catalogPath;
|
|
26
|
+
try {
|
|
27
|
+
catalogPath = createRequire(import.meta.url).resolve("@adia-ai/a2ui/catalog");
|
|
28
|
+
} catch {
|
|
29
|
+
catalogPath = path.join(__dirname, "../../../a2ui/catalog/catalog-a2ui_0_9.json");
|
|
30
|
+
}
|
|
31
|
+
const raw = await fs.readFile(catalogPath, "utf8");
|
|
22
32
|
catalogJson = JSON.parse(raw);
|
|
23
33
|
} else {
|
|
24
|
-
const resp = await fetch(new URL("
|
|
34
|
+
const resp = await fetch(new URL("../../../a2ui/catalog/catalog-a2ui_0_9.json", import.meta.url));
|
|
25
35
|
if (resp.ok) catalogJson = await resp.json();
|
|
26
36
|
}
|
|
27
37
|
} catch {
|
|
@@ -82,7 +82,7 @@ function getWiringCatalog() {
|
|
|
82
82
|
// wiringRegistry (6 controllers vs the 5 listed here) while building the
|
|
83
83
|
// protocol MCP's registry-derived get_wiring_catalog.
|
|
84
84
|
//
|
|
85
|
-
// Fields below mirror `packages/a2ui/controllers/state-machine.js`'s
|
|
85
|
+
// Fields below mirror `packages/gen-ui/a2ui/controllers/state-machine.js`'s
|
|
86
86
|
// `static schema` — `commands` and `config` verbatim, `bind` keyed on
|
|
87
87
|
// its two state keys (`current`, `history`) with example model paths in
|
|
88
88
|
// the same shape as its siblings above. If a controller is added to the
|