@adia-ai/gen-ui 0.8.37 → 0.8.38

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +9 -3
  3. package/compose/CHANGELOG.md +22 -22
  4. package/compose/README.md +3 -3
  5. package/compose/evals/harness.mjs +1 -1
  6. package/compose/strategies/_shared/chunk-loader.js +2 -2
  7. package/compose/strategies/monolithic/_shared.js +18 -5
  8. package/compose/strategies/monolithic/generate-pro.js +1 -1
  9. package/compose/strategies/zettel/composition-library.js +2 -2
  10. package/compose/strategies/zettel/issue-reporter.js +1 -1
  11. package/compose/transpiler/transpiler-maps.js +2 -2
  12. package/compose/transpiler/transpiler.js +1 -1
  13. package/corpus/CHANGELOG.md +17 -17
  14. package/corpus/README.md +2 -2
  15. package/corpus/chunks/_source-hashes.json +17 -13
  16. package/corpus/chunks/bulk-action-toolbar-swap.json +1 -1
  17. package/corpus/manifest.json +2 -2
  18. package/corpus/scripts/chunk-library.js +3 -3
  19. package/node-shims.d.ts +1 -1
  20. package/package.json +2 -9
  21. package/retrieval/CHANGELOG.md +21 -21
  22. package/retrieval/catalog.js +8 -5
  23. package/retrieval/component-catalog.js +9 -7
  24. package/retrieval/feedback/dialog-recorder.js +1 -1
  25. package/retrieval/feedback/feedback-analyzer.js +1 -1
  26. package/retrieval/feedback/feedback-store.js +1 -1
  27. package/retrieval/feedback/gap-registry.js +1 -1
  28. package/retrieval/intent/prompt-analyzer.js +12 -2
  29. package/retrieval/wiring-catalog.js +1 -1
  30. package/validate/catalog-validator.js +22 -20
  31. package/validate/semantic/cache.js +1 -1
  32. package/validate/semantic/index.js +1 -1
  33. package/corpus/catalog-a2ui_0_9.d.ts +0 -4
  34. package/corpus/catalog-a2ui_0_9.json +0 -29571
  35. package/corpus/catalog-a2ui_0_9_rules.txt +0 -1215
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog — @adia-ai/gen-ui
2
2
 
3
+ ## [0.8.38] — 2026-08-15
4
+
5
+ ### Removed
6
+ - **BREAKING: the `./corpus` root export is gone — the catalog it resolved to now ships from `@adia-ai/a2ui/catalog` (ADR-0050, gh#1243).** `import catalog from '@adia-ai/gen-ui/corpus'` becomes `import catalog from '@adia-ai/a2ui/catalog'`, which needs only the zero-dependency protocol package. Every `./corpus/*` subpath (`chunks`, `chunks/*`, `manifest`, `chunk-embeddings`, `chunk-library`) is UNCHANGED: those are corpus fuel and they stay here. The catalog's authoring sources (`common_types.json`, `functions.json`) moved with it.
7
+
8
+ ### Changed
9
+ - **The catalog is consumed, not owned (ADR-0050).** Every load path — `retrieval/catalog.js`, `retrieval/component-catalog.js`, `retrieval/intent/prompt-analyzer`, `compose/strategies/monolithic/_shared.js`, `compose/transpiler/transpiler-maps.js`, `validate/catalog-validator.js` — reads the contract from the protocol package over the existing one-way `gen-ui → a2ui` dep edge. gh#748's published-consumer guarantee is preserved unchanged in shape: a bare specifier (`@adia-ai/a2ui/catalog`) tried FIRST, then the sibling-relative fetch/fs fallbacks, which resolve identically in the repo, on the static deploy, and in a flat `node_modules` tree.
10
+ - **Package directory moved `packages/gen-ui` → `packages/gen-ui/engine` (ADR-0049, gh#1244).** Directory move only — the npm name, exports, and API are unchanged.
11
+
3
12
  ## [0.8.37] — 2026-08-14
4
13
 
5
14
  ### Fixed
package/README.md CHANGED
@@ -7,7 +7,7 @@ One-way dependency: `gen-ui → a2ui`. This package produces A2UI documents;
7
7
  `@adia-ai/a2ui` is the protocol runtime that renders them. Nothing here is
8
8
  required to *render* A2UI — only to *generate* it.
9
9
 
10
- Minted by [ADR-0048](../../docs/adr/adr-0048-a2ui-gen-ui-estate-split.md) by
10
+ Minted by [ADR-0048](../../../docs/adr/adr-0048-a2ui-gen-ui-estate-split.md) by
11
11
  folding together four previously separate packages.
12
12
 
13
13
  ## What's inside
@@ -44,9 +44,15 @@ import { pick, registerEngine } from '@adia-ai/gen-ui/compose/strategies/registr
44
44
  import { classifyIntent } from '@adia-ai/gen-ui/retrieval/domain-router';
45
45
  import { getChunk } from '@adia-ai/gen-ui/corpus/chunk-library';
46
46
  import { validateMessages } from '@adia-ai/gen-ui/validate/catalog';
47
- import catalog from '@adia-ai/gen-ui/corpus' with { type: 'json' };
47
+ import catalog from '@adia-ai/a2ui/catalog' with { type: 'json' };
48
48
  ```
49
49
 
50
+ The catalog import is **not** a typo: since ADR-0050 the catalog is the
51
+ protocol-side contract and ships from `@adia-ai/a2ui/catalog` (this package
52
+ consumes it over the one-way `gen-ui → a2ui` edge). `@adia-ai/gen-ui/corpus/*`
53
+ still serves the corpus fuel — chunks, manifest, embeddings, chunk-library —
54
+ and the bare `@adia-ai/gen-ui/corpus` root export was removed with the move.
55
+
50
56
  ## Migrating from the old package names
51
57
 
52
58
  | Old | New |
@@ -64,7 +70,7 @@ The deprecated `@adia-ai/a2ui-compose/engine` and `/engines/*` aliases are
64
70
 
65
71
  Protocol-side validation (`validateSchema`) did **not** move here — it stays
66
72
  in the protocol package. The full map lives in
67
- [`.claude/docs/MIGRATION GUIDE.md`](../../.claude/docs/MIGRATION%20GUIDE.md).
73
+ [`.claude/docs/MIGRATION GUIDE.md`](../../../.claude/docs/MIGRATION%20GUIDE.md).
68
74
 
69
75
  ## Maintaining
70
76
 
@@ -1203,7 +1203,7 @@ Source: `packages/a2ui/compose/strategies/monolithic/_shared.js` (+91, -2 lines,
1203
1203
 
1204
1204
  - **`strategies/monolithic/generate-pro.js` — STRUCTURAL REFERENCE prose enriched.** Prior copy: "a real production block from the codebase matched this intent." New copy: "this chunk was retrieved from the AdiaUI training corpus (annotated production HTML, harvested from real app pages). It matched your intent on keyword/domain ranking." Threads chunk `metadata.domain`, `metadata.description`, `metadata.keywords` into the prompt when present. Reframes "do not copy the HTML" as "the chunk represents the SHAPE the user wants; instantiate it with their content" — more actionable framing.
1205
1205
 
1206
- See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the v0.4.5 overhaul arc + apps/genui/CHANGELOG.md `[Unreleased]` for the per-§ rollup.
1206
+ See root [CHANGELOG.md `[Unreleased]`](../../../../CHANGELOG.md) for the v0.4.5 overhaul arc + apps/genui/CHANGELOG.md `[Unreleased]` for the per-§ rollup.
1207
1207
  ## [0.4.4] - 2026-05-12
1208
1208
 
1209
1209
  ### Changed
@@ -1219,7 +1219,7 @@ See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the v0.4.5 ove
1219
1219
  - **`compose/strategies/monolithic/generate-pro.js` + companion `_shared/fragment-expander.js` — fragment machinery removed (§37).** Fragments retired; 85 compositions inlined with previously-referenced fragment content. Expander deleted; its caller's try/catch in `generator-adapter.js` handles the absence gracefully.
1220
1220
  - **MCP server `mcp/server.js` (§37).** Removed `get_fragment` tool, simplified `zettel_stats`, updated imports + boot logs + engine description to reflect the post-fragment world.
1221
1221
 
1222
- See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 37 / 38 / 41 / 47 for per-§ details.
1222
+ See root [CHANGELOG.md `[Unreleased]`](../../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 37 / 38 / 41 / 47 for per-§ details.
1223
1223
  ## [0.4.3] - 2026-05-11
1224
1224
 
1225
1225
  ### Fixed
@@ -1228,46 +1228,46 @@ See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutt
1228
1228
 
1229
1229
  ### Lockstep
1230
1230
 
1231
- 9-package coordinated PATCH cut to v0.4.3 (per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy)). Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). Source change scoped to `core/generator.js` + `strategies/zettel/state-cache.js`. Rides alongside `@adia-ai/web-components` v0.4.3 (input-ui locale + thousands grouping + hold-to-repeat). See root [CHANGELOG.md `## [0.4.3]`](../../../CHANGELOG.md) for the cut narrative.
1231
+ 9-package coordinated PATCH cut to v0.4.3 (per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy)). Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). Source change scoped to `core/generator.js` + `strategies/zettel/state-cache.js`. Rides alongside `@adia-ai/web-components` v0.4.3 (input-ui locale + thousands grouping + hold-to-repeat). See root [CHANGELOG.md `## [0.4.3]`](../../../../CHANGELOG.md) for the cut narrative.
1232
1232
  ## [0.4.2] - 2026-05-11
1233
1233
 
1234
1234
  ### Ride-along (no source changes)
1235
1235
 
1236
1236
  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.
1237
1237
 
1238
- 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.
1238
+ 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.
1239
1239
  ## [0.4.1] - 2026-05-10
1240
1240
 
1241
1241
  ### Ride-along (no source changes)
1242
1242
 
1243
1243
  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.
1244
1244
 
1245
- 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.
1245
+ 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.
1246
1246
  ## [0.4.0] - 2026-05-10
1247
1247
 
1248
1248
  ### Ride-along (no source changes)
1249
1249
 
1250
1250
  Lockstep MINOR cut alongside `@adia-ai/web-modules@0.4.0` (ADR-0024 legacy shell shapes retired). Source byte-identical to v0.3.6.
1251
1251
 
1252
- 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.
1252
+ 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.
1253
1253
  ## [0.3.6] - 2026-05-10
1254
1254
 
1255
1255
  ### Ride-along (no source changes)
1256
1256
 
1257
- 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.
1257
+ 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.
1258
1258
  ## [0.3.5] - 2026-05-07
1259
1259
 
1260
1260
  ### Ride-along (no source changes)
1261
1261
 
1262
- 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.
1262
+ 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.
1263
1263
  ## [0.3.4] - 2026-05-07
1264
1264
 
1265
1265
  ### Ride-along (no source changes)
1266
1266
 
1267
- 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.
1267
+ 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.
1268
1268
  ## [0.3.3] - 2026-05-07
1269
1269
 
1270
- **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`).
1270
+ **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`).
1271
1271
 
1272
1272
  ### Added
1273
1273
 
@@ -1312,7 +1312,7 @@ Lockstep version bump only — source byte-identical to v0.3.3. Internal `@adia-
1312
1312
  ## [0.3.2] - 2026-05-06
1313
1313
 
1314
1314
  **9-package lockstep patch cut to v0.3.2.** All lockstep members share
1315
- one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1315
+ one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1316
1316
  Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
1317
1317
 
1318
1318
  ### Added
@@ -1337,7 +1337,7 @@ Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
1337
1337
  - `version`: `0.3.1` → `0.3.2`.
1338
1338
  ## [0.3.1] - 2026-05-06
1339
1339
 
1340
- **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).
1340
+ **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).
1341
1341
 
1342
1342
  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).
1343
1343
 
@@ -1347,7 +1347,7 @@ This package itself ships **no source changes** in v0.3.1. The cut bumps version
1347
1347
  - Internal `@adia-ai/*` dep ranges: unchanged at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
1348
1348
  ## [0.3.0] - 2026-05-05
1349
1349
 
1350
- **9-package lockstep cut + LLM subpath dropped.** 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`.
1350
+ **9-package lockstep cut + LLM subpath dropped.** 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`.
1351
1351
 
1352
1352
  This is a **minor cut on top of v0.2.5 with one BREAKING change**: the `./llm` subpath export is removed. The LLM adapters that previously shipped under `@adia-ai/a2ui-compose/llm` now ship as their own package, `@adia-ai/llm` (9th lockstep member, first publish in this cut).
1353
1353
 
@@ -1392,7 +1392,7 @@ This is a **minor cut on top of v0.2.5 with one BREAKING change**: the `./llm` s
1392
1392
  Plus rewrite imports as shown above. The change is mechanical.
1393
1393
  ## [0.2.5] - 2026-05-04
1394
1394
 
1395
- **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).
1395
+ **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).
1396
1396
 
1397
1397
  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-compose` rides along at version bump only — no source change.
1398
1398
 
@@ -1402,7 +1402,7 @@ This is a **patch cut on top of v0.2.4, no BREAKING changes.** Substantive conte
1402
1402
  - Internal `@adia-ai/*` dep ranges: unchanged at `^0.2.0` (covers `0.2.5` under semver — patch-cut asymmetry).
1403
1403
  ## [0.2.4] - 2026-05-04
1404
1404
 
1405
- **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).
1405
+ **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).
1406
1406
 
1407
1407
  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.
1408
1408
 
@@ -1422,7 +1422,7 @@ _Nothing yet._
1422
1422
 
1423
1423
  **Lockstep cut.** All 8 published `@adia-ai/*` packages bump
1424
1424
  0.2.2 → 0.2.3 per
1425
- [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1425
+ [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1426
1426
  Patch cut — no breaking changes.
1427
1427
 
1428
1428
  ### Changed
@@ -1437,7 +1437,7 @@ Patch cut — no breaking changes.
1437
1437
  `@adia-ai/a2ui-compose` source is byte-identical to `0.2.2`. The cut bumps version + the internal dep range entries only.
1438
1438
  ## [0.2.2] - 2026-05-02
1439
1439
 
1440
- **Lockstep cut + reasoning-panel emission fixes.** 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.
1440
+ **Lockstep cut + reasoning-panel emission fixes.** 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.
1441
1441
 
1442
1442
  ### Changed
1443
1443
 
@@ -1460,7 +1460,7 @@ Companion fix in `@adia-ai/a2ui-retrieval` Unreleased (web-research.js EXPLICIT/
1460
1460
  ---
1461
1461
  ## [0.2.1] - 2026-05-02
1462
1462
 
1463
- **Lockstep cut + scope-drift gate at composer time + skeleton harvest + Tier-1 block filter + high-resolution session ticket trace.** 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.
1463
+ **Lockstep cut + scope-drift gate at composer time + skeleton harvest + Tier-1 block filter + high-resolution session ticket trace.** 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.
1464
1464
 
1465
1465
  ### Changed
1466
1466
 
@@ -1500,7 +1500,7 @@ The synthesizer now captures a `retrievalTrace` per attempt: Tier-1 hits with sc
1500
1500
 
1501
1501
  **Lockstep cut + boundary cleanup.** All 8 published `@adia-ai/*`
1502
1502
  packages now share one version, governed by
1503
- [`.claude/docs/specs/package-architecture.md` § 15 (Versioning Policy)](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1503
+ [`.claude/docs/specs/package-architecture.md` § 15 (Versioning Policy)](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1504
1504
  This release also lands the `engine/` ↔ `engines/` collision fix from
1505
1505
  T3 of the
1506
1506
  `.claude/docs/plans/packages-architecture-fixes-2026-05-02.md`
@@ -1522,14 +1522,14 @@ plan.
1522
1522
  internal imports were also rewritten by the same sweep (no behavior
1523
1523
  change). All internal imports updated in one sweep.
1524
1524
  - **`constitution.md` moved out of the package source** to
1525
- [`.claude/docs/specs/compose-constitution.md`](../../../.claude/docs/specs/compose-constitution.md)
1525
+ [`.claude/docs/specs/compose-constitution.md`](../../../../.claude/docs/specs/compose-constitution.md)
1526
1526
  so it doesn't ship in the published tarball. Pointer added in
1527
1527
  README.
1528
1528
  - **`package.json` `exports` map updated** with new keys (`./core`,
1529
1529
  `./strategies/registry`, `./strategies/zettel`); old keys
1530
1530
  (`./engine`, `./engines/registry`, `./engines/zettel`) retained as
1531
1531
  aliases for one release cycle and removed in the next major.
1532
- - Spec [`.claude/docs/specs/package-architecture.md`](../../../.claude/docs/specs/package-architecture.md)
1532
+ - Spec [`.claude/docs/specs/package-architecture.md`](../../../../.claude/docs/specs/package-architecture.md)
1533
1533
  bumped 0.5.0 → 0.6.0 with the directory tree updated to reflect the
1534
1534
  new layout; new § 15 documents the lockstep versioning policy.
1535
1535
 
@@ -1557,7 +1557,7 @@ zettel engine that turn `compose_from_chunks` from single-shot into a
1557
1557
  multi-turn surface, plus a first-class telemetry surface that auto-fires
1558
1558
  issue tickets on engine failure paths.
1559
1559
 
1560
- Spec: [`.claude/docs/specs/genui-multiturn-architecture.md`](../../../.claude/docs/specs/genui-multiturn-architecture.md) (Active v0.1.0).
1560
+ Spec: [`.claude/docs/specs/genui-multiturn-architecture.md`](../../../../.claude/docs/specs/genui-multiturn-architecture.md) (Active v0.1.0).
1561
1561
  Plan: `.claude/docs/plans/genui-multiturn-rollout-2026-04-28.md` (Phase A scoped).
1562
1562
  ADR: `0008-multiturn-genui-architecture.md`.
1563
1563
 
package/compose/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # @adia-ai/a2ui-compose
2
2
 
3
3
  Framework-agnostic UI generation engine. Constitution doc:
4
- [`.claude/docs/specs/compose-constitution.md`](../../../.claude/docs/specs/compose-constitution.md).
4
+ [`.claude/docs/specs/compose-constitution.md`](../../../../.claude/docs/specs/compose-constitution.md).
5
5
  Takes a natural-language intent +
6
6
  an A2UI component catalog and produces a tree of A2UI protocol messages
7
7
  ready for a renderer.
8
8
 
9
9
  > This package is pipeline runtime only. UI components live in
10
- > [`@adia-ai/web-components`](../../web-components); the A2UI runtime (renderer,
10
+ > [`@adia-ai/web-components`](../../../web-components); the A2UI runtime (renderer,
11
11
  > registry, streams, wiring) in [`@adia-ai/a2ui-runtime`](../../a2ui);
12
12
  > the pattern corpus in [`@adia-ai/a2ui-corpus`](../corpus);
13
13
  > the MCP server in [`@adia-ai/mcp`](../../mcp) (its `gen-ui` surface).
@@ -127,7 +127,7 @@ registerEngine('my-engine', async (ctx) => {
127
127
  `free-form` → `monolithic-instant` → `monolithic-pro`, cheapest first, each
128
128
  step accepted or rejected by the shared escalation rule
129
129
  (`strategies/escalation.js`) and the last step terminal. It is declared as an
130
- [`@adia-ai/agent`](../../agent/README.md) workflow in
130
+ [`@adia-ai/agent`](../../../llm/agent/README.md) workflow in
131
131
  `strategies/cascade.js`, so the ladder is data — `ENGINE_LADDER` — and the
132
132
  result carries `escalations` (`{from, to, trigger}`) as its trace.
133
133
 
@@ -29,7 +29,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
29
29
  export async function loadHeldOut() {
30
30
  // held-out.jsonl lives in the sibling @adia-ai/gen-ui/corpus package.
31
31
  // Callers can still pass `intents` explicitly; this fallback is the default.
32
- // Path from here: packages/gen-ui/compose/evals/ → ../.. → packages/gen-ui/
32
+ // Path from here: packages/gen-ui/engine/compose/evals/ → ../.. → packages/gen-ui/engine/
33
33
  // → corpus/evals/held-out.jsonl.
34
34
  const evalsPath = join(__dirname, '..', '..', 'corpus', 'evals', 'held-out.jsonl');
35
35
  const raw = await readFile(evalsPath, 'utf8');
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * Mirrors the dual-environment loading approach historically used by
5
5
  * pattern-library.js (retired §64) so the gen-UI training chunks at
6
- * packages/gen-ui/corpus/chunks/*.json are reachable from BOTH server-side
6
+ * packages/gen-ui/engine/corpus/chunks/*.json are reachable from BOTH server-side
7
7
  * engines (monolithic-pro via /api/generate's Node process) AND
8
8
  * browser-side engines (monolithic-pro called directly from
9
9
  * gen-ui playground's IIFE).
10
10
  *
11
- * The existing packages/gen-ui/corpus/scripts/chunk-library.js is Node-only
11
+ * The existing packages/gen-ui/engine/corpus/scripts/chunk-library.js is Node-only
12
12
  * (uses node:fs / readdirSync). This module exists so monolithic-pro can
13
13
  * search + fetch chunks WITHOUT pulling node:fs into the browser bundle.
14
14
  *
@@ -102,9 +102,11 @@ function adaptV09Component(a2uiData) {
102
102
 
103
103
  // Component prop catalog — loaded lazily for prompt injection.
104
104
  //
105
- // Since §65 (v0.4.7), reads from the canonical v0.9 catalog at
106
- // `corpus/catalog-a2ui_0_9.json` (assembled from yamls by `npm run
107
- // components`). Previously read the hand-maintained
105
+ // Since §65 (v0.4.7), reads from the canonical v0.9 catalog (assembled from
106
+ // yamls by `npm run components`); since ADR-0050 that catalog is protocol-side
107
+ // at `@adia-ai/a2ui/catalog` `../../../../a2ui/catalog/` from here, which is
108
+ // the sibling package dir in the repo and in a flat node_modules install
109
+ // alike. Previously read the hand-maintained
108
110
  // `corpus/patterns/_components.json` which was retired in §65.
109
111
  // Aliases come from `x-adiaui.synonyms.tags` per the v0.9 sidecar shape;
110
112
  // migrated in §65 step 1 — 17 yamls populated with synonyms.tags from
@@ -119,11 +121,22 @@ async function getComponentCatalog() {
119
121
  const fs = await import(/* @vite-ignore */ 'node:fs/promises');
120
122
  const path = await import(/* @vite-ignore */ 'node:path');
121
123
  const url = await import(/* @vite-ignore */ 'node:url');
124
+ // ADR-0050: resolve the catalog by package specifier first — the only
125
+ // path that holds in a published tarball, where a relative walk would
126
+ // escape this package's root — and fall back to the sibling-relative
127
+ // path for the repo / static deploy.
128
+ const { createRequire } = await import(/* @vite-ignore */ 'node:module');
122
129
  const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
123
- const raw = await fs.readFile(path.join(__dirname, '../../../corpus/catalog-a2ui_0_9.json'), 'utf8');
130
+ let catalogPath;
131
+ try {
132
+ catalogPath = createRequire(import.meta.url).resolve('@adia-ai/a2ui/catalog');
133
+ } catch {
134
+ catalogPath = path.join(__dirname, '../../../../a2ui/catalog/catalog-a2ui_0_9.json');
135
+ }
136
+ const raw = await fs.readFile(catalogPath, 'utf8');
124
137
  catalogJson = JSON.parse(raw);
125
138
  } else {
126
- const resp = await fetch(new URL('../../../corpus/catalog-a2ui_0_9.json', import.meta.url));
139
+ const resp = await fetch(new URL('../../../../a2ui/catalog/catalog-a2ui_0_9.json', import.meta.url));
127
140
  catalogJson = resp.ok ? await resp.json() : {};
128
141
  }
129
142
  // Adapt the v0.9 catalog (JSON Schema with `components: {Name: {x-adiaui: {...}}}`)
@@ -99,7 +99,7 @@ export async function generatePro({ intent, executionId, storeId, llmAdapter, an
99
99
  const bestPattern = patterns[0];
100
100
 
101
101
  // ── Parallel chunk retrieval (training-corpus path) ──
102
- // The chunks corpus at packages/gen-ui/corpus/chunks/*.json captures real
102
+ // The chunks corpus at packages/gen-ui/engine/corpus/chunks/*.json captures real
103
103
  // page-shape blocks harvested from working apps (auth/sign-in,
104
104
  // settings pages, dashboards, etc.). When a query strongly matches a
105
105
  // chunk, we inject the chunk's HTML as a STRUCTURAL REFERENCE into the
@@ -202,10 +202,10 @@ async function _loadAllBrowser() {
202
202
  // so dev and prod resolve through one mental model.
203
203
  // 2. It is mount-point-independent: works whether dist is served at `/`,
204
204
  // under a sub-path, or via the dist symlink layout
205
- // (dist/node_modules/@adia-ai/gen-ui → packages/gen-ui),
205
+ // (dist/node_modules/@adia-ai/gen-ui → packages/gen-ui/engine),
206
206
  // because `import.meta.url` always reflects the actually-served path.
207
207
  // Verified 2026-06-10: `new URL('../../../corpus/chunks/_index.json',
208
- // import.meta.url)` → `<root>/packages/gen-ui/corpus/chunks/_index.json`.
208
+ // import.meta.url)` → `<root>/packages/gen-ui/engine/corpus/chunks/_index.json`.
209
209
  const _CORPUS_CHUNKS_BASE =
210
210
  !IS_NODE && !HAS_VITE_GLOB
211
211
  ? new URL('../../../corpus/chunks/', import.meta.url)
@@ -22,7 +22,7 @@ import { dirname, resolve, join } from 'node:path';
22
22
  import { fileURLToPath } from 'node:url';
23
23
 
24
24
  const __dirname = dirname(fileURLToPath(import.meta.url));
25
- const REPO_ROOT = resolve(__dirname, '../../../../..');
25
+ const REPO_ROOT = resolve(__dirname, '../../../../../..');
26
26
  const DEFAULT_STORAGE_ROOT = resolve(REPO_ROOT, 'qa/findings/issues');
27
27
  const TRACE_INLINE_THRESHOLD_BYTES = 200 * 1024;
28
28
 
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * §163 (v0.5.4) — Prop-fidelity fix: extractProps() now runs a
11
11
  * catalog-driven generic pass AFTER the legacy per-type blocks. The
12
- * catalog (`@adia-ai/gen-ui/corpus`'s v0.9 sidecars) is the single source
12
+ * catalog (`@adia-ai/a2ui/catalog`'s v0.9 catalog) is the single source
13
13
  * of truth for which attributes are first-class props per component
14
14
  * type. Pre-§163, the per-type blocks hardcoded an allowlist that
15
15
  * omitted `label`, `icon`, literal `variant=`, and similar — see
@@ -19,7 +19,7 @@
19
19
  * picks it up automatically without manual sync.
20
20
  */
21
21
 
22
- import catalogData from '../../corpus/catalog-a2ui_0_9.json' with { type: 'json' };
22
+ import catalogData from '@adia-ai/a2ui/catalog' with { type: 'json' };
23
23
 
24
24
  import { registry } from '@adia-ai/a2ui';
25
25
 
@@ -374,7 +374,7 @@ function emitUnmappedPlaceholder(el, id, tag, props, context) {
374
374
  // ("headline + body"); `text` is the single-line alternative, not a
375
375
  // companion to `title`.
376
376
  title: `Unmapped component: <${tag}>`,
377
- description: `No entry in the A2UI runtime registry (packages/a2ui/registry.js), so this element's own props and behaviour were not converted. Register the tag, or remove it from the source.`,
377
+ description: `No entry in the A2UI runtime registry (packages/gen-ui/a2ui/registry.js), so this element's own props and behaviour were not converted. Register the tag, or remove it from the source.`,
378
378
  });
379
379
 
380
380
  return id;
@@ -1179,7 +1179,7 @@ All `corpus/chunks/*.json` files have updated `captured_at` timestamps from the
1179
1179
 
1180
1180
  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.
1181
1181
 
1182
- 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.
1182
+ 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.
1183
1183
  ## [0.4.4] - 2026-05-12
1184
1184
 
1185
1185
  ### Changed — corpus simplification arc (§36-§51, 2026-05-12)
@@ -1229,7 +1229,7 @@ The harvester is repo-tooling (`scripts/build/`), not a corpus package member, b
1229
1229
  - **§42 nested-expand-then-transpile pass** — after collection, recursively expands `<!-- nested: <name> -->` placeholders in annotated chunks, then transpiles the expanded HTML to A2UI templates via `transpileHTML(html, { mode: 'instant' })`.
1230
1230
  - **§45 source-aware tier-1 expansion fix** — replaces §42's "first wins" canonical-html rule with directory-aware selection. **Bug**: `auth-card-content` has 24 instances; the 404 page sorted alphabetically first, so EVERY auth chunk silently inlined 404 page content from §41 landing through §45 discovery (smoke tests only checked retrieval strategy, not template content). **Fix**: Tier 1 exact directory match → Tier 2 deepest common directory prefix → Tier 3 alphabetical. Without it, `apps/user-flow/app/auth/sign-in/` shares depth with `apps/user-flow/app/auth/sign-in/mfa/` and tie-break would pick wrong sibling.
1231
1231
 
1232
- See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 36-51 for per-§ details.
1232
+ See root [CHANGELOG.md `[Unreleased]`](../../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 36-51 for per-§ details.
1233
1233
  ## [0.4.3] - 2026-05-11
1234
1234
 
1235
1235
  ### Changed
@@ -1240,7 +1240,7 @@ See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutt
1240
1240
 
1241
1241
  ### Lockstep
1242
1242
 
1243
- 9-package coordinated PATCH cut to v0.4.3. Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry). Rides alongside `@adia-ai/web-components` v0.4.3 (input-ui locale rewrite) and `@adia-ai/a2ui-compose` + `@adia-ai/a2ui-retrieval` v0.4.3 (process.env browser-compat fix). See root [CHANGELOG.md `## [0.4.3]`](../../../CHANGELOG.md).
1243
+ 9-package coordinated PATCH cut to v0.4.3. Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry). Rides alongside `@adia-ai/web-components` v0.4.3 (input-ui locale rewrite) and `@adia-ai/a2ui-compose` + `@adia-ai/a2ui-retrieval` v0.4.3 (process.env browser-compat fix). See root [CHANGELOG.md `## [0.4.3]`](../../../../CHANGELOG.md).
1244
1244
  ## [0.4.2] - 2026-05-11
1245
1245
 
1246
1246
  ### Changed
@@ -1255,7 +1255,7 @@ See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutt
1255
1255
 
1256
1256
  ### Lockstep
1257
1257
 
1258
- 9-package coordinated PATCH cut to v0.4.2 (per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy)). Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). Rides alongside `@adia-ai/web-components@0.4.2` (input-ui type=number rewrite) and `@adia-ai/web-modules@0.4.2` (editor-sidebar width mirror). See root [CHANGELOG.md `## [0.4.2]`](../../../CHANGELOG.md) for the cut narrative.
1258
+ 9-package coordinated PATCH cut to v0.4.2 (per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy)). Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4.0` covers `0.4.x` under semver). Rides alongside `@adia-ai/web-components@0.4.2` (input-ui type=number rewrite) and `@adia-ai/web-modules@0.4.2` (editor-sidebar width mirror). See root [CHANGELOG.md `## [0.4.2]`](../../../../CHANGELOG.md) for the cut narrative.
1259
1259
  ## [0.4.1] - 2026-05-10
1260
1260
 
1261
1261
  ### Changed
@@ -1273,7 +1273,7 @@ See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutt
1273
1273
 
1274
1274
  Lockstep MINOR cut alongside `@adia-ai/web-modules@0.4.0` (ADR-0024 legacy deprecation). Catalog regenerated; chunks/fragments/compositions/patterns byte-identical to v0.3.6.
1275
1275
 
1276
- 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.
1276
+ 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.
1277
1277
  ## [0.3.6] - 2026-05-10
1278
1278
 
1279
1279
  ### Changed
@@ -1326,7 +1326,7 @@ The catalog is consumed by `@adia-ai/a2ui-retrieval` for protocol-vocabulary com
1326
1326
  Corpus chunks, fragments, compositions, and patterns are byte-identical to v0.3.3. The only change is the regenerated catalog manifest.
1327
1327
  ## [0.3.3] - 2026-05-07
1328
1328
 
1329
- **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`).
1329
+ **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`).
1330
1330
 
1331
1331
  ### Added
1332
1332
 
@@ -1361,7 +1361,7 @@ Corpus chunks, fragments, compositions, and patterns are byte-identical to v0.3.
1361
1361
  ## [0.3.2] - 2026-05-06
1362
1362
 
1363
1363
  **9-package lockstep patch cut to v0.3.2.** All lockstep members share
1364
- one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1364
+ one version per [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1365
1365
  Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
1366
1366
 
1367
1367
  ### Added
@@ -1388,7 +1388,7 @@ Internal `@adia-ai/*` dep ranges unchanged at `^0.3.0`.
1388
1388
  - `version`: `0.3.1` → `0.3.2`.
1389
1389
  ## [0.3.1] - 2026-05-06
1390
1390
 
1391
- **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).
1391
+ **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).
1392
1392
 
1393
1393
  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).
1394
1394
 
@@ -1398,7 +1398,7 @@ This package itself ships **no source changes** in v0.3.1. The cut bumps version
1398
1398
  - Internal `@adia-ai/*` dep ranges: unchanged at `^0.3.0` (covers `0.3.1` under semver — patch-cut asymmetry).
1399
1399
  ## [0.3.0] - 2026-05-05
1400
1400
 
1401
- **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`.
1401
+ **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`.
1402
1402
 
1403
1403
  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`. Both are BREAKING for npm consumers (acceptable under pre-1.0 semver).
1404
1404
 
@@ -1413,7 +1413,7 @@ This package itself ships **no source changes** in v0.3.0. The cut bumps version
1413
1413
  `a2ui-corpus` source is byte-identical to `0.2.5`. The cut bumps version only — corpus has no `@adia-ai/*` dependencies so no dep-range updates either.
1414
1414
  ## [0.2.5] - 2026-05-04
1415
1415
 
1416
- **Lockstep cut + catalog regen for `<fields-ui>` primitive.** 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). Patch cut — **no BREAKING changes**.
1416
+ **Lockstep cut + catalog regen for `<fields-ui>` primitive.** 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). Patch cut — **no BREAKING changes**.
1417
1417
 
1418
1418
  ### Changed
1419
1419
 
@@ -1422,7 +1422,7 @@ This package itself ships **no source changes** in v0.3.0. The cut bumps version
1422
1422
  - Per-element `fields/fields.a2ui.json` written by `scripts/build/components.mjs`.
1423
1423
  ## [0.2.4] - 2026-05-04
1424
1424
 
1425
- **Lockstep cut + catalog regen for `<demo-toggle-ui>` primitive.** 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). Patch cut — no breaking changes.
1425
+ **Lockstep cut + catalog regen for `<demo-toggle-ui>` primitive.** 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). Patch cut — no breaking changes.
1426
1426
 
1427
1427
  ### Changed
1428
1428
 
@@ -1444,7 +1444,7 @@ the generated `_catalog.json` consumed by
1444
1444
 
1445
1445
  **Lockstep cut.** All 8 published `@adia-ai/*` packages bump
1446
1446
  0.2.2 → 0.2.3 per
1447
- [`.claude/docs/specs/package-architecture.md` § 15](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1447
+ [`.claude/docs/specs/package-architecture.md` § 15](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1448
1448
  Patch cut — no breaking changes.
1449
1449
 
1450
1450
  ### Changed
@@ -1456,7 +1456,7 @@ Patch cut — no breaking changes.
1456
1456
  `@adia-ai/a2ui-corpus` source is byte-identical to `0.2.2`. The cut bumps version only.
1457
1457
  ## [0.2.2] - 2026-05-02
1458
1458
 
1459
- **Lockstep cut.** 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.
1459
+ **Lockstep cut.** 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.
1460
1460
 
1461
1461
  ### Changed
1462
1462
 
@@ -1469,7 +1469,7 @@ Patch cut — no breaking changes.
1469
1469
  ---
1470
1470
  ## [0.2.1] - 2026-05-02
1471
1471
 
1472
- **Lockstep cut + chunk-corpus reorganization mega-arc + trait registry regenerated from web-components SoT.** 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.
1472
+ **Lockstep cut + chunk-corpus reorganization mega-arc + trait registry regenerated from web-components SoT.** 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.
1473
1473
 
1474
1474
  ### Changed
1475
1475
 
@@ -1535,7 +1535,7 @@ Per-finding triage in `.claude/docs/reports/playground-examples-review-2026-05-0
1535
1535
 
1536
1536
  **Lockstep cut.** All 8 published `@adia-ai/*` packages now share one
1537
1537
  version, governed by [`.claude/docs/specs/package-architecture.md` § 15
1538
- (Versioning Policy)](../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1538
+ (Versioning Policy)](../../../../.claude/docs/specs/package-architecture.md#15-versioning-policy).
1539
1539
 
1540
1540
  This release also formalizes corpus's role as **the catalog's home** —
1541
1541
  spec § 3 first-principle 3 was rewritten in v0.6.0 of the spec to
@@ -1783,11 +1783,11 @@ existing pattern/fragment/composition surface unchanged.
1783
1783
 
1784
1784
  ### Convention reference
1785
1785
 
1786
- - Spec: [`.claude/docs/specs/genui-chunk-marker.md`](../../../.claude/docs/specs/genui-chunk-marker.md)
1786
+ - Spec: [`.claude/docs/specs/genui-chunk-marker.md`](../../../../.claude/docs/specs/genui-chunk-marker.md)
1787
1787
  (Draft v0.1.0) — three attributes (`data-chunk`, `data-chunk-kind`,
1788
1788
  `data-chunk-slot`); naming conventions per cluster; visual marker
1789
1789
  rules; harvester contract.
1790
- - Inventory: [`.claude/docs/specs/genui-chunk-inventory-001.md`](../../../.claude/docs/specs/genui-chunk-inventory-001.md)
1790
+ - Inventory: [`.claude/docs/specs/genui-chunk-inventory-001.md`](../../../../.claude/docs/specs/genui-chunk-inventory-001.md)
1791
1791
  — full list with intent labels + review status.
1792
1792
  ## [0.0.2] - 2026-04-27
1793
1793
 
package/corpus/README.md CHANGED
@@ -6,7 +6,7 @@ fixtures. Pure data plus the scripts that maintain it. No runtime.
6
6
 
7
7
  > The pipeline reads this package; this package never reads the pipeline.
8
8
  > See [`@adia-ai/a2ui-compose`](../compose) for engine code,
9
- > [`@adia-ai/web-components`](../../web-components) for UI atoms,
9
+ > [`@adia-ai/web-components`](../../../web-components) for UI atoms,
10
10
  > [`@adia-ai/a2ui-runtime`](../../a2ui) for the A2UI runtime (renderer,
11
11
  > registry, streams, wiring),
12
12
  > [`@adia-ai/mcp`](../../mcp) for the MCP server (its `gen-ui` surface).
@@ -155,7 +155,7 @@ Currently pinned defaults:
155
155
  | openai | `text-embedding-3-small` | 1536 | `OPENAI_API_KEY` |
156
156
  | voyage | `voyage-3-lite` | 1024 | `VOYAGE_API_KEY` |
157
157
 
158
- `detectProvider()` (in `packages/a2ui/retrieval/embedding/embedding-provider.js`)
158
+ `detectProvider()` (in `packages/gen-ui/a2ui/retrieval/embedding/embedding-provider.js`)
159
159
  prefers Voyage when both keys are present (denser vectors, lower cost).
160
160
  The `build:embeddings*` scripts record the chosen provider/model into the
161
161
  `.json` header, so subsequent reads always re-bind to the same model.