@adia-ai/a2ui-runtime 0.7.25 → 0.7.27
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 +13 -3
- package/a2ui.schema.d.ts +19 -0
- package/package.json +1 -1
- package/renderer.js +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
# Changelog — @adia-ai/a2ui-runtime
|
|
2
|
+
## [0.7.27] — 2026-07-12
|
|
3
|
+
|
|
4
|
+
### Fixed
|
|
5
|
+
- **Renderer stamps `el.id = comp.id` at all three element-creation sites.** Elements previously carried only `data-a2ui-id`, so authored `[id]`s never reached the live DOM — breaking every setup module that `getElementById`s its targets (the docs migration's dynamic tier surfaced this: pointer-tracking demos, trait wiring). The `id` is set outside the prop-diffing path, so later prop updates can never strip it.
|
|
6
|
+
- **`a2ui.schema.json` — added `updateStyles` / `removeStyles` message schemas.** The renderer has handled the CSS channel since its introduction; the schema (and the generated `.d.ts`) now describe it, so schema validation no longer rejects documents that use it.
|
|
7
|
+
|
|
8
|
+
## [0.7.26] — 2026-07-04
|
|
9
|
+
|
|
10
|
+
### Maintenance
|
|
11
|
+
- **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.7.26 work shipped in variant="outline" retired as the reach-for-secondary generation-time habit. See `packages/a2ui/compose/CHANGELOG.md#unreleased` for details.
|
|
2
12
|
|
|
3
13
|
## [0.7.25] — 2026-07-03
|
|
4
14
|
|
|
@@ -592,7 +602,7 @@ Internal `@adia-ai/*` dep ranges stay at `^0.4.0` (patch-cut asymmetry — `^0.4
|
|
|
592
602
|
|
|
593
603
|
Project-lifetime category error; same shape as the §47 `<a>` → Button transpiler bug. Both encoded incorrect assumptions about HTML attribute spelling. Fix: new `static #HTML_LOWERCASE_ATTRS` set (38 HTML-spec attrs sourced from MDN reference + DOM specs covering input/form/media/image/anchor/generic/microdata/script categories); `#toAttr()` now consults the set before kebab-casing. Multi-token attrs still kebab correctly.
|
|
594
604
|
|
|
595
|
-
See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative +
|
|
605
|
+
See root [CHANGELOG.md `[Unreleased]`](../../../CHANGELOG.md) for the cross-cutting arc narrative + `.claude/docs/journal/2026/05/2026-05-12.md` §§ 45 / 49 / 51 for per-§ details.
|
|
596
606
|
## [0.4.3] - 2026-05-11
|
|
597
607
|
|
|
598
608
|
### Ride-along (no source changes)
|
|
@@ -784,9 +794,9 @@ Five new A2UI type → AdiaUI tag mappings in `registry.js`:
|
|
|
784
794
|
- `NavItem` → `nav-item-ui`
|
|
785
795
|
- `NavGroup` → `nav-group-ui`
|
|
786
796
|
|
|
787
|
-
All 5 components existed in `@adia-ai/web-components`; the registry hadn't been kept in sync. Closing this gap fixes 28/113 hand-authored patterns that previously rendered as `[unknown: X]` placeholders when imported into `/site/playground/a2ui-editor`, plus the render-preview's `streamed-list` example. The `NavItem` and `NavGroup` additions also align with
|
|
797
|
+
All 5 components existed in `@adia-ai/web-components`; the registry hadn't been kept in sync. Closing this gap fixes 28/113 hand-authored patterns that previously rendered as `[unknown: X]` placeholders when imported into `/site/playground/a2ui-editor`, plus the render-preview's `streamed-list` example. The `NavItem` and `NavGroup` additions also align with `ADR-0015`'s nav consolidation (the retired `SectionNav`/`SectionNavItem` types are migrated in `@adia-ai/a2ui-corpus`).
|
|
788
798
|
|
|
789
|
-
Smoke side-effect: zettel score 91 → 92; `smoke:engines` flipped from `valid=false score=98/91` to `valid=true score=100/92` because the unregistered types were tripping validation. Per-finding triage in
|
|
799
|
+
Smoke side-effect: zettel score 91 → 92; `smoke:engines` flipped from `valid=false score=98/91` to `valid=true score=100/92` because the unregistered types were tripping validation. Per-finding triage in `.claude/docs/reports/playground-examples-review-2026-05-02.md`.
|
|
790
800
|
|
|
791
801
|
---
|
|
792
802
|
## [0.2.0] — 2026-05-02
|
package/a2ui.schema.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export type A2UIMessage =
|
|
|
11
11
|
| UpdateDataModelMessage
|
|
12
12
|
| WireComponentsMessage
|
|
13
13
|
| DeleteSurfaceMessage
|
|
14
|
+
| UpdateStylesMessage
|
|
15
|
+
| RemoveStylesMessage
|
|
14
16
|
| MetaMessage;
|
|
15
17
|
|
|
16
18
|
/**
|
|
@@ -160,6 +162,23 @@ export interface DeleteSurfaceMessage {
|
|
|
160
162
|
type: 'deleteSurface';
|
|
161
163
|
surfaceId: string;
|
|
162
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* CSS channel: adopts a surface-scoped stylesheet (wrapped in @scope([data-a2ui-surface=<id>]) by the renderer). See specs/genui-css-channel.md.
|
|
167
|
+
*/
|
|
168
|
+
export interface UpdateStylesMessage {
|
|
169
|
+
type: 'updateStyles';
|
|
170
|
+
surfaceId: string;
|
|
171
|
+
styleId: string;
|
|
172
|
+
css: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* CSS channel: removes a previously adopted surface-scoped stylesheet by styleId.
|
|
176
|
+
*/
|
|
177
|
+
export interface RemoveStylesMessage {
|
|
178
|
+
type: 'removeStyles';
|
|
179
|
+
surfaceId: string;
|
|
180
|
+
styleId: string;
|
|
181
|
+
}
|
|
163
182
|
/**
|
|
164
183
|
* LLM self-critique or metadata. Not rendered; passed through for logging.
|
|
165
184
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/a2ui-runtime",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.27",
|
|
4
4
|
"description": "A2UI runtime \u2014 renderer, registry, streams, surface manifest, and wiring primitives for the A2UI (Agent-to-UI) protocol. Framework-agnostic; pairs with any A2UI-conformant component set.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
package/renderer.js
CHANGED
|
@@ -155,6 +155,7 @@ export class A2UIRenderer {
|
|
|
155
155
|
if (!el) {
|
|
156
156
|
el = document.createElement('div');
|
|
157
157
|
el.setAttribute('data-a2ui-id', comp.id);
|
|
158
|
+
el.id = comp.id;
|
|
158
159
|
el.setAttribute('data-a2ui-unknown', comp.component);
|
|
159
160
|
el.textContent = `[unknown: ${comp.component}]`;
|
|
160
161
|
surface.elements.set(comp.id, el);
|
|
@@ -166,11 +167,13 @@ export class A2UIRenderer {
|
|
|
166
167
|
if (!el) {
|
|
167
168
|
el = document.createElement(tagName);
|
|
168
169
|
el.setAttribute('data-a2ui-id', comp.id);
|
|
170
|
+
el.id = comp.id;
|
|
169
171
|
surface.elements.set(comp.id, el);
|
|
170
172
|
this.#elements.set(comp.id, el);
|
|
171
173
|
} else if (el.localName !== tagName) {
|
|
172
174
|
const newEl = document.createElement(tagName);
|
|
173
175
|
newEl.setAttribute('data-a2ui-id', comp.id);
|
|
176
|
+
newEl.id = comp.id;
|
|
174
177
|
el.replaceWith(newEl);
|
|
175
178
|
el = newEl;
|
|
176
179
|
surface.elements.set(comp.id, el);
|