@schlessera/brain-ui-react 0.34.0 → 0.35.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/README.md +12 -0
- package/dist/components/activity/activity-page.d.ts.map +1 -1
- package/dist/components/activity/activity-page.js +8 -149
- package/dist/components/activity/activity-page.js.map +1 -1
- package/dist/components/activity/activity-rollups.d.ts +5 -0
- package/dist/components/activity/activity-rollups.d.ts.map +1 -0
- package/dist/components/activity/activity-rollups.js +39 -0
- package/dist/components/activity/activity-rollups.js.map +1 -0
- package/dist/components/activity/activity-run-detail.d.ts +11 -0
- package/dist/components/activity/activity-run-detail.d.ts.map +1 -0
- package/dist/components/activity/activity-run-detail.js +111 -0
- package/dist/components/activity/activity-run-detail.js.map +1 -0
- package/dist/components/activity/activity-run-list.d.ts +15 -0
- package/dist/components/activity/activity-run-list.d.ts.map +1 -0
- package/dist/components/activity/activity-run-list.js +25 -0
- package/dist/components/activity/activity-run-list.js.map +1 -0
- package/dist/components/chat/brain-markdown-code.d.ts +4 -0
- package/dist/components/chat/brain-markdown-code.d.ts.map +1 -0
- package/dist/components/chat/brain-markdown-code.js +47 -0
- package/dist/components/chat/brain-markdown-code.js.map +1 -0
- package/dist/components/chat/brain-markdown-entities.d.ts +14 -0
- package/dist/components/chat/brain-markdown-entities.d.ts.map +1 -0
- package/dist/components/chat/brain-markdown-entities.js +93 -0
- package/dist/components/chat/brain-markdown-entities.js.map +1 -0
- package/dist/components/chat/brain-markdown-links.d.ts +36 -0
- package/dist/components/chat/brain-markdown-links.d.ts.map +1 -0
- package/dist/components/chat/brain-markdown-links.js +176 -0
- package/dist/components/chat/brain-markdown-links.js.map +1 -0
- package/dist/components/chat/brain-markdown-share.d.ts +15 -0
- package/dist/components/chat/brain-markdown-share.d.ts.map +1 -0
- package/dist/components/chat/brain-markdown-share.js +40 -0
- package/dist/components/chat/brain-markdown-share.js.map +1 -0
- package/dist/components/chat/brain-markdown.d.ts +1 -34
- package/dist/components/chat/brain-markdown.d.ts.map +1 -1
- package/dist/components/chat/brain-markdown.js +9 -402
- package/dist/components/chat/brain-markdown.js.map +1 -1
- package/dist/components/chat/composer.d.ts.map +1 -1
- package/dist/components/chat/composer.js +14 -1
- package/dist/components/chat/composer.js.map +1 -1
- package/dist/components/chat/session-drawer.d.ts.map +1 -1
- package/dist/components/chat/session-drawer.js +25 -10
- package/dist/components/chat/session-drawer.js.map +1 -1
- package/dist/components/chat/tool-views.d.ts +2 -2
- package/dist/components/chat/tool-views.d.ts.map +1 -1
- package/dist/components/chat/tool-views.js +2 -16
- package/dist/components/chat/tool-views.js.map +1 -1
- package/dist/components/chat/use-markdown-highlight.d.ts +12 -0
- package/dist/components/chat/use-markdown-highlight.d.ts.map +1 -0
- package/dist/components/chat/use-markdown-highlight.js +56 -0
- package/dist/components/chat/use-markdown-highlight.js.map +1 -0
- package/dist/components/connectivity/connection-gate.d.ts.map +1 -1
- package/dist/components/connectivity/connection-gate.js +94 -8
- package/dist/components/connectivity/connection-gate.js.map +1 -1
- package/dist/components/connectivity/connection-state.d.ts +12 -0
- package/dist/components/connectivity/connection-state.d.ts.map +1 -0
- package/dist/components/connectivity/connection-state.js +23 -0
- package/dist/components/connectivity/connection-state.js.map +1 -0
- package/dist/components/graph/graph-canvas-lazy.d.ts +2 -0
- package/dist/components/graph/graph-canvas-lazy.d.ts.map +1 -0
- package/dist/components/graph/graph-canvas-lazy.js +4 -0
- package/dist/components/graph/graph-canvas-lazy.js.map +1 -0
- package/dist/components/graph/graph-controls.js +4 -1
- package/dist/components/graph/graph-controls.js.map +1 -1
- package/dist/components/graph/graph-maintenance.d.ts +8 -0
- package/dist/components/graph/graph-maintenance.d.ts.map +1 -0
- package/dist/components/graph/graph-maintenance.js +115 -0
- package/dist/components/graph/graph-maintenance.js.map +1 -0
- package/dist/components/graph/graph-page.d.ts.map +1 -1
- package/dist/components/graph/graph-page.js +11 -306
- package/dist/components/graph/graph-page.js.map +1 -1
- package/dist/components/graph/graph-scene.d.ts +8 -0
- package/dist/components/graph/graph-scene.d.ts.map +1 -0
- package/dist/components/graph/graph-scene.js +208 -0
- package/dist/components/graph/graph-scene.js.map +1 -0
- package/dist/components/graph/graph-spinner.d.ts +2 -0
- package/dist/components/graph/graph-spinner.d.ts.map +1 -0
- package/dist/components/graph/graph-spinner.js +6 -0
- package/dist/components/graph/graph-spinner.js.map +1 -0
- package/dist/components/layout/app-shell.d.ts.map +1 -1
- package/dist/components/layout/app-shell.js +2 -1
- package/dist/components/layout/app-shell.js.map +1 -1
- package/dist/components/quick-actions/add-modal.d.ts.map +1 -1
- package/dist/components/quick-actions/add-modal.js +47 -4
- package/dist/components/quick-actions/add-modal.js.map +1 -1
- package/dist/components/quick-actions/search-modal.d.ts.map +1 -1
- package/dist/components/quick-actions/search-modal.js +46 -18
- package/dist/components/quick-actions/search-modal.js.map +1 -1
- package/dist/components/quick-actions/streaming-modal.d.ts.map +1 -1
- package/dist/components/quick-actions/streaming-modal.js +4 -1
- package/dist/components/quick-actions/streaming-modal.js.map +1 -1
- package/dist/components/settings/devices-agents-tab.d.ts +5 -0
- package/dist/components/settings/devices-agents-tab.d.ts.map +1 -0
- package/dist/components/settings/devices-agents-tab.js +96 -0
- package/dist/components/settings/devices-agents-tab.js.map +1 -0
- package/dist/components/settings/one-time-agent-credential.d.ts +3 -0
- package/dist/components/settings/one-time-agent-credential.d.ts.map +1 -0
- package/dist/components/settings/one-time-agent-credential.js +55 -0
- package/dist/components/settings/one-time-agent-credential.js.map +1 -0
- package/dist/components/settings/settings-panel.d.ts.map +1 -1
- package/dist/components/settings/settings-panel.js +16 -3
- package/dist/components/settings/settings-panel.js.map +1 -1
- package/dist/hooks/use-vpn-status.d.ts +6 -1
- package/dist/hooks/use-vpn-status.d.ts.map +1 -1
- package/dist/hooks/use-vpn-status.js +67 -30
- package/dist/hooks/use-vpn-status.js.map +1 -1
- package/dist/hooks/use-websocket.d.ts +3 -2
- package/dist/hooks/use-websocket.d.ts.map +1 -1
- package/dist/hooks/use-websocket.js +65 -254
- package/dist/hooks/use-websocket.js.map +1 -1
- package/dist/hooks/websocket-handlers/activity.d.ts +5 -0
- package/dist/hooks/websocket-handlers/activity.d.ts.map +1 -0
- package/dist/hooks/websocket-handlers/activity.js +10 -0
- package/dist/hooks/websocket-handlers/activity.js.map +1 -0
- package/dist/hooks/websocket-handlers/chat.d.ts +17 -0
- package/dist/hooks/websocket-handlers/chat.d.ts.map +1 -0
- package/dist/hooks/websocket-handlers/chat.js +175 -0
- package/dist/hooks/websocket-handlers/chat.js.map +1 -0
- package/dist/hooks/websocket-handlers/connection.d.ts +6 -0
- package/dist/hooks/websocket-handlers/connection.d.ts.map +1 -0
- package/dist/hooks/websocket-handlers/connection.js +27 -0
- package/dist/hooks/websocket-handlers/connection.js.map +1 -0
- package/dist/hooks/websocket-handlers/index.d.ts +4 -0
- package/dist/hooks/websocket-handlers/index.d.ts.map +1 -0
- package/dist/hooks/websocket-handlers/index.js +19 -0
- package/dist/hooks/websocket-handlers/index.js.map +1 -0
- package/dist/hooks/websocket-handlers/mask.d.ts +4 -0
- package/dist/hooks/websocket-handlers/mask.d.ts.map +1 -0
- package/dist/hooks/websocket-handlers/mask.js +14 -0
- package/dist/hooks/websocket-handlers/mask.js.map +1 -0
- package/dist/hooks/websocket-handlers/provider.d.ts +4 -0
- package/dist/hooks/websocket-handlers/provider.d.ts.map +1 -0
- package/dist/hooks/websocket-handlers/provider.js +31 -0
- package/dist/hooks/websocket-handlers/provider.js.map +1 -0
- package/dist/hooks/websocket-handlers/types.d.ts +24 -0
- package/dist/hooks/websocket-handlers/types.d.ts.map +1 -0
- package/dist/hooks/websocket-handlers/types.js +2 -0
- package/dist/hooks/websocket-handlers/types.js.map +1 -0
- package/dist/lib/api-client.d.ts +32 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +11 -0
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/format-time.d.ts +3 -0
- package/dist/lib/format-time.d.ts.map +1 -0
- package/dist/lib/format-time.js +25 -0
- package/dist/lib/format-time.js.map +1 -0
- package/dist/lib/push-registration.d.ts +7 -0
- package/dist/lib/push-registration.d.ts.map +1 -0
- package/dist/lib/push-registration.js +26 -0
- package/dist/lib/push-registration.js.map +1 -0
- package/dist/stores/activity-store-helpers.d.ts +50 -0
- package/dist/stores/activity-store-helpers.d.ts.map +1 -0
- package/dist/stores/activity-store-helpers.js +143 -0
- package/dist/stores/activity-store-helpers.js.map +1 -0
- package/dist/stores/activity-store-types.d.ts +48 -0
- package/dist/stores/activity-store-types.d.ts.map +1 -0
- package/dist/stores/activity-store-types.js +2 -0
- package/dist/stores/activity-store-types.js.map +1 -0
- package/dist/stores/activity-store.d.ts +2 -78
- package/dist/stores/activity-store.d.ts.map +1 -1
- package/dist/stores/activity-store.js +22 -142
- package/dist/stores/activity-store.js.map +1 -1
- package/dist/stores/connection-store.d.ts +14 -2
- package/dist/stores/connection-store.d.ts.map +1 -1
- package/dist/stores/connection-store.js +17 -0
- package/dist/stores/connection-store.js.map +1 -1
- package/dist/stores/file-store.d.ts.map +1 -1
- package/dist/stores/file-store.js +54 -18
- package/dist/stores/file-store.js.map +1 -1
- package/dist/stores/principal-store.d.ts +16 -0
- package/dist/stores/principal-store.d.ts.map +1 -0
- package/dist/stores/principal-store.js +29 -0
- package/dist/stores/principal-store.js.map +1 -0
- package/dist/stores/ui-store.d.ts +1 -1
- package/dist/stores/ui-store.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
- package/src/components/activity/activity-page.tsx +6 -477
- package/src/components/activity/activity-rollups.tsx +94 -0
- package/src/components/activity/activity-run-detail.tsx +301 -0
- package/src/components/activity/activity-run-list.tsx +97 -0
- package/src/components/chat/brain-markdown-code.tsx +60 -0
- package/src/components/chat/brain-markdown-entities.tsx +116 -0
- package/src/components/chat/brain-markdown-links.tsx +247 -0
- package/src/components/chat/brain-markdown-share.ts +47 -0
- package/src/components/chat/brain-markdown.tsx +27 -535
- package/src/components/chat/composer.tsx +14 -1
- package/src/components/chat/session-drawer.tsx +29 -10
- package/src/components/chat/tool-views.tsx +2 -13
- package/src/components/chat/use-markdown-highlight.ts +63 -0
- package/src/components/connectivity/connection-gate.tsx +128 -14
- package/src/components/connectivity/connection-state.ts +37 -0
- package/src/components/graph/graph-canvas-lazy.tsx +4 -0
- package/src/components/graph/graph-controls.tsx +4 -1
- package/src/components/graph/graph-maintenance.tsx +304 -0
- package/src/components/graph/graph-page.tsx +11 -840
- package/src/components/graph/graph-scene.tsx +548 -0
- package/src/components/graph/graph-spinner.tsx +9 -0
- package/src/components/layout/app-shell.tsx +2 -0
- package/src/components/quick-actions/add-modal.tsx +49 -4
- package/src/components/quick-actions/search-modal.tsx +46 -18
- package/src/components/quick-actions/streaming-modal.tsx +3 -1
- package/src/components/settings/devices-agents-tab.tsx +231 -0
- package/src/components/settings/one-time-agent-credential.tsx +131 -0
- package/src/components/settings/settings-panel.tsx +20 -5
- package/src/hooks/use-vpn-status.ts +71 -31
- package/src/hooks/use-websocket.ts +74 -275
- package/src/hooks/websocket-handlers/activity.ts +13 -0
- package/src/hooks/websocket-handlers/chat.ts +210 -0
- package/src/hooks/websocket-handlers/connection.ts +30 -0
- package/src/hooks/websocket-handlers/index.ts +59 -0
- package/src/hooks/websocket-handlers/mask.ts +17 -0
- package/src/hooks/websocket-handlers/provider.ts +35 -0
- package/src/hooks/websocket-handlers/types.ts +27 -0
- package/src/lib/api-client.ts +40 -1
- package/src/lib/format-time.ts +20 -0
- package/src/lib/push-registration.ts +29 -0
- package/src/stores/activity-store-helpers.ts +164 -0
- package/src/stores/activity-store-types.ts +55 -0
- package/src/stores/activity-store.ts +21 -217
- package/src/stores/connection-store.ts +33 -2
- package/src/stores/file-store.ts +42 -12
- package/src/stores/principal-store.ts +38 -0
- package/src/stores/ui-store.ts +1 -1
|
@@ -1,58 +1,92 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
2
|
-
import { useConnectionStore } from "../stores/connection-store.js";
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { useConnectionStore, } from "../stores/connection-store.js";
|
|
3
3
|
import { getBackendUrl } from "../lib/backend.js";
|
|
4
4
|
const POLL_INTERVAL = 15_000;
|
|
5
5
|
// Tighter cadence while offline so recovery is near-immediate
|
|
6
6
|
const OFFLINE_POLL_INTERVAL = 3_000;
|
|
7
7
|
const TIMEOUT_MS = 5_000;
|
|
8
|
+
let activeRecheck = null;
|
|
9
|
+
async function fetchVpnStatus() {
|
|
10
|
+
const controller = new AbortController();
|
|
11
|
+
const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
12
|
+
try {
|
|
13
|
+
const res = await fetch(getBackendUrl("/api/vpn-check"), {
|
|
14
|
+
signal: controller.signal,
|
|
15
|
+
});
|
|
16
|
+
if (res.ok)
|
|
17
|
+
return "connected";
|
|
18
|
+
if (res.status === 401)
|
|
19
|
+
return "unauthorized";
|
|
20
|
+
if (res.status === 403)
|
|
21
|
+
return "forbidden";
|
|
22
|
+
return "unreachable";
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return "unreachable";
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
clearTimeout(timeout);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Ask the mounted connectivity poller for a fresh reading. The poller remains
|
|
33
|
+
* the only writer of vpnStatus and serializes this with its scheduled checks.
|
|
34
|
+
*/
|
|
35
|
+
export function recheckVpnStatus() {
|
|
36
|
+
activeRecheck?.();
|
|
37
|
+
}
|
|
8
38
|
export function useVpnStatus() {
|
|
9
|
-
const
|
|
39
|
+
const [successfulProbeCount, setSuccessfulProbeCount] = useState(0);
|
|
10
40
|
useEffect(() => {
|
|
11
41
|
let timer;
|
|
12
42
|
let inFlight = false;
|
|
43
|
+
let recheckRequested = false;
|
|
13
44
|
let disposed = false;
|
|
14
45
|
async function check() {
|
|
15
|
-
if (
|
|
46
|
+
if (disposed)
|
|
16
47
|
return;
|
|
48
|
+
if (inFlight) {
|
|
49
|
+
recheckRequested = true;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
17
52
|
inFlight = true;
|
|
18
|
-
|
|
53
|
+
const opensAtStart = useConnectionStore.getState().socketOpens;
|
|
19
54
|
try {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
55
|
+
const status = await fetchVpnStatus();
|
|
56
|
+
// A socket that reached `open` while this probe was in flight is newer
|
|
57
|
+
// reachability evidence than a failure the probe was started for.
|
|
58
|
+
// Counting opens rather than sampling wsStatus twice also catches a
|
|
59
|
+
// drop and a replacement open inside one probe, where both samples
|
|
60
|
+
// read "connected".
|
|
61
|
+
const socketOpenedDuringCheck = useConnectionStore.getState().socketOpens !== opensAtStart;
|
|
62
|
+
if (!disposed && !(socketOpenedDuringCheck && status !== "connected")) {
|
|
63
|
+
useConnectionStore.getState().setVpnStatus(status);
|
|
64
|
+
if (status === "connected") {
|
|
65
|
+
setSuccessfulProbeCount((count) => count + 1);
|
|
66
|
+
}
|
|
29
67
|
}
|
|
30
|
-
else if (res.status === 401) {
|
|
31
|
-
// Auth required (password / proxy mode) but no valid session yet.
|
|
32
|
-
setVpnStatus("unauthorized");
|
|
33
|
-
connected = true; // reachable — poll at the relaxed cadence
|
|
34
|
-
}
|
|
35
|
-
else if (res.status === 403) {
|
|
36
|
-
setVpnStatus("forbidden");
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
setVpnStatus("unreachable");
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
catch {
|
|
43
|
-
setVpnStatus("unreachable");
|
|
44
68
|
}
|
|
45
69
|
finally {
|
|
46
70
|
inFlight = false;
|
|
47
71
|
if (!disposed) {
|
|
48
72
|
clearTimeout(timer);
|
|
49
|
-
|
|
73
|
+
if (recheckRequested) {
|
|
74
|
+
recheckRequested = false;
|
|
75
|
+
void check();
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
const status = useConnectionStore.getState().vpnStatus;
|
|
79
|
+
// Auth required but no valid session is still a reachable server.
|
|
80
|
+
const reachable = status === "connected" || status === "unauthorized";
|
|
81
|
+
timer = setTimeout(check, reachable ? POLL_INTERVAL : OFFLINE_POLL_INTERVAL);
|
|
82
|
+
}
|
|
50
83
|
}
|
|
51
84
|
}
|
|
52
85
|
}
|
|
53
86
|
// Re-check immediately when the network returns or the PWA is foregrounded
|
|
54
87
|
// instead of waiting out the poll interval.
|
|
55
88
|
const recheckNow = () => void check();
|
|
89
|
+
activeRecheck = recheckNow;
|
|
56
90
|
const onVisible = () => {
|
|
57
91
|
if (document.visibilityState === "visible")
|
|
58
92
|
void check();
|
|
@@ -63,9 +97,12 @@ export function useVpnStatus() {
|
|
|
63
97
|
return () => {
|
|
64
98
|
disposed = true;
|
|
65
99
|
clearTimeout(timer);
|
|
100
|
+
if (activeRecheck === recheckNow)
|
|
101
|
+
activeRecheck = null;
|
|
66
102
|
window.removeEventListener("online", recheckNow);
|
|
67
103
|
document.removeEventListener("visibilitychange", onVisible);
|
|
68
104
|
};
|
|
69
|
-
}, [
|
|
105
|
+
}, []);
|
|
106
|
+
return successfulProbeCount;
|
|
70
107
|
}
|
|
71
108
|
//# sourceMappingURL=use-vpn-status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-vpn-status.js","sourceRoot":"","sources":["../../src/hooks/use-vpn-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-vpn-status.js","sourceRoot":"","sources":["../../src/hooks/use-vpn-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ServerMessage, ClientMessage } from "@schlessera/brain-ui-sdk/protocol";
|
|
2
|
-
|
|
3
|
-
export declare function runStateForFrame(msg: ServerMessage): "streaming" | "queued" | "idle";
|
|
2
|
+
export { runStateForFrame } from "./websocket-handlers/chat.js";
|
|
4
3
|
/**
|
|
5
4
|
* Apply every buffered delta, in arrival order, and clear the buffer.
|
|
6
5
|
*
|
|
@@ -23,6 +22,8 @@ export declare function handleServerMessage(msg: ServerMessage): void;
|
|
|
23
22
|
* case and a caller that just staged an upload needs to know.
|
|
24
23
|
*/
|
|
25
24
|
export declare function sendClientMessage(msg: ClientMessage): boolean;
|
|
25
|
+
/** Retry the singleton socket immediately, skipping any remaining backoff. */
|
|
26
|
+
export declare function reconnectWebSocketNow(): void;
|
|
26
27
|
export declare function useWebSocket(): {
|
|
27
28
|
send: (msg: ClientMessage) => void;
|
|
28
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-websocket.d.ts","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-websocket.d.ts","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAEd,MAAM,mCAAmC,CAAC;AAM3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AA8DhE;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAqCD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,QAyFrD;AAwID;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAK7D;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,YAAY;gBAoDK,aAAa;EAK7C"}
|
|
@@ -1,102 +1,14 @@
|
|
|
1
1
|
import { useEffect, useRef, useCallback } from "react";
|
|
2
|
-
import { BrainUiClient } from "@schlessera/brain-ui-sdk/client";
|
|
2
|
+
import { BrainUiClient, } from "@schlessera/brain-ui-sdk/client";
|
|
3
3
|
import { useConnectionStore } from "../stores/connection-store.js";
|
|
4
4
|
import { useChatStore, activeChat } from "../stores/chat-store.js";
|
|
5
|
-
import { useProviderStore } from "../stores/provider-store.js";
|
|
6
|
-
import { useMaskStore } from "../stores/mask-store.js";
|
|
7
5
|
import { useActivityStore, loadSessionActivityHistory } from "../stores/activity-store.js";
|
|
8
6
|
import { getWsUrl } from "../lib/backend.js";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
function convertHistoryMessage(msg) {
|
|
15
|
-
// Fallback for history without chronological parts: synthesize the legacy
|
|
16
|
-
// grouped order (thinking, tools, text).
|
|
17
|
-
const parts = msg.parts ??
|
|
18
|
-
[
|
|
19
|
-
...(msg.thinking ? [{ kind: "thinking", text: msg.thinking }] : []),
|
|
20
|
-
...msg.toolCalls.map((_, i) => ({ kind: "tool", toolIndex: i })),
|
|
21
|
-
...(msg.content ? [{ kind: "text", text: msg.content }] : []),
|
|
22
|
-
];
|
|
23
|
-
const askUserExchanges = reconstructAskUserExchanges(msg.toolCalls);
|
|
24
|
-
return {
|
|
25
|
-
id: historyId(),
|
|
26
|
-
role: msg.role,
|
|
27
|
-
content: msg.content,
|
|
28
|
-
thinking: msg.thinking,
|
|
29
|
-
toolCalls: msg.toolCalls.map((tc) => ({
|
|
30
|
-
id: tc.id,
|
|
31
|
-
name: tc.name,
|
|
32
|
-
input: tc.input,
|
|
33
|
-
inputJson: JSON.stringify(tc.input, null, 2),
|
|
34
|
-
output: tc.output,
|
|
35
|
-
isError: tc.isError,
|
|
36
|
-
status: "complete",
|
|
37
|
-
})),
|
|
38
|
-
parts,
|
|
39
|
-
isStreaming: false,
|
|
40
|
-
timestamp: Date.now(),
|
|
41
|
-
...(askUserExchanges ? { askUserExchanges } : {}),
|
|
42
|
-
...(msg.attachmentCount ? { attachmentCount: msg.attachmentCount } : {}),
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Rebuild ask_user exchanges from a resumed message's tool calls. The ask_user
|
|
47
|
-
* tool's input carries the questions and its output carries the JSON answer
|
|
48
|
-
* payload, so an answered question survives session resume (rendered in its
|
|
49
|
-
* chronological slot, collapsed) instead of vanishing.
|
|
50
|
-
*/
|
|
51
|
-
function isBareAnswersMap(v) {
|
|
52
|
-
return (!!v &&
|
|
53
|
-
typeof v === "object" &&
|
|
54
|
-
!Array.isArray(v) &&
|
|
55
|
-
Object.values(v).every((x) => typeof x === "string"));
|
|
56
|
-
}
|
|
57
|
-
function reconstructAskUserExchanges(toolCalls) {
|
|
58
|
-
const exchanges = [];
|
|
59
|
-
for (const tc of toolCalls) {
|
|
60
|
-
if (!isAskUserTool(tc.name))
|
|
61
|
-
continue;
|
|
62
|
-
const questions = tc.input?.questions ?? [];
|
|
63
|
-
const exchange = { requestId: tc.id, questions };
|
|
64
|
-
if (tc.output) {
|
|
65
|
-
try {
|
|
66
|
-
const payload = JSON.parse(tc.output);
|
|
67
|
-
if (payload && typeof payload === "object" && payload.answers) {
|
|
68
|
-
exchange.answers = payload.answers;
|
|
69
|
-
exchange.annotations = payload.annotations;
|
|
70
|
-
}
|
|
71
|
-
else if (isBareAnswersMap(payload)) {
|
|
72
|
-
// The pi backend persists the bare answers map, without the
|
|
73
|
-
// `{answers}` envelope the Claude tool writes.
|
|
74
|
-
exchange.answers = payload;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
// Non-JSON output means the question was dismissed or errored out.
|
|
79
|
-
exchange.cancelled = true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (tc.isError && !exchange.answers)
|
|
83
|
-
exchange.cancelled = true;
|
|
84
|
-
exchanges.push(exchange);
|
|
85
|
-
}
|
|
86
|
-
return exchanges.length ? exchanges : undefined;
|
|
87
|
-
}
|
|
88
|
-
/** Map a frame to the run-state its session should show in the session list. */
|
|
89
|
-
export function runStateForFrame(msg) {
|
|
90
|
-
if (msg.type === "result" || msg.type === "error")
|
|
91
|
-
return "idle";
|
|
92
|
-
if (msg.type === "status") {
|
|
93
|
-
if (msg.status === "queued")
|
|
94
|
-
return "queued";
|
|
95
|
-
if (msg.status === "idle" || msg.status === "cancelled")
|
|
96
|
-
return "idle";
|
|
97
|
-
}
|
|
98
|
-
return "streaming";
|
|
99
|
-
}
|
|
7
|
+
import { dispatchServerMessage } from "./websocket-handlers/index.js";
|
|
8
|
+
import { runStateForFrame } from "./websocket-handlers/chat.js";
|
|
9
|
+
import { recheckVpnStatus } from "./use-vpn-status.js";
|
|
10
|
+
import { REFUSAL_ATTEMPTS } from "../components/connectivity/connection-state.js";
|
|
11
|
+
export { runStateForFrame } from "./websocket-handlers/chat.js";
|
|
100
12
|
/**
|
|
101
13
|
* Does this frame announce the identity of the conversation THIS client just
|
|
102
14
|
* started?
|
|
@@ -112,10 +24,12 @@ export function runStateForFrame(msg) {
|
|
|
112
24
|
* where the information exists, compatibility where it does not.
|
|
113
25
|
*/
|
|
114
26
|
function isOurDraftAnnouncement(state, msg) {
|
|
115
|
-
|
|
27
|
+
// A terminal result has no draft correlation. Another client's turn may
|
|
28
|
+
// finish before our session_info arrives, so it can never claim our draft.
|
|
29
|
+
if (msg.type !== "session_info")
|
|
116
30
|
return false;
|
|
117
31
|
const pending = state.pendingDraftId;
|
|
118
|
-
if (msg.
|
|
32
|
+
if (msg.draftId)
|
|
119
33
|
return msg.draftId === pending;
|
|
120
34
|
// No echo to compare against.
|
|
121
35
|
return true;
|
|
@@ -197,21 +111,22 @@ export function handleServerMessage(msg) {
|
|
|
197
111
|
flushDeltas();
|
|
198
112
|
const state = useChatStore.getState();
|
|
199
113
|
// Activity stream frames feed their own store and never touch chat state.
|
|
200
|
-
if (msg.type === "server_hello"
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
114
|
+
if (msg.type === "server_hello" ||
|
|
115
|
+
msg.type === "activity_snapshot" ||
|
|
116
|
+
msg.type === "activity_delta") {
|
|
117
|
+
const key = state.activeSessionId;
|
|
118
|
+
dispatchServerMessage(msg, {
|
|
119
|
+
state,
|
|
120
|
+
frameSessionId: undefined,
|
|
121
|
+
key,
|
|
122
|
+
buffer: () => (key === null ? state.draft : state.buffers[key]),
|
|
123
|
+
enqueueDelta,
|
|
124
|
+
ensureActivitySubscription,
|
|
125
|
+
requestBrowserLocation,
|
|
126
|
+
resyncIfNeeded,
|
|
127
|
+
coldResumeIfNeeded,
|
|
128
|
+
markHistoryReplaced,
|
|
129
|
+
});
|
|
215
130
|
return;
|
|
216
131
|
}
|
|
217
132
|
// Parallel-session demux (per-session buffers). Every frame is scoped by
|
|
@@ -261,149 +176,18 @@ export function handleServerMessage(msg) {
|
|
|
261
176
|
const s = useChatStore.getState();
|
|
262
177
|
return key === null ? s.draft : s.buffers[key];
|
|
263
178
|
};
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}
|
|
277
|
-
enqueueDelta(key, "thinking", msg.text);
|
|
278
|
-
break;
|
|
279
|
-
case "tool_use_start":
|
|
280
|
-
// A tool call INSIDE a subagent nests under its Agent entry, rendered
|
|
281
|
-
// from the activity stream — putting it in the flat transcript would
|
|
282
|
-
// interleave fan-out work with the main turn's steps.
|
|
283
|
-
if (msg.parentToolUseId)
|
|
284
|
-
break;
|
|
285
|
-
state.startToolCall(key, msg.toolUseId, msg.toolName);
|
|
286
|
-
break;
|
|
287
|
-
case "tool_input_delta":
|
|
288
|
-
state.appendToolInput(key, msg.partialJson);
|
|
289
|
-
break;
|
|
290
|
-
case "tool_use_complete":
|
|
291
|
-
// Subagent tool calls render nested (activity stream), and the flat
|
|
292
|
-
// store's name-based fallback match must never see them.
|
|
293
|
-
if (msg.parentToolUseId)
|
|
294
|
-
break;
|
|
295
|
-
state.completeToolCall(key, msg.toolUseId, msg.toolName, msg.input);
|
|
296
|
-
break;
|
|
297
|
-
case "tool_approval_request":
|
|
298
|
-
state.requestToolApproval(key, msg.toolUseId, msg.toolName, msg.input, msg.description, msg.kind);
|
|
299
|
-
break;
|
|
300
|
-
case "tool_result": {
|
|
301
|
-
state.setToolResult(key, msg.toolUseId, msg.output, msg.isError);
|
|
302
|
-
// Once the agent receives the ask_user tool result, the exchange is
|
|
303
|
-
// complete — drop any leftover ask_user UI state.
|
|
304
|
-
const chat = buffer();
|
|
305
|
-
if (chat?.askUser?.answers || chat?.askUser?.cancelled) {
|
|
306
|
-
state.clearAskUser(key);
|
|
307
|
-
}
|
|
308
|
-
break;
|
|
309
|
-
}
|
|
310
|
-
case "ask_user_request":
|
|
311
|
-
state.setAskUserRequest(key, msg.requestId, msg.questions);
|
|
312
|
-
break;
|
|
313
|
-
case "location_request":
|
|
314
|
-
requestBrowserLocation(msg);
|
|
315
|
-
break;
|
|
316
|
-
case "mask_request":
|
|
317
|
-
// Opens the editor; the answer travels back from the component, because
|
|
318
|
-
// only the user can say which part of the picture they meant.
|
|
319
|
-
useMaskStore.getState().open({
|
|
320
|
-
requestId: msg.requestId,
|
|
321
|
-
imagePath: msg.imagePath,
|
|
322
|
-
...(msg.instruction ? { instruction: msg.instruction } : {}),
|
|
323
|
-
...(msg.turnId ? { turnId: msg.turnId } : {}),
|
|
324
|
-
});
|
|
325
|
-
break;
|
|
326
|
-
case "result":
|
|
327
|
-
state.finishAssistantMessage(key);
|
|
328
|
-
resyncIfNeeded(msg.sessionId);
|
|
329
|
-
break;
|
|
330
|
-
case "session_info": {
|
|
331
|
-
ensureActivitySubscription(msg.sessionId);
|
|
332
|
-
// Record backend ownership for renderer scoping — for ANY session, since
|
|
333
|
-
// background sessions keep their own transcript buffers. Older servers
|
|
334
|
-
// omit backendId; derive it from the pinned profile when still possible
|
|
335
|
-
// (fails only for since-hidden profiles, which then use the default).
|
|
336
|
-
const ownerBackendId = msg.backendId ??
|
|
337
|
-
useProviderStore
|
|
338
|
-
.getState()
|
|
339
|
-
.available.find((p) => p.id === msg.providerId)?.backendId;
|
|
340
|
-
if (ownerBackendId) {
|
|
341
|
-
useChatStore.getState().setSessionBackend(msg.sessionId, ownerBackendId);
|
|
342
|
-
}
|
|
343
|
-
// bindDraftSession above handled draft adoption; an info frame may still
|
|
344
|
-
// re-pin the provider picker when it concerns the session in view.
|
|
345
|
-
const current = useChatStore.getState();
|
|
346
|
-
if (frameSessionId && frameSessionId === current.activeSessionId) {
|
|
347
|
-
useProviderStore.getState().setPinned(msg.providerId ?? null);
|
|
348
|
-
// Reattachment on a fresh connection: enter streaming mode so deltas
|
|
349
|
-
// append to a live assistant message instead of vanishing.
|
|
350
|
-
const chat = current.buffers[frameSessionId];
|
|
351
|
-
if (chat && !chat.isStreaming && chat.messages.length === 0) {
|
|
352
|
-
current.startAssistantMessage(frameSessionId);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
break;
|
|
356
|
-
}
|
|
357
|
-
case "session_history": {
|
|
358
|
-
const converted = msg.messages.map(convertHistoryMessage);
|
|
359
|
-
if (msg.append) {
|
|
360
|
-
state.appendMessages(key, converted);
|
|
361
|
-
}
|
|
362
|
-
else {
|
|
363
|
-
// First (replacing) chunk = fresh authoritative transcript. Cancel any
|
|
364
|
-
// pending reconnect resync so we don't redundantly re-fetch it, and
|
|
365
|
-
// mark this session cold-resumed so idle-status handling doesn't loop.
|
|
366
|
-
state.setMessages(key, converted);
|
|
367
|
-
if (key !== null && key === resyncSessionId)
|
|
368
|
-
resyncSessionId = null;
|
|
369
|
-
coldResumedSessionId = key;
|
|
370
|
-
}
|
|
371
|
-
break;
|
|
372
|
-
}
|
|
373
|
-
case "status": {
|
|
374
|
-
// Only finish streaming if this buffer actually started it
|
|
375
|
-
if ((msg.status === "idle" || msg.status === "cancelled") &&
|
|
376
|
-
buffer()?.isStreaming) {
|
|
377
|
-
state.finishAssistantMessage(key);
|
|
378
|
-
}
|
|
379
|
-
// A session that finished while we were offline never delivers its
|
|
380
|
-
// `result` — the idle status on reconnect is the cue to resync. Keyed to
|
|
381
|
-
// THIS frame's session: a background session settling must not consume
|
|
382
|
-
// (or trigger) the active session's pending resync.
|
|
383
|
-
if (msg.status === "idle" || msg.status === "cancelled") {
|
|
384
|
-
const current = useChatStore.getState();
|
|
385
|
-
resyncIfNeeded(frameSessionId ?? current.activeSessionId);
|
|
386
|
-
// Cold load: we hold a stored session id but an empty transcript and
|
|
387
|
-
// the server is idle (so it sent no snapshot). Fetch the history.
|
|
388
|
-
// Only the active session's own (or an unscoped legacy) idle counts.
|
|
389
|
-
if (!frameSessionId || frameSessionId === current.activeSessionId) {
|
|
390
|
-
coldResumeIfNeeded(current.activeSessionId, activeChat(current).messages.length);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
break;
|
|
394
|
-
}
|
|
395
|
-
case "error":
|
|
396
|
-
// ALWAYS recorded. Appending to the transcript only works while a
|
|
397
|
-
// message is streaming, and this used to be the whole handler — so an
|
|
398
|
-
// error arriving between turns (a rejected frame, a failed resume) was
|
|
399
|
-
// dropped as silently on the client as it was on the server.
|
|
400
|
-
useConnectionStore.getState().reportError(msg.code, msg.message);
|
|
401
|
-
if (buffer()?.isStreaming) {
|
|
402
|
-
state.appendText(key, `\n\n**Error:** ${msg.message}`);
|
|
403
|
-
state.finishAssistantMessage(key);
|
|
404
|
-
}
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
179
|
+
dispatchServerMessage(msg, {
|
|
180
|
+
state,
|
|
181
|
+
frameSessionId,
|
|
182
|
+
key,
|
|
183
|
+
buffer,
|
|
184
|
+
enqueueDelta,
|
|
185
|
+
ensureActivitySubscription,
|
|
186
|
+
requestBrowserLocation,
|
|
187
|
+
resyncIfNeeded,
|
|
188
|
+
coldResumeIfNeeded,
|
|
189
|
+
markHistoryReplaced,
|
|
190
|
+
});
|
|
407
191
|
}
|
|
408
192
|
/**
|
|
409
193
|
* The server asked the browser for its location (the agent called
|
|
@@ -460,6 +244,14 @@ function requestBrowserLocation(msg) {
|
|
|
460
244
|
// reconnect), so a background session settling first cannot consume it.
|
|
461
245
|
let wasDisconnected = false;
|
|
462
246
|
let resyncSessionId = null;
|
|
247
|
+
function handleSocketClose(close) {
|
|
248
|
+
const connection = useConnectionStore.getState();
|
|
249
|
+
connection.recordWsClose(close.opened, close.code);
|
|
250
|
+
if (!close.opened &&
|
|
251
|
+
useConnectionStore.getState().handshakeFailures >= REFUSAL_ATTEMPTS) {
|
|
252
|
+
recheckVpnStatus();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
463
255
|
function resyncIfNeeded(sessionId) {
|
|
464
256
|
if (!resyncSessionId || !sessionId || sessionId !== resyncSessionId)
|
|
465
257
|
return;
|
|
@@ -474,6 +266,11 @@ function resyncIfNeeded(sessionId) {
|
|
|
474
266
|
// connection — an empty session would otherwise re-trigger on every idle
|
|
475
267
|
// status and loop.
|
|
476
268
|
let coldResumedSessionId = null;
|
|
269
|
+
function markHistoryReplaced(key) {
|
|
270
|
+
if (key !== null && key === resyncSessionId)
|
|
271
|
+
resyncSessionId = null;
|
|
272
|
+
coldResumedSessionId = key;
|
|
273
|
+
}
|
|
477
274
|
function coldResumeIfNeeded(sessionId, messageCount) {
|
|
478
275
|
if (!sessionId || messageCount > 0)
|
|
479
276
|
return;
|
|
@@ -484,6 +281,9 @@ function coldResumeIfNeeded(sessionId, messageCount) {
|
|
|
484
281
|
}
|
|
485
282
|
function handleStatusChange(status) {
|
|
486
283
|
useConnectionStore.getState().setWsStatus(status);
|
|
284
|
+
if (status === "connected") {
|
|
285
|
+
useConnectionStore.getState().noteSocketOpen();
|
|
286
|
+
}
|
|
487
287
|
// A status change can be followed by a history replay that rewrites the
|
|
488
288
|
// buffer, so land whatever is still buffered before anything reads it. In a
|
|
489
289
|
// hidden tab requestAnimationFrame does not run at all, which is exactly the
|
|
@@ -530,18 +330,28 @@ export function sendClientMessage(msg) {
|
|
|
530
330
|
wsClient.send(msg);
|
|
531
331
|
return true;
|
|
532
332
|
}
|
|
333
|
+
/** Retry the singleton socket immediately, skipping any remaining backoff. */
|
|
334
|
+
export function reconnectWebSocketNow() {
|
|
335
|
+
wsClient?.reconnectNow();
|
|
336
|
+
}
|
|
533
337
|
export function useWebSocket() {
|
|
534
338
|
const initialized = useRef(false);
|
|
535
339
|
useEffect(() => {
|
|
536
340
|
if (initialized.current)
|
|
537
341
|
return;
|
|
538
342
|
initialized.current = true;
|
|
343
|
+
let disposed = false;
|
|
344
|
+
useConnectionStore.getState().noteSocketOpen();
|
|
539
345
|
wsClient = new BrainUiClient({
|
|
540
346
|
url: getWsUrl(),
|
|
541
347
|
// One handler with a shared preamble, rather than sixteen copies of the
|
|
542
348
|
// session-buffer demux — see handleServerMessage.
|
|
543
349
|
handlers: { onAny: handleServerMessage },
|
|
544
350
|
onStatusChange: handleStatusChange,
|
|
351
|
+
onClose: (close) => {
|
|
352
|
+
if (!disposed)
|
|
353
|
+
handleSocketClose(close);
|
|
354
|
+
},
|
|
545
355
|
// A frame the SDK refused. Surfaced rather than logged into a console
|
|
546
356
|
// nobody is attached to; the server-side counterpart is the
|
|
547
357
|
// ws.frames.dropped counter.
|
|
@@ -563,6 +373,7 @@ export function useWebSocket() {
|
|
|
563
373
|
window.addEventListener("online", reconnectNow);
|
|
564
374
|
document.addEventListener("visibilitychange", onVisible);
|
|
565
375
|
return () => {
|
|
376
|
+
disposed = true;
|
|
566
377
|
window.removeEventListener("online", reconnectNow);
|
|
567
378
|
document.removeEventListener("visibilitychange", onVisible);
|
|
568
379
|
wsClient?.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-websocket.js","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-websocket.js","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const activityFrameHandlers: {
|
|
2
|
+
activity_snapshot: (msg: import("@schlessera/brain-ui-sdk/protocol").ServerActivitySnapshot) => void;
|
|
3
|
+
activity_delta: (msg: import("@schlessera/brain-ui-sdk/protocol").ServerActivityDelta) => void;
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../src/hooks/websocket-handlers/activity.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB;;;CAOgB,CAAC"}
|