@artooi/ag-ui-web-component 0.17.0 → 0.18.0

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 CHANGED
@@ -7,6 +7,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.18.0] — 2026-08-10
11
+
12
+ ### Added
13
+
14
+ - **A copy button on code blocks in agent answers.** An agent answering with
15
+ code is answering with something the reader means to *use*, and selecting it
16
+ by hand out of a scrolling transcript — inside a shadow root, in a narrow
17
+ sidebar — was the one interaction the chat surface made harder than the page
18
+ around it.
19
+
20
+ Revealed on hover **and keyboard focus** (hidden-until-hover is invisible to a
21
+ keyboard user), styleable via the `code-copy` part, with `copyCode` /
22
+ `copied` / `copyFailed` in `UiStrings`.
23
+
24
+ ⚠ **It reports failure rather than always claiming success.** The Clipboard
25
+ API needs a secure context and is simply absent in some embeddings; a button
26
+ that always says "Copied" sends the reader off to paste stale clipboard
27
+ content and find out somewhere else entirely.
28
+
29
+ ### Fixed
30
+
31
+ - **A bare `data-prompt-chips` or `data-slash-commands` now enables the
32
+ feature**, instead of silently disabling it. Both were compared against the
33
+ string `"true"`, so writing the attribute bare — the spelling every native
34
+ boolean attribute uses, and the one a reader reaches for first — turned off
35
+ the thing it names, with nothing to indicate why the chips never appeared.
36
+ `="false"` still turns them off.
37
+
38
+ - **The checkpoint panel manages focus.** It declared `role="dialog"` and took
39
+ no focus at all, so a keyboard user was left behind an open dialog; the thread
40
+ drawer had done this correctly all along. Focus now moves in on open, is
41
+ restored on close, and Tab is trapped while it is open.
42
+
43
+ ⚠ **With no continuable runs the panel holds no controls**, so the panel
44
+ itself is focusable as the fallback — otherwise "move focus to the first
45
+ control" silently does nothing in exactly the case where the user has least to
46
+ go on.
47
+
48
+ - **The README described a `dist/ag-ui-web-component.bundle.css` that the build
49
+ has never emitted.** The styles are a template literal injected into the
50
+ shadow root, so there is no sidecar to load — and a reader looking for the
51
+ file to override was looking for the wrong seam. Documented as CSS custom
52
+ properties and `part` attributes instead.
53
+
10
54
  ## [0.17.0] — 2026-08-10
11
55
 
12
56
  ### Added
@@ -833,7 +877,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
833
877
  ### Notes
834
878
  - First release — exercising the automated npm OIDC publish pipeline end-to-end.
835
879
 
836
- [Unreleased]: https://github.com/Artui/ag-ui-web-component/compare/v0.17.0...HEAD
880
+ [Unreleased]: https://github.com/Artui/ag-ui-web-component/compare/v0.18.0...HEAD
881
+ [0.18.0]: https://github.com/Artui/ag-ui-web-component/compare/v0.17.0...v0.18.0
837
882
  [0.17.0]: https://github.com/Artui/ag-ui-web-component/compare/v0.16.0...v0.17.0
838
883
  [0.16.0]: https://github.com/Artui/ag-ui-web-component/compare/v0.15.0...v0.16.0
839
884
  [0.15.0]: https://github.com/Artui/ag-ui-web-component/compare/v0.14.1...v0.15.0
package/README.md CHANGED
@@ -150,8 +150,8 @@ That's the whole integration: an `endpoint` attribute pointing at your AG-UI ser
150
150
  | `title-text` | — | Header label; defaults to `"Assistant"`. The only **observed** attribute (live-updates the header). |
151
151
  | `data-tool-display` | `toolDisplay` | Tool-call card detail: `inline` / `minimal` / `compact` / `full` (default `full`). |
152
152
  | `data-text-animation` | — | Incoming-text reveal: `none` (default) / `fade` / `word`. |
153
- | `data-prompt-chips` | — | `"true"` to surface skills as chips. |
154
- | `data-slash-commands` | — | `"true"` to enable the `/`-command palette. |
153
+ | `data-prompt-chips` | — | Present (bare, or any value but `"false"`) to surface skills as chips. |
154
+ | `data-slash-commands` | — | Present (bare, or any value but `"false"`) to enable the `/`-command palette. |
155
155
  | `data-skills` | — | Inline JSON skill catalog. |
156
156
  | `data-skills-url` | — | URL of a JSON skill catalog (fetched with `headers`). |
157
157
  | `data-tools-url` | — | URL of a server tool-label catalog (`[{ name, summary, description? }]`), fetched with `headers`; labels tool-call cards for server-side tools. |
@@ -194,6 +194,10 @@ labels are fetched automatically — per card, `x-summary` → an explicit
194
194
 
195
195
  **Properties** (selected): `sharedState` — AG-UI shared state (documented under Tools & state).
196
196
 
197
+ Code blocks in an agent's answer carry a **copy button**, revealed on hover or
198
+ keyboard focus and styleable via the `code-copy` part. Override its labels with
199
+ the `copyCode` / `copied` / `copyFailed` strings.
200
+
197
201
  **Methods**: `registerTool`, `registerPageState`, `setSkills`, `sendMessage`, `attachFile`,
198
202
  `appendMessage`, `newChat`, `setCollapsed`, `toggleCollapsed`.
199
203
 
@@ -1189,10 +1193,14 @@ This produces, into `dist/`:
1189
1193
  them.
1190
1194
  - `ag-ui-web-component.bundle.js` — the **vendored** ESM bundle, every dependency inlined and
1191
1195
  minified, suitable for direct `<script type="module">` embedding.
1192
- - `ag-ui-web-component.bundle.css` — the extracted CSS sidecar.
1193
1196
  - `index.d.ts` (+ source maps) — type declarations; emitted `.js` import specifiers are preserved
1194
1197
  so consumers resolve types without extra flags.
1195
1198
 
1199
+ There is **no CSS file to load**. The styles are a template literal injected into
1200
+ the shadow root at construction, so they ship inside the JS and cannot leak into
1201
+ the host page. Restyle through the [CSS custom properties](#theming-density-and-placement) and the
1202
+ `part` attributes, not a stylesheet override.
1203
+
1196
1204
  Other workflow targets (all identical in name to the sibling Python packages):
1197
1205
 
1198
1206
  | Target | What it does |