@robota-sdk/agent-ui-web 0.0.0-stage → 3.0.0-beta.93

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 (75) hide show
  1. package/CHANGELOG.md +400 -0
  2. package/LICENSE +661 -0
  3. package/README.md +19 -2
  4. package/dist/browser/index.d.ts +715 -0
  5. package/dist/browser/index.d.ts.map +1 -0
  6. package/dist/browser/index.js +7923 -0
  7. package/dist/browser/index.js.map +1 -0
  8. package/dist/node/index.cjs +7973 -0
  9. package/dist/node/index.d.cts +715 -0
  10. package/dist/node/index.d.cts.map +1 -0
  11. package/dist/node/index.d.ts +715 -0
  12. package/dist/node/index.d.ts.map +1 -0
  13. package/dist/node/index.js +7923 -0
  14. package/dist/node/index.js.map +1 -0
  15. package/docs/README.md +62 -0
  16. package/docs/SPEC.md +124 -0
  17. package/package.json +99 -3
  18. package/src/client/runtime-host.ts +84 -0
  19. package/src/client/ws-session-client.ts +131 -0
  20. package/src/clipboard.ts +81 -0
  21. package/src/components/AgentActivityPanel.tsx +371 -0
  22. package/src/components/AgentSwitcherSheet.tsx +93 -0
  23. package/src/components/Brand.tsx +33 -0
  24. package/src/components/Composer.tsx +685 -0
  25. package/src/components/ConversationView.tsx +772 -0
  26. package/src/components/Dialog.tsx +230 -0
  27. package/src/components/DiffLines.tsx +81 -0
  28. package/src/components/ExecutionDetailSheet.tsx +142 -0
  29. package/src/components/HelpSheet.tsx +104 -0
  30. package/src/components/PermissionPrompt.tsx +661 -0
  31. package/src/components/PersonalUsageDashboard.tsx +39 -0
  32. package/src/components/PersonalUsageDashboardDetails.tsx +368 -0
  33. package/src/components/PersonalUsageDashboardSections.tsx +250 -0
  34. package/src/components/PopupMenu.tsx +166 -0
  35. package/src/components/ProjectPanel.tsx +268 -0
  36. package/src/components/SessionMonitor.tsx +180 -0
  37. package/src/components/SessionSidebar.tsx +429 -0
  38. package/src/components/SessionSurface.tsx +455 -0
  39. package/src/components/SessionSurfaceChrome.tsx +316 -0
  40. package/src/components/SettingsFields.tsx +159 -0
  41. package/src/components/SettingsGeneralSection.tsx +49 -0
  42. package/src/components/SettingsMcpSection.tsx +157 -0
  43. package/src/components/SettingsPermissionsSection.tsx +137 -0
  44. package/src/components/SettingsPluginsSection.tsx +165 -0
  45. package/src/components/SettingsProvidersSection.tsx +211 -0
  46. package/src/components/SettingsScreen.tsx +340 -0
  47. package/src/components/StatusControls.tsx +294 -0
  48. package/src/components/composer-attachments.ts +246 -0
  49. package/src/components/personal-usage-dashboard-types.ts +26 -0
  50. package/src/driver-labels.ts +88 -0
  51. package/src/execution-entry-status.ts +55 -0
  52. package/src/goal-view.ts +19 -0
  53. package/src/hooks/command-menu.ts +65 -0
  54. package/src/hooks/excluded-commands.ts +52 -0
  55. package/src/hooks/prompt-state.ts +83 -0
  56. package/src/hooks/server-message-handling.ts +92 -0
  57. package/src/hooks/session-client-types.ts +329 -0
  58. package/src/hooks/ui-intent-state.ts +74 -0
  59. package/src/hooks/use-agent-switcher-state.ts +125 -0
  60. package/src/hooks/use-execution-detail.ts +118 -0
  61. package/src/hooks/use-media-query.ts +27 -0
  62. package/src/hooks/use-model-list.ts +45 -0
  63. package/src/hooks/use-personal-usage.ts +138 -0
  64. package/src/hooks/use-project-panel.ts +117 -0
  65. package/src/hooks/use-schedules-state.ts +92 -0
  66. package/src/hooks/use-session-directory.ts +202 -0
  67. package/src/hooks/use-settings-state.ts +115 -0
  68. package/src/hooks/useSessionClient.ts +991 -0
  69. package/src/index.ts +66 -0
  70. package/src/product-identity.tsx +26 -0
  71. package/src/schedule-view.ts +92 -0
  72. package/src/styles/surface.css +231 -0
  73. package/src/styles/surface.css.d.mts +1 -0
  74. package/src/styles/theme.css +38 -0
  75. package/src/styles/theme.css.d.mts +1 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,400 @@
1
+ # @robota-sdk/agent-ui-web
2
+
3
+ ## 3.0.0-beta.93
4
+ ### Minor Changes
5
+
6
+ - c402d98: Expose a separate product-bound CLI entry and desktop/native host helpers for npm-only consumer applications. Publish the product configuration and browser client contracts needed by those applications.
7
+
8
+ ### Patch Changes
9
+
10
+ - Updated dependencies
11
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.93
12
+ - @robota-sdk/agent-interface-command@3.0.0-beta.93
13
+ - @robota-sdk/agent-interface-session@3.0.0-beta.93
14
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.93
15
+ - @robota-sdk/agent-transport@3.0.0-beta.93
16
+
17
+ ## 3.0.0-beta.92
18
+ ### Patch Changes
19
+
20
+ - Local OpenAI-compatible servers can be set up without saving a placeholder API key. Explicit credentials and environment references remain effective for authenticated servers and connection tests. Optional credentials are managed through the user-only provider edit command.
21
+ - @robota-sdk/agent-interface-command@3.0.0-beta.92
22
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.92
23
+ - @robota-sdk/agent-interface-session@3.0.0-beta.92
24
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.92
25
+ - @robota-sdk/agent-transport@3.0.0-beta.92
26
+
27
+ ## 3.0.0-beta.91
28
+ ### Patch Changes
29
+
30
+ - @robota-sdk/agent-interface-command@3.0.0-beta.91
31
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.91
32
+ - @robota-sdk/agent-interface-session@3.0.0-beta.91
33
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.91
34
+ - @robota-sdk/agent-transport@3.0.0-beta.91
35
+
36
+ ## 3.0.0-beta.90
37
+ ### Patch Changes
38
+
39
+ - @robota-sdk/agent-interface-command@3.0.0-beta.90
40
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.90
41
+ - @robota-sdk/agent-interface-session@3.0.0-beta.90
42
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.90
43
+ - @robota-sdk/agent-transport@3.0.0-beta.90
44
+
45
+ ## 3.0.0-beta.89
46
+ ### Patch Changes
47
+
48
+ - Updated dependencies [3427887]
49
+ - @robota-sdk/agent-transport@3.0.0-beta.89
50
+ - @robota-sdk/agent-interface-command@3.0.0-beta.89
51
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.89
52
+ - @robota-sdk/agent-interface-session@3.0.0-beta.89
53
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.89
54
+
55
+ ## 3.0.0-beta.88
56
+
57
+ ### Patch Changes
58
+
59
+ - @robota-sdk/agent-interface-command@3.0.0-beta.88
60
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.88
61
+ - @robota-sdk/agent-interface-session@3.0.0-beta.88
62
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.88
63
+ - @robota-sdk/agent-transport@3.0.0-beta.88
64
+
65
+ ## 3.0.0-beta.87
66
+
67
+ ### Patch Changes
68
+
69
+ - 7d9cc66: Restore actual interactive tool observations, identities and outcomes from persisted event history.
70
+ Show denied calls as failed in live and restored GUI conversation views.
71
+ - Updated dependencies
72
+ - Updated dependencies [7d9cc66]
73
+ - Updated dependencies [7d9cc66]
74
+ - Updated dependencies [7d9cc66]
75
+ - @robota-sdk/agent-interface-command@3.0.0-beta.87
76
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.87
77
+ - @robota-sdk/agent-interface-session@3.0.0-beta.87
78
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.87
79
+ - @robota-sdk/agent-transport@3.0.0-beta.87
80
+
81
+ ## 3.0.0-beta.86
82
+
83
+ ### Patch Changes
84
+
85
+ - @robota-sdk/agent-interface-command@3.0.0-beta.86
86
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.86
87
+ - @robota-sdk/agent-interface-session@3.0.0-beta.86
88
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.86
89
+ - @robota-sdk/agent-transport@3.0.0-beta.86
90
+
91
+ ## 3.0.0-beta.85
92
+
93
+ ### Patch Changes
94
+
95
+ - Updated dependencies [193a0bc]
96
+ - Updated dependencies [9a01e78]
97
+ - @robota-sdk/agent-interface-command@3.0.0-beta.85
98
+ - @robota-sdk/agent-transport@3.0.0-beta.85
99
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.85
100
+ - @robota-sdk/agent-interface-session@3.0.0-beta.85
101
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.85
102
+
103
+ ## 3.0.0-beta.84
104
+
105
+ ### Minor Changes
106
+
107
+ - 29486da: A lost connection no longer drops a typed message or takes the person out of their session. While the
108
+ transport is not `connected`, the composer keeps its draft and Send explains why it cannot submit
109
+ ("Not connected"). A banner above the conversation — never a full-screen replacement — says "Connection
110
+ lost. Reconnecting…" while retries continue, and once they give up either offers a working Reconnect
111
+ (a host that can restart the runtime) or says how to reopen the page (a browser served by
112
+ `robota --serve --open`). A desktop Reconnect remembers the session the person was in and returns to it
113
+ once the restart's reload reconnects.
114
+ - e8d70ac: A first run finds a provider, instead of a dead end. `robota --serve` (and the daemon it starts) no
115
+ longer refuses when no provider is configured: it starts in setup mode, and the GUI's conversation area
116
+ shows a "Connect a model provider to start" panel with a "Set up provider" button in place of the
117
+ composer. Answering it configures and swaps in the first provider live, with no restart. A startup
118
+ failure now says why — `robota daemon start --json` and the desktop app's fatal screen report the
119
+ child's own reason instead of a generic "readiness channel closed", and the fatal screen gets a Try
120
+ again button. `trust status --json` and the desktop trust dialog list only sources whose state trust
121
+ would actually change, instead of naming one this platform could not determine; the dialog shows one
122
+ sentence and a collapsed Details section. `robota --serve --open` in an untrusted folder now asks at
123
+ the terminal (trust it, start Restricted, or quit) when someone is there to ask, instead of refusing
124
+ outright.
125
+
126
+ ### Patch Changes
127
+
128
+ - Updated dependencies [e8d70ac]
129
+ - Updated dependencies [9c6a8db]
130
+ - Updated dependencies [9c6a8db]
131
+ - @robota-sdk/agent-interface-session@3.0.0-beta.84
132
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.84
133
+ - @robota-sdk/agent-transport@3.0.0-beta.84
134
+ - @robota-sdk/agent-interface-command@3.0.0-beta.84
135
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.84
136
+
137
+ ## 3.0.0-beta.83
138
+
139
+ ### Major Changes
140
+
141
+ - 7b72344: Every client can offer the session's commands and skills and show its status. The GUI uses them as a
142
+ desktop-style composer.
143
+
144
+ - `agent-interface-session` is **`major` because `IInteractiveSession` gains required members**:
145
+ `ISessionCommands.listSkills()` and a `statusRead` capability, `getStatusSnapshot()`. The snapshot
146
+ holds session, model, permission mode, effort, context and goal. An external implementation stops
147
+ compiling until it adds both.
148
+ - `agent-transport` is **`major` for the same reason on `IProtocolSession`**. It also gains the wire
149
+ messages `get-commands` → `commands` and `get-status` → `session_status`. Both are reads that the
150
+ observe role may send.
151
+ - `agent-interface-command` gains `ICommandSkillListEntry`, moved from `agent-framework`, which
152
+ re-exports it unchanged.
153
+ - `agent-ui-web` is **`major` because its state changes shape**:
154
+ - A command's outcome and a finished turn's tool calls are now conversation entries: `messages` is
155
+ `TConversationEntry[]`.
156
+ - The `uiIntentNotices` list, `dismissUiIntentNotice`, `applyUiIntentEvent`,
157
+ `removeUiIntentNotice` and `IUiIntentNotice` are removed. An intent now answers with an info
158
+ line in the conversation.
159
+ - Session notices keep only `session-error` and `protocol-error`.
160
+ - The state gains `commandCatalog` and `sessionStatus`.
161
+ - `agent-command` registers `/theme` and `/keybindings` even without a terminal. They then answer
162
+ that they belong to the Robota terminal, instead of being unknown.
163
+ - `agent-framework`:
164
+ - `InteractiveSession.getStatusSnapshot()`.
165
+ - The main-thread row previews the last chat message instead of the last record's type.
166
+ - `agent-cli` serves the full GUI web app, renamed from `agent-cli-web` to `agent-gui-web`, on
167
+ `robota --serve --open`.
168
+
169
+ - 6ae3f28: A served runtime can list its workspace's sessions, start a new one and switch to another without the
170
+ process or any client connection restarting. The GUI shows them in a sessions sidebar.
171
+
172
+ - `agent-interface-session` is **`major`** for two reasons:
173
+ - It adds `ISessionListing`, `ISessionDirectory` and `ISessionSwitchedEvent`.
174
+ - `IInteractiveSessionEvents` gains a required `session_switched` event. An exhaustive map over the
175
+ event names stops compiling until it classifies the new event.
176
+ - `agent-transport` is **`major`** for the same kind of reason:
177
+ - It adds the wire messages `list-sessions` → `sessions`/`sessions_error`, `new-session`,
178
+ `switch-session`, and the broadcast `session_switched`.
179
+ - It adds a `sessionDirectory` handler option. A refusal to switch comes back as a
180
+ `protocol_error` carrying the reason.
181
+ - An exhaustive map over message types must add the new variants.
182
+ - `agent-transport-ws` passes a configured `sessionDirectory` to every connection.
183
+ - `agent-framework` is **`major` because `IRuntimeHostHandle.session` is now a `SessionSlot`**, not the
184
+ `InteractiveSession`, and `bindTransports` receives the slot.
185
+ - The slot is an `IInteractiveSession` that forwards to the current session. Members outside that
186
+ interface are read through `host.session.current`, which changes on a switch.
187
+ - Adds `InteractiveSession.whenInitialized()`.
188
+ - Exports `listUnreadableSessions`.
189
+ - `agent-ui-web` is **`major`**:
190
+ - `IWsSessionState` gains session listing state and actions.
191
+ - It adds a `SessionSidebar`.
192
+ - `/resume` opens the sidebar.
193
+ - `agent-cli`: `robota --serve` provides the session directory, and refuses a switch that would lose
194
+ work in progress. External-event grants belong to the run: a switch reopens them on the new session,
195
+ as the TUI already does.
196
+ - External-event grant history (spent tokens, rate windows, revocations) belongs to the run. The new
197
+ option `externalEventGrantHistory` (from `createExternalEventGrantHistory()`) is shared by every
198
+ session that a served runtime or the TUI builds. A session switch therefore replays no spent token
199
+ and resets no rate limit. The TUI previously had this gap when it switched sessions.
200
+
201
+ ### Minor Changes
202
+
203
+ - 9ecffed: `robota daemon start | status | stop | unlock` runs one long-lived runtime per workspace for clients to attach to.
204
+
205
+ - **What a daemon is.** A supervised session marked as the workspace's daemon.
206
+ - Its control socket answers `connect` with the loopback WebSocket address, and only to a caller that names the daemon's current start.
207
+ - The token never touches disk or argv. The daemon removes it from its own environment, so its tools do not inherit it.
208
+ - **Starting.** `daemon start --json` prints one line, `{"id","url"}`, for a client host to read.
209
+ - Starts in one workspace take turns through a lock.
210
+ - A lock left behind by a start that is gone is never removed automatically. The start refuses and names `robota daemon unlock`.
211
+ - A daemon that cannot hand over its address fails its start and is not left running.
212
+ - **The desktop app attaches** to the workspace daemon and starts one only when none is running.
213
+ - Closing the window leaves the daemon running.
214
+ - If the daemon stops while the window is open, the window says so and offers Reconnect.
215
+ - **`agent-ui-web`.** The WebSocket session client reports when its retries are exhausted (`onGiveUp`, and `onConnectionLost` in `useWsSession`).
216
+
217
+ - 57f57f5: A daemon keeps several sessions live, and each client is bound to its own: one client's switch moves
218
+ only that client.
219
+
220
+ - `agent-interface-session`: `ISessionBinder`/`ISessionBinding`, the session-change refusal codes with
221
+ `isSessionChangeRefusal`, and listing rows that may say `live` and `clients`.
222
+ - `agent-framework`: `SessionPool` and `SessionChangeRefusal`.
223
+ - `agent-transport` (**major**): a new server frame, `session_change_failed`, which an exhaustive
224
+ consumer must handle. A refused `new-session` or `switch-session` now answers with it, carrying a
225
+ `code`, instead of `protocol_error`; both requests take an optional `requestId` that it echoes.
226
+ - `agent-transport-ws`: the `sessionBinder` option binds each connection to its own session and
227
+ releases the binding when the connection closes.
228
+ - `agent-cli`: `robota --serve` and the daemon keep up to four sessions live. Each WebSocket client and
229
+ attached terminal is bound to its own session; leaving a busy session is no longer refused, and only
230
+ the last driver of a session with a pending prompt is kept from leaving it. Grants and the supervised
231
+ name stay on the runtime's first session, and its reported activity covers every live session.
232
+ - `agent-ui-web`: a refused new or switch shows the host's reason as a notice (an older host's
233
+ `protocol_error` still does); the session sidebar marks live sessions and counts the other clients
234
+ on each; after a reconnect to a host that keeps sessions live, the GUI returns to the session it was on.
235
+ - `agent-ui-terminal`: an attached terminal shows why a switch was refused, and the picker's switch
236
+ stays pending until the host answers; the session picker marks live sessions and their clients.
237
+
238
+ - 9721162: The command catalog says who runs a command, and which surfaces can run it.
239
+
240
+ - **`agent-interface-command` (major).**
241
+ - Adds `TCommandRunner` (`'runtime' | 'client'`) and `TCommandSurface` (`'terminal' | 'gui'`).
242
+ - `ICommand` gains optional `runner` and `surfaces`.
243
+ - `ICommandListEntry` gains optional `surfaces` and a **required** `runner`. An implementation of `listCommands()`, or any code that constructs an `ICommandListEntry`, must now emit `runner`; a command that declares none gets `'runtime'`.
244
+ - **`agent-framework` (minor).**
245
+ - `ISystemCommand` gains optional `runner` and `surfaces`, and the command listing carries both.
246
+ - An undeclared runner resolves to `'runtime'`.
247
+ - `SessionTerminalHandoffGate` is exported for a terminal client that hands its own terminal to a command.
248
+ - **`agent-command` (minor).**
249
+ - `/shell`, `/editor`, `/theme` and `/keybindings` declare `runner: 'client'` and `surfaces: ['terminal']`.
250
+ - `createTerminalClientCommands()` builds the same four commands, from the same execute functions, for a terminal client to run itself. The set follows the preset's module selection.
251
+ - **`agent-ui-web` (minor).** The `/` menu marks a command that runs in the terminal with a "terminal" badge.
252
+
253
+ - 227ff3a: The GUI session surface (desktop app, `robota --serve --open`) is redesigned as a calm desktop app: readable
254
+ type in a bundled Pretendard, monospace only for code and paths, surfaces separated by tone instead of
255
+ outlines, and light and dark themes that follow the system. Agent replies read as prose, your messages sit
256
+ in bubbles, tool calls are single quiet lines, and the composer carries the model, mode and effort. The
257
+ permission prompt now shows what the tool was asked to run, and the title bar names the current session.
258
+ - f8a8a4d: The GUI surface's design now applies inside a `agent-ui` scope that each of its root components opens,
259
+ so an app with design tokens of its own can embed the surface without either overriding the other. Such
260
+ an app imports `@robota-sdk/agent-ui-web/styles/surface.css` into its Tailwind entry; a page that is only
261
+ the surface keeps importing `styles/theme.css` and puts `agent-ui` on its `<html>`. `ProductMark` and
262
+ `ProductWordmark` are exported. The browser remote client (`RemoteClient`) follows the same design, with
263
+ its pairing states centred on the page.
264
+
265
+ ### Patch Changes
266
+
267
+ - 9721162: A key typed just as a prompt appears no longer answers it: in the terminal UI the permission prompt, and in the web UI both the permission and the ask dock.
268
+
269
+ - **`agent-ui-terminal`:** the permission prompt ignores its keys for a short pause after it appears (`PERMISSION_PROMPT_ARM_DELAY_MS`). While it waits it shows "keys answer in a moment" and no selection cursor. In screen-reader mode, a number typed during the pause, or typed for the previous request, is not kept for a later Enter.
270
+ - **`agent-ui-web`:** the docked permission or ask prompt waits a short pause (`PROMPT_ARM_DELAY_MS`) before it takes focus, so keys typed during that pause stay in the composer. While it waits it says so. A mouse click on a button answers at once, and Esc still denies or cancels; Enter or Space on a focused button waits like any other key, and a button focused to answer one prompt hands focus back to the dock when the next appears.
271
+
272
+ - 6e6b06b: A wire client can now render the whole session the way the in-process terminal UI does: the full
273
+ history, the context window as it changes, when the history changes, and where each turn came from.
274
+
275
+ - `agent-interface-session` is **`major`**: `ISessionConversationRead` gains a required
276
+ `getFullHistory()`. Any implementation of it, or of `IInteractiveSession`, must add it.
277
+ - `agent-transport` is **`major`**:
278
+ - It adds `get-history { fromIndex? }` → `history { startIndex, total, entries }`. The history
279
+ crosses one bounded page at a time (at most 256 KiB of entries; a single larger entry is sent
280
+ alone), from `fromIndex` (default 0), so no reply grows with the session. The client asks for
281
+ the next page after the previous one arrived. Entries are `IWireHistoryEntry`: a history entry
282
+ with an ISO 8601 `timestamp`. An observer may send it.
283
+ - `complete` and `interrupted` carry the turn's result without the session's history
284
+ (`TWireExecutionResult`); a client reads the history with `get-history`.
285
+ - It adds `get-prompts`: the host sends the permission and ask prompts still open as the
286
+ `permission_request` / `ask_request` frames that asked them, for a client that attached later.
287
+ An observer may not send it.
288
+ - `pending` gains an optional `pendingCount`: a host sends it when it knows how many prompts are
289
+ queued, and a client that gets none counts the prompt it shows. The host sends `pending` in
290
+ reply to a `submit` once it has taken the prompt, so a prompt queued behind a running turn shows
291
+ as queued.
292
+ - `command` takes an optional `requestId`, which the host echoes on the command's
293
+ `command_result` or `protocol_error`.
294
+ - The session's `context_update` is pushed as the `context` frame that `get-context` answers with.
295
+ - `compact`, `skill_activation` and `memory_event` push the new `history_changed`; the client
296
+ reads the history again.
297
+ - `turn_source` is pushed as the new `turn_source` frame.
298
+ - An exhaustive map over `TClientMessage` or `TServerMessage` types must add the new variants,
299
+ and `IProtocolSession` now requires `getFullHistory()`.
300
+ - `agent-transport-http` is **`major`** only because `IHttpTransportSession` includes the conversation
301
+ read role, so a session handed to it must now provide `getFullHistory()`.
302
+ - `agent-framework`: `SessionSlot` forwards `getFullHistory()` to the current session.
303
+ - `agent-ui-web` receives the new frames and does not render them.
304
+
305
+ - Updated dependencies [724fabb]
306
+ - Updated dependencies [d877de2]
307
+ - Updated dependencies [d61e159]
308
+ - Updated dependencies [bfe8ed5]
309
+ - Updated dependencies [7b72344]
310
+ - Updated dependencies [6ae3f28]
311
+ - Updated dependencies [57f57f5]
312
+ - Updated dependencies [ba822c1]
313
+ - Updated dependencies [9721162]
314
+ - Updated dependencies [6e6b06b]
315
+ - Updated dependencies [57280bf]
316
+ - Updated dependencies [18c0d5c]
317
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.83
318
+ - @robota-sdk/agent-transport@3.0.0-beta.83
319
+ - @robota-sdk/agent-interface-session@3.0.0-beta.83
320
+ - @robota-sdk/agent-interface-command@3.0.0-beta.83
321
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.83
322
+
323
+ ## 3.0.0-beta.82
324
+
325
+ ### Patch Changes
326
+
327
+ - Updated dependencies [c7f9203]
328
+ - @robota-sdk/agent-transport@3.0.0-beta.82
329
+ - @robota-sdk/agent-interface-command@3.0.0-beta.82
330
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.82
331
+ - @robota-sdk/agent-interface-session@3.0.0-beta.82
332
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.82
333
+
334
+ ## 3.0.0-beta.81
335
+
336
+ ### Patch Changes
337
+
338
+ - Updated dependencies [3038eb7]
339
+ - Updated dependencies [18b52cc]
340
+ - @robota-sdk/agent-interface-session@3.0.0-beta.81
341
+ - @robota-sdk/agent-interface-command@3.0.0-beta.81
342
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.81
343
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.81
344
+ - @robota-sdk/agent-transport@3.0.0-beta.81
345
+
346
+ ## 3.0.0-beta.80
347
+
348
+ ### Minor Changes
349
+
350
+ - 1e3f91a: CMD-004 Phase 2 Stage E (breaking, beta line): the legacy `TCommandEffect` union and
351
+ `ICommandResult.effects` are DELETED. Commands emit the split contract directly —
352
+ `hostActions` (session-executed via `ICommandHostAdapters`; works headless and remote) and
353
+ `uiIntents` (requester-routed `ui_intent` session events with UI-neutral `show-*` names).
354
+ Final carriers for the former notification effects: `session_renamed` and the new
355
+ `history_cleared` are BROADCAST session events (forwarded to every WS surface, folded by the
356
+ TUI transcript/title and the GUI reducer's new `sessionName`/transcript-reset state);
357
+ `session-execution-started` rides `result.data.sessionExecution`; the plugin-registry refresh
358
+ rides `result.data.pluginRegistryReloaded`. A mechanical grep floor
359
+ (`command-effect-grep-floor.test.ts`) keeps `tui-requested`/`TCommandEffect`/`effects:` out of
360
+ every `packages/*/src` production tree.
361
+
362
+ ### Patch Changes
363
+
364
+ - Updated dependencies [9c19c50]
365
+ - Updated dependencies [5307f8a]
366
+ - Updated dependencies [b462ee7]
367
+ - Updated dependencies [37b4bd7]
368
+ - Updated dependencies [50d2c9f]
369
+ - Updated dependencies [a5961c9]
370
+ - Updated dependencies [af2f2ad]
371
+ - Updated dependencies [4c5148e]
372
+ - Updated dependencies [0116a29]
373
+ - Updated dependencies [e82215f]
374
+ - Updated dependencies [52b7346]
375
+ - Updated dependencies [9db63ee]
376
+ - Updated dependencies [b078afa]
377
+ - Updated dependencies [2ebff01]
378
+ - Updated dependencies [9db63ee]
379
+ - Updated dependencies [2ebff01]
380
+ - Updated dependencies [4772067]
381
+ - Updated dependencies [0f98419]
382
+ - Updated dependencies [64ba748]
383
+ - Updated dependencies [d312755]
384
+ - Updated dependencies [3244fb8]
385
+ - Updated dependencies [1e3f91a]
386
+ - Updated dependencies [4f3c075]
387
+ - Updated dependencies [7669851]
388
+ - Updated dependencies [4b76cfa]
389
+ - Updated dependencies [07b627f]
390
+ - Updated dependencies [9665c6e]
391
+ - Updated dependencies [44393be]
392
+ - Updated dependencies [c7fa299]
393
+ - Updated dependencies [5134b3b]
394
+ - Updated dependencies [5c5ff23]
395
+ - Updated dependencies [9814afc]
396
+ - @robota-sdk/agent-interface-execution@3.0.0-beta.80
397
+ - @robota-sdk/agent-interface-command@3.0.0-beta.80
398
+ - @robota-sdk/agent-interface-session@3.0.0-beta.80
399
+ - @robota-sdk/agent-interface-transport@3.0.0-beta.80
400
+ - @robota-sdk/agent-transport@3.0.0-beta.80