@adia-ai/adia-ui-factory 0.8.62 → 0.8.64
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/CHANGELOG.md +27 -0
- package/README.md +39 -2
- package/__init__.py +1 -1
- package/hermes-mcp.yaml +1 -1
- package/package.json +1 -1
- package/plugin.yaml +1 -1
- package/skills/host-wiring/SKILL.md +12 -1
- package/skills/host-wiring/references/mode-wiring-detail.md +21 -0
- package/skills/theme-audit/SKILL.md +8 -7
- package/skills/theme-audit/agents/openai.yaml +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adia-ui-kit-factory",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.64",
|
|
4
4
|
"description": "Author and verify apps built ON the adia-ui (@adia-ai) light-DOM web-component framework \u2014 orient, scaffold, compose, wire, verify, and migrate across SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kim",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adia-ui-kit-factory",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.64",
|
|
4
4
|
"description": "Author and verify apps built ON the adia-ui (@adia-ai) light-DOM web-component framework — orient, scaffold, compose, wire, verify, and migrate across SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kim",
|
package/.mcp.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog — adia-ui-kit-factory
|
|
2
2
|
|
|
3
|
+
## [0.8.64] — 2026-09-13
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- chore: allowlist 7 verified real script/prose G8 names, per-plugin `.release-gate-g8-allow.json` (ticket 10036) (#4407)
|
|
8
|
+
- chore: de-reference the phantom `component-token-audit` citations in theme-audit's description and body (ticket 10036) (#4409)
|
|
9
|
+
|
|
10
|
+
### Docs
|
|
11
|
+
|
|
12
|
+
- docs: host-wiring gains an A2UI-rendering-hosts paragraph, stating an `<a2ui-root>`-embedding host needs no manual per-component JS/CSS import for LLM-composed content, and must not add one (adr-0115, lld-0037, ticket 10041) (local ticket 10041)
|
|
13
|
+
- docs: clarify tools/delegate_tool.py is a path inside the external Hermes Agent install, not this repo (#4411)
|
|
14
|
+
|
|
15
|
+
### Maintenance
|
|
16
|
+
- **`.claude-plugin/plugin.json` version bump**: moves in lockstep with package.json (the `/plugin update` cache key).
|
|
17
|
+
- **`.codex-plugin/` touched in this release window** (1 file(s), e.g. `.codex-plugin/plugin.json`): carried by the entries above.
|
|
18
|
+
- **`skills/` touched in this release window** (4 file(s), e.g. `host-wiring/SKILL.md`): carried by the entries above.
|
|
19
|
+
|
|
20
|
+
## [0.8.63] — 2026-09-12
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- chore: accept release_gate G15 (harness overlay convention mismatch) per conductor ruling, file ticket 10035 (ticket 10026) (#4403)
|
|
25
|
+
|
|
26
|
+
### Maintenance
|
|
27
|
+
- **`.claude-plugin/plugin.json` version bump**: moves in lockstep with package.json (the `/plugin update` cache key).
|
|
28
|
+
- **`.codex-plugin/` touched in this release window** (1 file(s), e.g. `.codex-plugin/plugin.json`): carried by the entries above.
|
|
29
|
+
|
|
3
30
|
## [0.8.62] — 2026-09-10
|
|
4
31
|
|
|
5
32
|
### Changed
|
package/README.md
CHANGED
|
@@ -163,7 +163,7 @@ attributes vs. the shipped component contracts), and `adia-theme-audit.mjs`
|
|
|
163
163
|
|
|
164
164
|
## MCP
|
|
165
165
|
|
|
166
|
-
`adia-gen-ui` server pinned: `@adia-ai/mcp@0.8.
|
|
166
|
+
`adia-gen-ui` server pinned: `@adia-ai/mcp@0.8.64` (tool SoT:
|
|
167
167
|
`packages/gen-ui/mcp/TOOLS.md` — the `gen-ui` section; stability rule in
|
|
168
168
|
`references/contracts/`; pin lives in `.mcp.json` — `check:plugin-count-claims`
|
|
169
169
|
guards this README copy against it). The server is `adia-mcp gen-ui`,
|
|
@@ -237,7 +237,8 @@ Pi has no native MCP support at all, so a Pi session without the third-party
|
|
|
237
237
|
no automatic wiring. `__init__.py` registers the portable `ui-architect`
|
|
238
238
|
skill (ADR-0091) alongside every other skill, **and** a generated
|
|
239
239
|
`/ui-architect` command — verified against the installed Hermes Agent's
|
|
240
|
-
real `PluginContext.register_command` + `dispatch_tool` and
|
|
240
|
+
real `PluginContext.register_command` + `dispatch_tool` and, inside that
|
|
241
|
+
same external Hermes Agent install (not a path in this repo),
|
|
241
242
|
`tools/delegate_tool.py`'s `delegate_task(goal, context, role, …)` (not
|
|
242
243
|
assumed from documentation): each of planning, composition, and QA runs
|
|
243
244
|
as its own isolated `delegate_task` child (`role="leaf"`), gated by the
|
|
@@ -277,6 +278,42 @@ Pi has no native MCP support at all, so a Pi session without the third-party
|
|
|
277
278
|
`VerifyProof` — not simulated against an unverified API. No hooks/agents
|
|
278
279
|
surface otherwise.
|
|
279
280
|
|
|
281
|
+
## Release gate
|
|
282
|
+
|
|
283
|
+
`release_gate.py`'s G15 (harness overlay freshness) FAILs for this plugin and
|
|
284
|
+
is accepted, not fixed, per ticket 10035: `release_gate.py` has no config hook
|
|
285
|
+
(no `.claude/workflow.json` field, no per-plugin file) that G15 itself reads,
|
|
286
|
+
so there is no override mechanism to declare here as code, the acceptance is
|
|
287
|
+
recorded here as doctrine instead.
|
|
288
|
+
|
|
289
|
+
Conductor ruling, gh#3764 issuecomment-5647637558 (2026-09-12, unattended
|
|
290
|
+
run, authorized by issuecomment-5647495831), quoted verbatim as the ruling
|
|
291
|
+
record:
|
|
292
|
+
|
|
293
|
+
> Conductor ruling, 2026-09-12 (unattended run, authorization
|
|
294
|
+
> issuecomment-5647495831; posted here so it is citable, not only in PR
|
|
295
|
+
> #4403's body and the plugin READMEs).
|
|
296
|
+
>
|
|
297
|
+
> release_gate.py G15 fails for both adia-ui-forge (8 findings, ticket
|
|
298
|
+
> 10026) and adia-ui-factory (13 findings, ticket 10035). Verified cause:
|
|
299
|
+
> G15 (harness 3.19.6, release_gate.py:917-932) is a bare subprocess of
|
|
300
|
+
> harness_emit.py --verify (:899-950) with no allow, skip, env or config
|
|
301
|
+
> hook, and its overlay convention differs from this repo's own manifest
|
|
302
|
+
> generators (scripts/build/codex-manifests.mjs,
|
|
303
|
+
> scripts/build/harness-manifests.mjs), which are gated fresh by
|
|
304
|
+
> check:codex-manifests-fresh and check:harness-manifests-fresh. Ruling:
|
|
305
|
+
> this repo keeps its generators as the source of truth; G15 is declared
|
|
306
|
+
> ACCEPTED (not fixed) for both plugins, recorded in each plugin README's
|
|
307
|
+
> release-gate section; the convention mismatch is routed upstream to the
|
|
308
|
+
> adia-harness conductor per the 2026-09-10 routing ruling. Tickets 10026
|
|
309
|
+
> and 10035 stay OPEN until the upstream fix lands. Not a skip of any
|
|
310
|
+
> lockstep (class A) gate; those are the 36-gate roster in package-release.
|
|
311
|
+
|
|
312
|
+
Tickets: 10035 (this plugin), 10026 (adia-ui-forge, same class). Both stay
|
|
313
|
+
OPEN pending the upstream harness-plugin item this ruling routes the fix to,
|
|
314
|
+
filed by the adia-harness conductor on 2026-09-12 as adia-harness local
|
|
315
|
+
ticket 137.
|
|
316
|
+
|
|
280
317
|
## Requirements
|
|
281
318
|
|
|
282
319
|
Python 3 (hook) + Node 22. Installs standalone in consumer repos (no monorepo
|
package/__init__.py
CHANGED
|
@@ -313,7 +313,7 @@ def register(ctx):
|
|
|
313
313
|
ctx.register_skill(
|
|
314
314
|
name="theme-audit",
|
|
315
315
|
path=Path(os.path.join(_HERE, "skills", "theme-audit", "SKILL.md")),
|
|
316
|
-
description="Classifies a consumer app's theme.css against what the adia-ui framework already ships
|
|
316
|
+
description="Classifies a consumer app's theme.css against what the adia-ui framework already ships, restated defaults, re-derived tokens, dead selectors, and hand-built component work. Runs `adia-theme-audit` against a theme file + app root; audits and reports, never rewrites. Use when a theme.css is suspected of restating the kit, after bumping `@adia-ai/web-components`, or before a `find-unused` sweep. NOT for rendering/grading a surface (surface-qa); NOT for picking a token going forward (token-selection); NOT for JS/markup an upgrade left unused (find-unused, the CSS-side sibling); NOT for the framework's OWN token layer in packages/web-components (a capability this skill's own body also references, not yet a shipped skill in either plugin, ticket 10036).",
|
|
317
317
|
)
|
|
318
318
|
ctx.register_skill(
|
|
319
319
|
name="token-selection",
|
package/hermes-mcp.yaml
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/adia-ui-factory",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.64",
|
|
4
4
|
"description": "Author and verify apps built ON the adia-ui (@adia-ai) light-DOM web-component framework — orient, scaffold, compose, wire, verify, and migrate across SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adia-ui",
|
package/plugin.yaml
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
name: "adia-ui-kit-factory"
|
|
2
|
-
version: "0.8.
|
|
2
|
+
version: "0.8.64"
|
|
3
3
|
description: "Author and verify apps built ON the adia-ui (@adia-ai) light-DOM web-component framework — orient, scaffold, compose, wire, verify, and migrate across SPA and SSR rendering modes. Wires the a2ui MCP for catalog retrieval, UI generation, and validation."
|
|
4
4
|
manifest_version: 1
|
|
@@ -61,6 +61,16 @@ or the toggle dies (gh#296). Full detail, exact paths, and the fail-loud probe:
|
|
|
61
61
|
[`references/mode-wiring-detail.md`](references/mode-wiring-detail.md)
|
|
62
62
|
§Icons + the module barrels.
|
|
63
63
|
|
|
64
|
+
## A2UI-rendering hosts: no manual per-component import
|
|
65
|
+
|
|
66
|
+
A host embedding `<a2ui-root>` (directly, or via `<canvas-ui>`) for
|
|
67
|
+
LLM-composed content needs no per-component JS/CSS import for that
|
|
68
|
+
content: `ensure()` already loads on demand what a payload actually
|
|
69
|
+
names. Importing the full component barrel to "be safe" defeats that,
|
|
70
|
+
never adds it (adr-0115, lld-0037, ticket 10041). Full detail:
|
|
71
|
+
[`references/mode-wiring-detail.md`](references/mode-wiring-detail.md)
|
|
72
|
+
§A2UI-rendering hosts.
|
|
73
|
+
|
|
64
74
|
## CDN / HTML-first, SPA, SSR, hybrid — build order per mode
|
|
65
75
|
|
|
66
76
|
Each mode has its own build order and gotchas — load exactly one bundle for
|
|
@@ -99,7 +109,8 @@ Gates: registration / route-owner / CSS-links / state — pass | fail,
|
|
|
99
109
|
|
|
100
110
|
- [`references/mode-wiring-detail.md`](references/mode-wiring-detail.md) —
|
|
101
111
|
load when actually wiring a host: icon-loader + shell-barrel gotchas
|
|
102
|
-
(gh#287, gh#296),
|
|
112
|
+
(gh#287, gh#296), A2UI-rendering hosts (adr-0115, ticket 10041),
|
|
113
|
+
CDN/HTML-first, SPA, SSR, and hybrid full procedure.
|
|
103
114
|
- [`references/spa-architecture.md`](../../references/spa-architecture.md) —
|
|
104
115
|
load before writing or editing an SPA host: host document, cascade +
|
|
105
116
|
registration invariants, surface container, router snippets.
|
|
@@ -25,6 +25,27 @@ Two host-wiring details the shared contract doesn't cover — each fails
|
|
|
25
25
|
`@adia-ai/web-modules/shell/admin-shell.css` (the three-segment
|
|
26
26
|
`/shell/admin-shell/admin-shell.css` is blocked by the exports map, gh#296).
|
|
27
27
|
|
|
28
|
+
## A2UI-rendering hosts (LLM-composed content, never a manual per-component import)
|
|
29
|
+
|
|
30
|
+
A host embedding `<a2ui-root>` (directly, or wrapped by `<canvas-ui>`) to
|
|
31
|
+
render LLM-composed A2UI content needs no per-component JS/CSS import for
|
|
32
|
+
anything that content itself renders, and per adr-0115 must not add one:
|
|
33
|
+
`<a2ui-root>` already awaits `asset-loader.js`'s `ensure()` for a
|
|
34
|
+
message's own component types before applying it, so the tag currently
|
|
35
|
+
being composed loads on demand, and only that tag, whatever the payload
|
|
36
|
+
turns out to contain. Importing the full component barrel
|
|
37
|
+
(`@adia-ai/web-components`'s `components/index.js`, or the package-level
|
|
38
|
+
barrel) ahead of this to "be safe" defeats that mechanism for every tag it
|
|
39
|
+
covers instead of adding safety: the tags load anyway; the host just pays
|
|
40
|
+
for the whole catalog on every canvas regardless of what it actually uses
|
|
41
|
+
(lld-0037, ticket 10041: the fix for the exact shape gen-ui's own
|
|
42
|
+
playground carried before this record). This rule is scoped to the
|
|
43
|
+
surface whose composition is decided at generation time; a host's own
|
|
44
|
+
fixed chrome (its shell, toolbar, or any always-present component the host
|
|
45
|
+
itself authors directly) is unaffected and keeps whatever import shape it
|
|
46
|
+
already uses, the two are wired the same way they always were, side by
|
|
47
|
+
side in the same entry file.
|
|
48
|
+
|
|
28
49
|
## CDN / HTML-first consumption (no bundler)
|
|
29
50
|
|
|
30
51
|
For CodePen, marketing pages, static HTML, or a prompt-to-app / Figma-Make
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
name: theme-audit
|
|
3
3
|
description: >-
|
|
4
4
|
Classifies a consumer app's theme.css against what the adia-ui
|
|
5
|
-
framework already ships
|
|
5
|
+
framework already ships, restated defaults, re-derived tokens, dead
|
|
6
6
|
selectors, and hand-built component work. Runs `adia-theme-audit`
|
|
7
7
|
against a theme file + app root; audits and reports, never rewrites.
|
|
8
8
|
Use when a theme.css is suspected of restating the kit, after bumping
|
|
9
9
|
`@adia-ai/web-components`, or before a `find-unused` sweep. NOT for
|
|
10
10
|
rendering/grading a surface (surface-qa); NOT for picking a token going
|
|
11
11
|
forward (token-selection); NOT for JS/markup an upgrade left unused
|
|
12
|
-
(find-unused
|
|
13
|
-
layer in packages/web-components (
|
|
12
|
+
(find-unused, the CSS-side sibling); NOT for the framework's OWN token
|
|
13
|
+
layer in packages/web-components (a capability this skill's own body also
|
|
14
|
+
references, not yet a shipped skill in either plugin, ticket 10036).
|
|
14
15
|
disable-model-invocation: false
|
|
15
16
|
user-invocable: true
|
|
16
17
|
---
|
|
@@ -113,10 +114,10 @@ never ran is not a class that found nothing.
|
|
|
113
114
|
retired enum values). This skill is the CSS-side sibling of that same
|
|
114
115
|
"what's inert" question — reach for `find-unused` first on a fresh
|
|
115
116
|
upgrade, then this skill on the theme file specifically.
|
|
116
|
-
- **
|
|
117
|
-
|
|
118
|
-
never touches framework source; it always targets a consumer app's
|
|
119
|
-
theme file.
|
|
117
|
+
- **A framework-side, `packages/web-components`-token-layer audit** is a
|
|
118
|
+
distinct, not-yet-shipped capability (ticket 10036) in this monorepo. This
|
|
119
|
+
skill never touches framework source; it always targets a consumer app's
|
|
120
|
+
own theme file.
|
|
120
121
|
|
|
121
122
|
## The one hard rule
|
|
122
123
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Theme Audit"
|
|
3
|
-
short_description: "Classifies a consumer app's theme.css against what the adia-ui framework already ships
|
|
3
|
+
short_description: "Classifies a consumer app's theme.css against what the adia-ui framework already ships, restated defaults, re-derived tokens, dead selectors, and hand-built component work."
|