@robota-sdk/agent-ui-web 3.0.0-beta.96 → 3.0.0-beta.99
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 +30 -0
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +36 -6
- package/dist/browser/index.js.map +1 -1
- package/dist/node/index.cjs +36 -6
- package/dist/node/index.d.cts +1 -1
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +36 -6
- package/dist/node/index.js.map +1 -1
- package/package.json +6 -6
- package/src/components/SessionSurfaceChrome.tsx +6 -3
- package/src/hooks/server-message-handling.ts +4 -4
- package/src/hooks/session-client-types.ts +2 -1
- package/src/hooks/useSessionClient.ts +35 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @robota-sdk/agent-ui-web
|
|
2
2
|
|
|
3
|
+
## 3.0.0-beta.99
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- @robota-sdk/agent-interface-command@3.0.0-beta.99
|
|
7
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.99
|
|
8
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.99
|
|
9
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.99
|
|
10
|
+
- @robota-sdk/agent-transport@3.0.0-beta.99
|
|
11
|
+
|
|
12
|
+
## 3.0.0-beta.98
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- @robota-sdk/agent-interface-command@3.0.0-beta.98
|
|
16
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.98
|
|
17
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.98
|
|
18
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.98
|
|
19
|
+
- @robota-sdk/agent-transport@3.0.0-beta.98
|
|
20
|
+
|
|
21
|
+
## 3.0.0-beta.97
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- c207a31: Keep automatic compaction aligned with the active model and pending input, preserve provider usage when estimating new context, and keep summary text out of the response stream. Display live context changes and successful automatic compaction in the shared app interface.
|
|
25
|
+
- Updated dependencies [c207a31]
|
|
26
|
+
- Updated dependencies [7911a7d]
|
|
27
|
+
- @robota-sdk/agent-transport@3.0.0-beta.97
|
|
28
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.97
|
|
29
|
+
- @robota-sdk/agent-interface-command@3.0.0-beta.97
|
|
30
|
+
- @robota-sdk/agent-interface-execution@3.0.0-beta.97
|
|
31
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.97
|
|
32
|
+
|
|
3
33
|
## 3.0.0-beta.96
|
|
4
34
|
### Minor Changes
|
|
5
35
|
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -177,7 +177,7 @@ interface ISessionNotice {
|
|
|
177
177
|
* failed — a plain notice rather than a conversation card, since the control's own label is where
|
|
178
178
|
* a successful change confirms itself and the label stays unchanged when it fails.
|
|
179
179
|
*/
|
|
180
|
-
kind: 'session-error' | 'protocol-error' | 'session-change-refused' | 'background-task-control-failed' | 'command-failed';
|
|
180
|
+
kind: 'session-error' | 'protocol-error' | 'session-change-refused' | 'background-task-control-failed' | 'command-failed' | 'context-compacted';
|
|
181
181
|
message: string;
|
|
182
182
|
/**
|
|
183
183
|
* A `session-error` classified at the wire boundary (#3289 §3) — present only when the host could
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/app-view/types.ts","../../src/client/ws-session-client.ts","../../src/hooks/prompt-state.ts","../../src/hooks/session-client-types.ts","../../src/hooks/useSessionClient.ts","../../src/hooks/use-session-directory.ts","../../src/components/composer-attachments.ts","../../src/components/Composer.tsx","../../src/client/runtime-host.ts","../../src/hooks/ui-intent-state.ts","../../src/components/ConversationView.tsx","../../src/components/AgentActivityPanel.tsx","../../src/components/AgentSwitcherSheet.tsx","../../src/components/PermissionPrompt.tsx","../../src/components/personal-usage-dashboard-types.ts","../../src/components/PersonalUsageDashboard.tsx","../../src/components/SessionSurface.tsx","../../src/components/SessionSidebar.tsx","../../src/components/SessionMonitor.tsx","../../src/components/Dialog.tsx","../../src/components/SettingsScreen.tsx","../../src/components/HelpSheet.tsx","../../src/components/Brand.tsx","../../src/product-identity.tsx"],"mappings":";;;;;;;KAEY,WAAW,QAAQ;EAAkB;;KAErC,kBAAkB,KAC5B,QAAQ;EAAkB;;KAIhB,oBAAoB,QAAQ;EAAkB;;;;KCE9C;UAEK;EACf,YAAY,KAAK;EACjB,iBAAiB,QAAQ;;;;;EAKzB;;UAGe;EACf;EACA;EACA,OAAO,KAAK;EACZ,cAAc;;iBAMA,sBACd,aACA,WAAW,4BACV;;;;KCjBS;WACI;IAAuB;WACvB;IAAgB;;;;;;iBAOhB,iBACd,kBAAkB,kBAClB,KAAK,0BACK;;iBA4CI,mBAAmB,YAAY,QAAQ,yBAAyB;;iBAKhE,YAAY,YAAY,UAAU,kBAAkB;;;KC1DxD,uBAAuB,QACjC;EACE;;KAEQ,4BAA4B,QACtC;EACE;;;KAGQ,kBAAkB,KAAK,QAAQ;EAAkB;;;KAEjD,iBAAiB,QAAQ;EAAkB;;;;;;KAM3C,qBAAqB,KAC/B,QAAQ;EAAkB;;;KAKhB,kBAAkB,QAAQ;EAAkB;;;KAE5C,iBAAiB,KAC3B,QAAQ;EAAkB;;KAIhB,6BAA6B,QACvC;EACE;;;;KAKQ,qBAAqB,QAAQ;EAAkB;;KAC/C,mBAAmB,QAAQ;EAAkB;;KAC7C,qBAAqB,QAAQ;EAAkB;;UAE1C;EACf;EACA;EACA;EACA;;EAEA;;;;;;UAOe;EACf;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA,gBAAgB;;;UAID;EACf;EACA;EACA;EACA,oBAAoB;;;UAIL;EACf;EACA;EACA,gBAAgB;;KAGN,qBACV,uBAAuB,sBAAsB,kBAAkB;UAEhD;EACf;EACA;EACA;EACA;EACA,SAAS;;EAET;;EAEA,qBAAqB;;EAErB;;EAEA;;EAEA,kBAAkB;;EAElB;;EAEA;;EAEA;EAEA,UAAU;;;;;;;UAQK;EACf;EACA;;UAGe;EACf;;;;;;;;EAQA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/app-view/types.ts","../../src/client/ws-session-client.ts","../../src/hooks/prompt-state.ts","../../src/hooks/session-client-types.ts","../../src/hooks/useSessionClient.ts","../../src/hooks/use-session-directory.ts","../../src/components/composer-attachments.ts","../../src/components/Composer.tsx","../../src/client/runtime-host.ts","../../src/hooks/ui-intent-state.ts","../../src/components/ConversationView.tsx","../../src/components/AgentActivityPanel.tsx","../../src/components/AgentSwitcherSheet.tsx","../../src/components/PermissionPrompt.tsx","../../src/components/personal-usage-dashboard-types.ts","../../src/components/PersonalUsageDashboard.tsx","../../src/components/SessionSurface.tsx","../../src/components/SessionSidebar.tsx","../../src/components/SessionMonitor.tsx","../../src/components/Dialog.tsx","../../src/components/SettingsScreen.tsx","../../src/components/HelpSheet.tsx","../../src/components/Brand.tsx","../../src/product-identity.tsx"],"mappings":"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"}
|
package/dist/browser/index.js
CHANGED
|
@@ -256,8 +256,8 @@ const SERVER_MESSAGE_HANDLING = {
|
|
|
256
256
|
command_result: "reducer-state",
|
|
257
257
|
messages: "reducer-state",
|
|
258
258
|
history: "intentionally-not-rendered",
|
|
259
|
-
history_changed: "
|
|
260
|
-
context: "
|
|
259
|
+
history_changed: "visible-notice",
|
|
260
|
+
context: "reducer-state",
|
|
261
261
|
turn_source: "intentionally-not-rendered",
|
|
262
262
|
commands: "reducer-state",
|
|
263
263
|
session_status: "reducer-state",
|
|
@@ -1429,6 +1429,9 @@ function useSessionClient(makeClient) {
|
|
|
1429
1429
|
settingsOpenRef.current = settingsState.settingsOpen;
|
|
1430
1430
|
const { handleAgentDefinitionsMessage, resolveSwitchResult, openAgentSwitcher, ...agentSwitcherState } = useAgentSwitcherState(send);
|
|
1431
1431
|
const { handleSchedulesMessage, requestSchedules, ...schedulesState } = useSchedulesState(send);
|
|
1432
|
+
const clearCompactionNotices = useCallback(() => {
|
|
1433
|
+
setSessionNotices((previous) => previous.filter((notice) => notice.kind !== "context-compacted"));
|
|
1434
|
+
}, []);
|
|
1432
1435
|
const handleMessage = useCallback((msg) => {
|
|
1433
1436
|
SERVER_MESSAGE_HANDLING[msg.type];
|
|
1434
1437
|
if (handleUsageMessage(msg)) return;
|
|
@@ -1576,6 +1579,7 @@ function useSessionClient(makeClient) {
|
|
|
1576
1579
|
settleSessionChange();
|
|
1577
1580
|
sessionStatusRef.current = null;
|
|
1578
1581
|
setSessionStatus(null);
|
|
1582
|
+
clearCompactionNotices();
|
|
1579
1583
|
streamingTextRef.current = "";
|
|
1580
1584
|
turnSegmentsRef.current = [];
|
|
1581
1585
|
setStreamingText("");
|
|
@@ -1597,6 +1601,7 @@ function useSessionClient(makeClient) {
|
|
|
1597
1601
|
requestSchedules();
|
|
1598
1602
|
break;
|
|
1599
1603
|
case "history_cleared":
|
|
1604
|
+
clearCompactionNotices();
|
|
1600
1605
|
rejectPendingAppRequests("The session history was cleared.");
|
|
1601
1606
|
streamingTextRef.current = "";
|
|
1602
1607
|
turnSegmentsRef.current = [];
|
|
@@ -1683,6 +1688,25 @@ function useSessionClient(makeClient) {
|
|
|
1683
1688
|
setCommandCatalog(catalog);
|
|
1684
1689
|
break;
|
|
1685
1690
|
}
|
|
1691
|
+
case "context":
|
|
1692
|
+
if (sessionStatusRef.current !== null) {
|
|
1693
|
+
const next = {
|
|
1694
|
+
...sessionStatusRef.current,
|
|
1695
|
+
context: msg.state
|
|
1696
|
+
};
|
|
1697
|
+
sessionStatusRef.current = next;
|
|
1698
|
+
setSessionStatus(next);
|
|
1699
|
+
}
|
|
1700
|
+
break;
|
|
1701
|
+
case "history_changed": {
|
|
1702
|
+
const compact = msg.compact;
|
|
1703
|
+
if (compact?.trigger === "auto") setSessionNotices((previous) => [...previous, {
|
|
1704
|
+
id: nextId(),
|
|
1705
|
+
kind: "context-compacted",
|
|
1706
|
+
message: `Auto compacted context: ${Math.round(compact.beforeUsedPercentage)}% → ${Math.round(compact.afterUsedPercentage)}%`
|
|
1707
|
+
}]);
|
|
1708
|
+
break;
|
|
1709
|
+
}
|
|
1686
1710
|
case "session_status":
|
|
1687
1711
|
sessionStatusRef.current = msg.status;
|
|
1688
1712
|
setSessionStatus(msg.status);
|
|
@@ -1736,6 +1760,7 @@ function useSessionClient(makeClient) {
|
|
|
1736
1760
|
appendEntry,
|
|
1737
1761
|
canListSessions,
|
|
1738
1762
|
closeExecutionDetail,
|
|
1763
|
+
clearCompactionNotices,
|
|
1739
1764
|
finishTurn,
|
|
1740
1765
|
handleAgentDefinitionsMessage,
|
|
1741
1766
|
handleAppViewMessage,
|
|
@@ -1774,7 +1799,10 @@ function useSessionClient(makeClient) {
|
|
|
1774
1799
|
const onStatusChange = (next) => {
|
|
1775
1800
|
statusRef.current = next;
|
|
1776
1801
|
setStatus(next);
|
|
1777
|
-
if (next !== "connected")
|
|
1802
|
+
if (next !== "connected") {
|
|
1803
|
+
rejectPendingAppRequests();
|
|
1804
|
+
clearCompactionNotices();
|
|
1805
|
+
}
|
|
1778
1806
|
if (next === "connected") {
|
|
1779
1807
|
commandsInFlightRef.current = 0;
|
|
1780
1808
|
silentCommandRequestIdsRef.current.clear();
|
|
@@ -1803,6 +1831,7 @@ function useSessionClient(makeClient) {
|
|
|
1803
1831
|
}, [
|
|
1804
1832
|
makeClient,
|
|
1805
1833
|
handleMessage,
|
|
1834
|
+
clearCompactionNotices,
|
|
1806
1835
|
requestSessions,
|
|
1807
1836
|
requestSchedules,
|
|
1808
1837
|
armRestore,
|
|
@@ -6914,7 +6943,7 @@ function noticeSentence(notice) {
|
|
|
6914
6943
|
}
|
|
6915
6944
|
}
|
|
6916
6945
|
/**
|
|
6917
|
-
* Session and protocol failures, as dismissible toasts over the top-right corner: they stay until
|
|
6946
|
+
* Session outcomes and protocol failures, as dismissible toasts over the top-right corner: they stay until
|
|
6918
6947
|
* dismissed, and never push the conversation or the composer out of view. Command output is not
|
|
6919
6948
|
* here — it belongs to the conversation. A provider error classified at the wire boundary shows one
|
|
6920
6949
|
* plain sentence with the next step; its raw text sits behind "Details" rather than as the headline.
|
|
@@ -6926,11 +6955,12 @@ function SessionNotices({ state }) {
|
|
|
6926
6955
|
className: "pointer-events-none absolute right-4 top-16 z-40 flex w-[min(400px,calc(100%-32px))] flex-col gap-2",
|
|
6927
6956
|
children: notices.slice(-3).map((notice) => {
|
|
6928
6957
|
const sentence = noticeSentence(notice);
|
|
6958
|
+
const compacted = notice.kind === "context-compacted";
|
|
6929
6959
|
return /* @__PURE__ */ jsxs("div", {
|
|
6930
|
-
role: "alert",
|
|
6960
|
+
role: compacted ? "status" : "alert",
|
|
6931
6961
|
className: "gui-rise pointer-events-auto flex items-start gap-3 rounded-xl bg-popover px-4 py-3 text-[14px] leading-snug text-popover-foreground shadow-xl shadow-black/30",
|
|
6932
6962
|
children: [
|
|
6933
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
6963
|
+
/* @__PURE__ */ jsx("span", { className: `mt-[7px] h-2 w-2 flex-shrink-0 rounded-full ${compacted ? "bg-primary" : "bg-destructive"}` }),
|
|
6934
6964
|
/* @__PURE__ */ jsxs("span", {
|
|
6935
6965
|
className: "max-h-40 flex-1 overflow-y-auto whitespace-pre-wrap break-words",
|
|
6936
6966
|
children: [sentence ?? notice.message, sentence && /* @__PURE__ */ jsxs("details", {
|