@artooi/ag-ui-web-component 0.2.0 → 0.2.1

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,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.1] — 2026-06-02
11
+
12
+ ### Added
13
+ - **Server-side tool results in the card.** The element now subscribes to
14
+ AG-UI's `TOOL_CALL_RESULT` event and settles the matching tool-call card with
15
+ the real server output (honouring the `data-tool-display` mode), instead of
16
+ the generic "Executed on the server." placeholder — which remains only as a
17
+ fallback when no result event is streamed.
18
+ - **Tool calls and results survive a page refresh.** History replay now
19
+ reconstructs tool-call cards (from assistant `toolCalls`) and settles them
20
+ from the persisted `tool` result messages, so a rehydrated transcript shows
21
+ the full tool activity, not just the prose. Applies to every conversation
22
+ store (the data was already persisted; only the replay was incomplete).
23
+
24
+ ### Fixed
25
+ - **Pending indicator could hang after a server-only round.** A round whose
26
+ tool calls were all server-side re-showed the "thinking" indicator after the
27
+ run had already finished, leaving it stuck. The indicator is no longer shown
28
+ speculatively for server tools, and a terminal `onSettled` guarantee clears
29
+ it (and re-enables input) on every run-loop exit — including the
30
+ `MAX_TOOL_ROUNDS` ceiling and errors.
31
+
10
32
  ## [0.2.0] — 2026-06-02
11
33
 
12
34
  ### Added
@@ -107,7 +129,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
107
129
  ### Notes
108
130
  - First release — exercising the automated npm OIDC publish pipeline end-to-end.
109
131
 
110
- [Unreleased]: https://github.com/Artui/ag-ui-web-component/compare/v0.2.0...HEAD
132
+ [Unreleased]: https://github.com/Artui/ag-ui-web-component/compare/v0.2.1...HEAD
133
+ [0.2.1]: https://github.com/Artui/ag-ui-web-component/compare/v0.2.0...v0.2.1
111
134
  [0.2.0]: https://github.com/Artui/ag-ui-web-component/compare/v0.1.1...v0.2.0
112
135
  [0.1.1]: https://github.com/Artui/ag-ui-web-component/compare/v0.1.0...v0.1.1
113
136
  [0.1.0]: https://github.com/Artui/ag-ui-web-component/releases/tag/v0.1.0
package/README.md CHANGED
@@ -185,8 +185,10 @@ an AG-UI `AbstractAgent`. On the first send the element builds a client (via the
185
185
  4. This repeats until the agent stops calling frontend tools, bounded by `MAX_TOOL_ROUNDS`.
186
186
 
187
187
  Tool calls the client doesn't own (server-side tools the server already executed) are left alone —
188
- the loop doesn't re-run them. The current tool catalog and context are read **fresh on every run**
189
- (`getTools()` / `getContext()`), so they always reflect the current page state.
188
+ the loop doesn't re-run them, but their streamed `TOOL_CALL_RESULT` is rendered into the tool-call
189
+ card (honouring `data-tool-display`), so server-side output is visible too. The current tool catalog
190
+ and context are read **fresh on every run** (`getTools()` / `getContext()`), so they always reflect
191
+ the current page state.
190
192
 
191
193
  ### Registering tools
192
194
 
@@ -406,7 +408,9 @@ history endpoint) for cross-tab/device durability:
406
408
  chat.conversationStore = new MyServerBackedStore();
407
409
  ```
408
410
 
409
- On mount the element rehydrates the transcript from the store, so the chat looks continuous.
411
+ On mount the element rehydrates the transcript from the store, so the chat looks continuous
412
+ including tool-call cards and their results (reconstructed from the persisted `toolCalls` and `tool`
413
+ messages), not just the text turns.
410
414
 
411
415
  **3. Resumable loop (`x-navigates` + `navigationResult`).** A tool whose schema carries
412
416
  `x-navigates: true` (use `X_NAVIGATES_KEY`; read back by [`isNavigates`](src/tools/is_navigates.ts))