@schlessera/brain-ui-react 0.33.1 → 0.34.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/README.md +5 -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/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 +41 -7
- 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/hooks/use-vpn-status.d.ts +5 -0
- package/dist/hooks/use-vpn-status.d.ts.map +1 -1
- package/dist/hooks/use-vpn-status.js +61 -29
- 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 +61 -252
- 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/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/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/use-markdown-highlight.ts +63 -0
- package/src/components/connectivity/connection-gate.tsx +64 -13
- 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/hooks/use-vpn-status.ts +64 -31
- package/src/hooks/use-websocket.ts +70 -273
- 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/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
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useEffect, useSyncExternalStore } from "react";
|
|
2
|
+
import remarkGfm from "remark-gfm";
|
|
3
|
+
/**
|
|
4
|
+
* Plugin lists, hoisted out of render.
|
|
5
|
+
*
|
|
6
|
+
* react-markdown builds a fresh unified processor on every render and reruns
|
|
7
|
+
* the whole parse — there is no internal memoization to lean on. Fresh array
|
|
8
|
+
* literals in the JSX made that unavoidable; module constants let the memo
|
|
9
|
+
* below actually hold.
|
|
10
|
+
*/
|
|
11
|
+
export const REMARK_PLUGINS = [remarkGfm];
|
|
12
|
+
const NO_REHYPE_PLUGINS = [];
|
|
13
|
+
/**
|
|
14
|
+
* Syntax highlighting arrives after first paint.
|
|
15
|
+
*
|
|
16
|
+
* rehype-highlight pulls in highlight.js, 166 KB of the entry bundle — more
|
|
17
|
+
* than every markdown parser here put together — and nothing on the first paint
|
|
18
|
+
* needs it. It is fetched once, on the first mount of a highlighting renderer;
|
|
19
|
+
* until it lands, code blocks render as plain text and then gain their colours.
|
|
20
|
+
* In practice it is loaded long before the first assistant message arrives.
|
|
21
|
+
*
|
|
22
|
+
* The module-level cache means the fetch happens once per page, not once per
|
|
23
|
+
* message, and useSyncExternalStore is what lets every mounted renderer pick up
|
|
24
|
+
* the plugin the moment it does.
|
|
25
|
+
*/
|
|
26
|
+
let highlightPlugins = null;
|
|
27
|
+
let highlightRequested = false;
|
|
28
|
+
const highlightListeners = new Set();
|
|
29
|
+
function subscribeHighlight(onChange) {
|
|
30
|
+
highlightListeners.add(onChange);
|
|
31
|
+
return () => {
|
|
32
|
+
highlightListeners.delete(onChange);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function readHighlightPlugins() {
|
|
36
|
+
return highlightPlugins ?? NO_REHYPE_PLUGINS;
|
|
37
|
+
}
|
|
38
|
+
export function useRehypePlugins(enabled) {
|
|
39
|
+
const plugins = useSyncExternalStore(subscribeHighlight, readHighlightPlugins, readHighlightPlugins);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (!enabled || highlightRequested)
|
|
42
|
+
return;
|
|
43
|
+
highlightRequested = true;
|
|
44
|
+
import("rehype-highlight")
|
|
45
|
+
.then((mod) => {
|
|
46
|
+
highlightPlugins = [mod.default];
|
|
47
|
+
for (const listener of highlightListeners)
|
|
48
|
+
listener();
|
|
49
|
+
})
|
|
50
|
+
.catch(() => {
|
|
51
|
+
// Soft-fail: code blocks stay readable, just uncoloured.
|
|
52
|
+
});
|
|
53
|
+
}, [enabled]);
|
|
54
|
+
return enabled ? plugins : NO_REHYPE_PLUGINS;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=use-markdown-highlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-markdown-highlight.js","sourceRoot":"","sources":["../../../src/components/chat/use-markdown-highlight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1C,MAAM,iBAAiB,GAAkD,EAAE,CAAC;AAE5E;;;;;;;;;;;;GAYG;AACH,IAAI,gBAAgB,GAAyD,IAAI,CAAC;AAClF,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAc,CAAC;AAEjD,SAAS,kBAAkB,CAAC,QAAoB;IAC9C,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE;QACV,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,gBAAgB,IAAI,iBAAiB,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,OAAO,GAAG,oBAAoB,CAClC,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,IAAI,kBAAkB;YAAE,OAAO;QAC3C,kBAAkB,GAAG,IAAI,CAAC;QAC1B,MAAM,CAAC,kBAAkB,CAAC;aACvB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,gBAAgB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,KAAK,MAAM,QAAQ,IAAI,kBAAkB;gBAAE,QAAQ,EAAE,CAAC;QACxD,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,yDAAyD;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAC/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-gate.d.ts","sourceRoot":"","sources":["../../../src/components/connectivity/connection-gate.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"connection-gate.d.ts","sourceRoot":"","sources":["../../../src/components/connectivity/connection-gate.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AASpE,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAgHnE"}
|
|
@@ -2,14 +2,24 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { Brain, WifiOff, ShieldAlert } from "lucide-react";
|
|
3
3
|
import { motion, AnimatePresence } from "framer-motion";
|
|
4
4
|
import { useConnectionStore } from "../../stores/connection-store.js";
|
|
5
|
-
import { useEffect, useState } from "react";
|
|
5
|
+
import { useEffect, useRef, useState } from "react";
|
|
6
6
|
import { LoginScreen } from "./login-screen.js";
|
|
7
7
|
import { useVpnStatus } from "../../hooks/use-vpn-status.js";
|
|
8
|
+
import { reconnectWebSocketNow } from "../../hooks/use-websocket.js";
|
|
9
|
+
import { deriveConnectionIssue, } from "./connection-state.js";
|
|
8
10
|
export function ConnectionGate({ children }) {
|
|
9
11
|
// The gate owns its connectivity probe — composing <ConnectionGate> is all
|
|
10
12
|
// an embedder needs; the store would otherwise sit on "checking" forever.
|
|
11
13
|
useVpnStatus();
|
|
12
14
|
const vpnStatus = useConnectionStore((s) => s.vpnStatus);
|
|
15
|
+
const handshakeFailures = useConnectionStore((s) => s.handshakeFailures);
|
|
16
|
+
const lastCloseCode = useConnectionStore((s) => s.lastCloseCode);
|
|
17
|
+
const reportError = useConnectionStore((s) => s.reportError);
|
|
18
|
+
const issue = deriveConnectionIssue({
|
|
19
|
+
vpnStatus,
|
|
20
|
+
handshakeFailures,
|
|
21
|
+
lastCloseCode,
|
|
22
|
+
});
|
|
13
23
|
// Once the app has connected, never unmount the UI again — an intermittent
|
|
14
24
|
// drop must not destroy rendered chat state. Show a banner instead.
|
|
15
25
|
const [everConnected, setEverConnected] = useState(false);
|
|
@@ -17,13 +27,30 @@ export function ConnectionGate({ children }) {
|
|
|
17
27
|
if (vpnStatus === "connected")
|
|
18
28
|
setEverConnected(true);
|
|
19
29
|
}, [vpnStatus]);
|
|
30
|
+
const refused = issue === "refused" || issue === "capacity";
|
|
31
|
+
const wasRefused = useRef(false);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!refused) {
|
|
34
|
+
wasRefused.current = false;
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (wasRefused.current)
|
|
38
|
+
return;
|
|
39
|
+
wasRefused.current = true;
|
|
40
|
+
if (issue === "capacity") {
|
|
41
|
+
reportError("WEBSOCKET_CAPACITY", "The server refused the WebSocket because its connection limit was reached (close code 4008).");
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
reportError("WEBSOCKET_REFUSED", `The server is reachable and the session is valid, but it refused the WebSocket connection (close code ${lastCloseCode ?? 1006}).`);
|
|
45
|
+
}
|
|
46
|
+
}, [issue, refused, lastCloseCode, reportError]);
|
|
20
47
|
// Auth required (password mode) and no valid session: show the login screen,
|
|
21
48
|
// even if we were connected before (an expired session must re-prompt).
|
|
22
|
-
if (
|
|
49
|
+
if (issue === "unauthorized") {
|
|
23
50
|
return _jsx(LoginScreen, {});
|
|
24
51
|
}
|
|
25
52
|
if (vpnStatus === "connected" || everConnected) {
|
|
26
|
-
return (_jsxs(_Fragment, { children: [_jsx(OfflineBanner, { show: everConnected && vpnStatus !== "connected",
|
|
53
|
+
return (_jsxs(_Fragment, { children: [_jsx(OfflineBanner, { show: refused || (everConnected && vpnStatus !== "connected"), issue: issue }), children] }));
|
|
27
54
|
}
|
|
28
55
|
return (_jsx("div", { className: "flex h-[100dvh] items-center justify-center bg-background", children: _jsx(AnimatePresence, { mode: "wait", children: _jsxs(motion.div, { initial: { opacity: 0, y: 8 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -8 }, transition: { duration: 0.3 }, className: "flex flex-col items-center gap-6 text-center px-6", children: [_jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-2xl bg-surface", children: _jsx(Brain, { className: "h-8 w-8 text-primary", style: vpnStatus === "checking"
|
|
29
56
|
? { animation: "breathe 3s ease-in-out infinite" }
|
|
@@ -34,9 +61,16 @@ export function ConnectionGate({ children }) {
|
|
|
34
61
|
* stays mounted and interactive; reconnection is automatic (VPN poll + WS
|
|
35
62
|
* backoff both tighten while offline).
|
|
36
63
|
*/
|
|
37
|
-
function OfflineBanner({ show,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
64
|
+
function OfflineBanner({ show, issue, }) {
|
|
65
|
+
const message = issue === "forbidden"
|
|
66
|
+
? "VPN required — reconnect Tailscale"
|
|
67
|
+
: issue === "unreachable"
|
|
68
|
+
? "Connection lost — reconnecting…"
|
|
69
|
+
: issue === "capacity"
|
|
70
|
+
? "Server connection limit reached"
|
|
71
|
+
: issue === "refused"
|
|
72
|
+
? "Server refused the live connection"
|
|
73
|
+
: "Connection lost — reconnecting…";
|
|
74
|
+
return (_jsx(AnimatePresence, { children: show && (_jsx(motion.div, { initial: { opacity: 0, y: -24 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -24 }, transition: { duration: 0.2 }, className: "pointer-events-none fixed inset-x-0 top-0 z-[60] flex justify-center px-4 pt-3", children: _jsxs("div", { role: "status", className: "pointer-events-auto flex items-center gap-2 rounded-full border border-amber-500/30 bg-amber-950/90 px-4 py-1.5 text-xs text-amber-200 shadow-lg backdrop-blur", children: [issue === "forbidden" ? (_jsx(ShieldAlert, { className: "h-3.5 w-3.5" })) : (_jsx(WifiOff, { className: "h-3.5 w-3.5" })), _jsx("span", { children: message }), (issue === "refused" || issue === "capacity") && (_jsx("button", { type: "button", onClick: reconnectWebSocketNow, className: "font-medium underline underline-offset-2 hover:text-amber-100", children: "Retry now" })), _jsx("span", { className: "inline-block h-1.5 w-1.5 rounded-full bg-amber-400", style: { animation: "breathe 2s ease-in-out infinite" } })] }) })) }));
|
|
41
75
|
}
|
|
42
76
|
//# sourceMappingURL=connection-gate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-gate.js","sourceRoot":"","sources":["../../../src/components/connectivity/connection-gate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-gate.js","sourceRoot":"","sources":["../../../src/components/connectivity/connection-gate.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { VpnStatus } from "../../stores/connection-store.js";
|
|
2
|
+
export declare const REFUSAL_ATTEMPTS = 3;
|
|
3
|
+
/** ws/connection.ts closes with this when ClientSet.add refuses the socket. */
|
|
4
|
+
export declare const CONNECTION_LIMIT_CLOSE_CODE = 4008;
|
|
5
|
+
export type ConnectionIssue = "unauthorized" | "forbidden" | "unreachable" | "refused" | "capacity" | null;
|
|
6
|
+
/** Derive current connectivity copy from live facts; no conclusion is cached. */
|
|
7
|
+
export declare function deriveConnectionIssue({ vpnStatus, handshakeFailures, lastCloseCode, }: {
|
|
8
|
+
vpnStatus: VpnStatus;
|
|
9
|
+
handshakeFailures: number;
|
|
10
|
+
lastCloseCode: number | null;
|
|
11
|
+
}): ConnectionIssue;
|
|
12
|
+
//# sourceMappingURL=connection-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-state.d.ts","sourceRoot":"","sources":["../../../src/components/connectivity/connection-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAIlE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,WAAW,GACX,aAAa,GACb,SAAS,GACT,UAAU,GACV,IAAI,CAAC;AAET,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,iBAAiB,EACjB,aAAa,GACd,EAAE;IACD,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,eAAe,CAUlB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Three failed handshakes classify after the existing 1s + 2s backoffs: soon
|
|
2
|
+
// enough to diagnose a refusal, without flashing on one ordinary reconnect.
|
|
3
|
+
export const REFUSAL_ATTEMPTS = 3;
|
|
4
|
+
/** ws/connection.ts closes with this when ClientSet.add refuses the socket. */
|
|
5
|
+
export const CONNECTION_LIMIT_CLOSE_CODE = 4008;
|
|
6
|
+
/** Derive current connectivity copy from live facts; no conclusion is cached. */
|
|
7
|
+
export function deriveConnectionIssue({ vpnStatus, handshakeFailures, lastCloseCode, }) {
|
|
8
|
+
if (vpnStatus === "unauthorized")
|
|
9
|
+
return "unauthorized";
|
|
10
|
+
if (vpnStatus === "forbidden")
|
|
11
|
+
return "forbidden";
|
|
12
|
+
if (vpnStatus === "unreachable")
|
|
13
|
+
return "unreachable";
|
|
14
|
+
if (vpnStatus !== "connected")
|
|
15
|
+
return null;
|
|
16
|
+
// The cap refusal is explicit, so it does not wait for the inferred
|
|
17
|
+
// threshold: the server accepts the upgrade and closes with 4008, which
|
|
18
|
+
// resets the never-opened counter that "refused" is inferred from.
|
|
19
|
+
if (lastCloseCode === CONNECTION_LIMIT_CLOSE_CODE)
|
|
20
|
+
return "capacity";
|
|
21
|
+
return handshakeFailures >= REFUSAL_ATTEMPTS ? "refused" : null;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=connection-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-state.js","sourceRoot":"","sources":["../../../src/components/connectivity/connection-state.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAUhD,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CAAC,EACpC,SAAS,EACT,iBAAiB,EACjB,aAAa,GAKd;IACC,IAAI,SAAS,KAAK,cAAc;QAAE,OAAO,cAAc,CAAC;IACxD,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAClD,IAAI,SAAS,KAAK,aAAa;QAAE,OAAO,aAAa,CAAC;IACtD,IAAI,SAAS,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC3C,oEAAoE;IACpE,wEAAwE;IACxE,mEAAmE;IACnE,IAAI,aAAa,KAAK,2BAA2B;QAAE,OAAO,UAAU,CAAC;IACrE,OAAO,iBAAiB,IAAI,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-canvas-lazy.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph-canvas-lazy.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,iFAA0C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-canvas-lazy.js","sourceRoot":"","sources":["../../../src/components/graph/graph-canvas-lazy.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,kFAAkF;AAClF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC"}
|
|
@@ -116,7 +116,10 @@ function NotePicker({ value, placeholder = "Search notes…", onPick, }) {
|
|
|
116
116
|
setLoading(false);
|
|
117
117
|
}
|
|
118
118
|
}, 250);
|
|
119
|
-
return () =>
|
|
119
|
+
return () => {
|
|
120
|
+
clearTimeout(t);
|
|
121
|
+
controllerRef.current?.abort();
|
|
122
|
+
};
|
|
120
123
|
}, [editing, trimmed]);
|
|
121
124
|
return (_jsxs("div", { className: "relative", children: [_jsxs("label", { className: "flex items-center gap-2 rounded-lg border border-border bg-surface-raised px-2.5 py-2 focus-within:border-primary/40", children: [_jsx(Search, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("input", { value: editing ? query : (value ?? ""), onFocus: () => {
|
|
122
125
|
setEditing(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-controls.js","sourceRoot":"","sources":["../../../src/components/graph/graph-controls.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph-controls.js","sourceRoot":"","sources":["../../../src/components/graph/graph-controls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maintenance: findings list ⇄ canvas, linked both ways. The canvas is a
|
|
3
|
+
* type-grouped radial scene (one ring per finding kind — these nodes have no
|
|
4
|
+
* edges between them by definition); broken links are list-only, since their
|
|
5
|
+
* defining feature is a target that does not exist.
|
|
6
|
+
*/
|
|
7
|
+
export declare function MaintenanceBody(): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=graph-maintenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-maintenance.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph-maintenance.tsx"],"names":[],"mappings":"AAkCA;;;;;GAKG;AACH,wBAAgB,eAAe,gCA6J9B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense, useEffect, useMemo, useRef } from "react";
|
|
3
|
+
import { useGraphStore } from "../../stores/graph-store.js";
|
|
4
|
+
import { useUIStore } from "../../stores/ui-store.js";
|
|
5
|
+
import { useFileStore } from "../../stores/file-store.js";
|
|
6
|
+
import { GraphControls } from "./graph-controls.js";
|
|
7
|
+
import { NodePopover } from "./node-popover.js";
|
|
8
|
+
import { GraphEmptyState } from "./graph-empty-state.js";
|
|
9
|
+
import { GraphCanvas } from "./graph-canvas-lazy.js";
|
|
10
|
+
import { CenteredSpinner } from "./graph-spinner.js";
|
|
11
|
+
import { matchScene } from "./lib/graph-helpers.js";
|
|
12
|
+
import { cn } from "../../lib/utils.js";
|
|
13
|
+
/** Finding-type colors: dataviz status palette (warning/serious/critical) plus
|
|
14
|
+
* the light end of the distance ramp for "stale" — checked against #0c0e12. */
|
|
15
|
+
const FINDING_COLORS = {
|
|
16
|
+
orphan: "#fab219",
|
|
17
|
+
unreachable: "#ec835a",
|
|
18
|
+
broken: "#d03b3b",
|
|
19
|
+
stale: "#86b6ef",
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Maintenance: findings list ⇄ canvas, linked both ways. The canvas is a
|
|
23
|
+
* type-grouped radial scene (one ring per finding kind — these nodes have no
|
|
24
|
+
* edges between them by definition); broken links are list-only, since their
|
|
25
|
+
* defining feature is a target that does not exist.
|
|
26
|
+
*/
|
|
27
|
+
export function MaintenanceBody() {
|
|
28
|
+
const findings = useGraphStore((s) => s.findings);
|
|
29
|
+
const dataState = useGraphStore((s) => s.dataState);
|
|
30
|
+
const error = useGraphStore((s) => s.error);
|
|
31
|
+
const filters = useGraphStore((s) => s.maintenanceFilters);
|
|
32
|
+
const selectedId = useGraphStore((s) => s.selectedId);
|
|
33
|
+
const select = useGraphStore((s) => s.select);
|
|
34
|
+
const hoveredId = useGraphStore((s) => s.hoveredId);
|
|
35
|
+
const hover = useGraphStore((s) => s.hover);
|
|
36
|
+
const sceneQuery = useGraphStore((s) => s.sceneQuery);
|
|
37
|
+
const openFile = useFileStore((s) => s.openFile);
|
|
38
|
+
const setFilePanelOpen = useUIStore((s) => s.setFilePanelOpen);
|
|
39
|
+
const listRef = useRef(null);
|
|
40
|
+
// One node per document, first matching section wins (a stale orphan is an
|
|
41
|
+
// orphan); ring index encodes the finding kind.
|
|
42
|
+
const scene = useMemo(() => {
|
|
43
|
+
if (!findings)
|
|
44
|
+
return null;
|
|
45
|
+
const seen = new Set();
|
|
46
|
+
const nodes = [];
|
|
47
|
+
const push = (list, finding, ring) => {
|
|
48
|
+
for (const node of list) {
|
|
49
|
+
if (seen.has(node.id))
|
|
50
|
+
continue;
|
|
51
|
+
seen.add(node.id);
|
|
52
|
+
nodes.push({ ...node, finding, distance: ring });
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
if (filters.orphans)
|
|
56
|
+
push(findings.orphans, "orphan", 1);
|
|
57
|
+
if (filters.unreachable)
|
|
58
|
+
push(findings.unreachable, "unreachable", 2);
|
|
59
|
+
if (filters.stale)
|
|
60
|
+
push(findings.stale, "stale", 3);
|
|
61
|
+
const subgraph = { nodes, edges: [], truncated: false };
|
|
62
|
+
return { subgraph, nodes };
|
|
63
|
+
}, [findings, filters]);
|
|
64
|
+
// Canvas → list: keep the selected row in view.
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (selectedId === null)
|
|
67
|
+
return;
|
|
68
|
+
listRef.current
|
|
69
|
+
?.querySelector(`[data-node-id="${selectedId}"]`)
|
|
70
|
+
?.scrollIntoView({ block: "nearest" });
|
|
71
|
+
}, [selectedId]);
|
|
72
|
+
if (dataState === "error") {
|
|
73
|
+
return (_jsx(GraphEmptyState, { icon: "warn", title: "Could not load findings", children: error?.message ?? "Request failed" }));
|
|
74
|
+
}
|
|
75
|
+
if (dataState !== "done" || !findings || !scene)
|
|
76
|
+
return _jsx(CenteredSpinner, {});
|
|
77
|
+
const matchIds = matchScene(scene.nodes, sceneQuery);
|
|
78
|
+
const selectedNode = selectedId === null
|
|
79
|
+
? null
|
|
80
|
+
: (scene.nodes.find((n) => n.id === selectedId) ?? null);
|
|
81
|
+
function openNote(path) {
|
|
82
|
+
setFilePanelOpen(true);
|
|
83
|
+
void openFile(path);
|
|
84
|
+
}
|
|
85
|
+
const totalShown = scene.nodes.length + (filters.broken ? findings.brokenLinks.length : 0);
|
|
86
|
+
return (_jsxs("div", { className: "flex h-full flex-col md:flex-row", children: [_jsxs("div", { className: "relative h-56 shrink-0 border-b border-border md:h-auto md:flex-1 md:border-b-0 md:border-r", children: [scene.nodes.length === 0 ? (_jsx("div", { className: "flex h-full items-center justify-center px-6 text-center text-xs text-muted-foreground", children: totalShown === 0
|
|
87
|
+
? "Nothing to show — this brain is clean."
|
|
88
|
+
: "Only broken links match — they live in the list." })) : (_jsx(Suspense, { fallback: _jsx(CenteredSpinner, {}), children: _jsx(GraphCanvas, { data: scene.subgraph, layout: "radial", selectedId: selectedId, hoveredId: hoveredId, matchIds: matchIds, nodeColor: (node) => FINDING_COLORS[node.finding ?? "stale"], onSelect: select, onHover: hover }) })), _jsx(GraphControls, {}), selectedNode && _jsx(NodePopover, { node: selectedNode })] }), _jsx("div", { ref: listRef, className: "flex-1 overflow-y-auto px-4 py-4 md:w-96 md:flex-none md:px-5", children: _jsxs("div", { className: "flex flex-col gap-5 pb-16", children: [filters.orphans && (_jsx(FindingSection, { title: `Orphans (${findings.orphans.length})`, hint: "No links in or out.", color: FINDING_COLORS.orphan, nodes: findings.orphans, selectedId: selectedId, onSelect: select, onOpen: openNote })), filters.unreachable && (_jsx(FindingSection, { title: `Unreachable from root (${findings.unreachable.length})`, hint: "No link path from the graph root reaches these.", color: FINDING_COLORS.unreachable, nodes: findings.unreachable, selectedId: selectedId, onSelect: select, onOpen: openNote })), filters.broken && (_jsxs("section", { children: [_jsx(SectionHeading, { title: `Broken links (${findings.brokenLinks.length})`, hint: "Wiki links whose target resolves to nothing.", color: FINDING_COLORS.broken }), _jsx(FindingRows, { empty: findings.brokenLinks.length === 0, rows: findings.brokenLinks.map((b, i) => ({
|
|
89
|
+
key: `b${i}`,
|
|
90
|
+
title: `[[${b.target}]]`,
|
|
91
|
+
sub: `in ${b.sourcePath}`,
|
|
92
|
+
onClick: () => openNote(b.sourcePath),
|
|
93
|
+
})) })] })), filters.stale && (_jsx(FindingSection, { title: `Stale notes (${findings.stale.length})`, hint: `Untouched for over ${findings.staleDays} days.`, color: FINDING_COLORS.stale, nodes: findings.stale, subOf: (n) => `${n.updated} · ${n.path}`, selectedId: selectedId, onSelect: select, onOpen: openNote }))] }) })] }));
|
|
94
|
+
}
|
|
95
|
+
function SectionHeading({ title, hint, color, }) {
|
|
96
|
+
return (_jsxs(_Fragment, { children: [_jsxs("h2", { className: "flex items-center gap-2 text-sm font-medium text-foreground", children: [_jsx("span", { className: "h-2.5 w-2.5 rounded-full", style: { backgroundColor: color } }), title] }), _jsx("p", { className: "mb-2 text-[11px] text-muted-foreground", children: hint })] }));
|
|
97
|
+
}
|
|
98
|
+
function FindingSection({ title, hint, color, nodes, subOf, selectedId, onSelect, onOpen, }) {
|
|
99
|
+
return (_jsxs("section", { children: [_jsx(SectionHeading, { title: title, hint: hint, color: color }), _jsx(FindingRows, { empty: nodes.length === 0, rows: nodes.map((node) => ({
|
|
100
|
+
key: String(node.id),
|
|
101
|
+
nodeId: node.id,
|
|
102
|
+
title: node.title || node.path,
|
|
103
|
+
sub: subOf ? subOf(node) : node.path,
|
|
104
|
+
active: node.id === selectedId,
|
|
105
|
+
onClick: () => onSelect(node.id),
|
|
106
|
+
onDoubleClick: () => onOpen(node.path),
|
|
107
|
+
})) })] }));
|
|
108
|
+
}
|
|
109
|
+
function FindingRows({ rows, empty, }) {
|
|
110
|
+
if (empty) {
|
|
111
|
+
return (_jsx("p", { className: "rounded-lg border border-border-subtle bg-surface px-3 py-2 text-xs text-muted-foreground", children: "Nothing found \u2014 clean." }));
|
|
112
|
+
}
|
|
113
|
+
return (_jsx("div", { className: "divide-y divide-border/40 overflow-hidden rounded-lg border border-border bg-surface", children: rows.map((row) => (_jsxs("button", { "data-node-id": row.nodeId, onClick: row.onClick, onDoubleClick: row.onDoubleClick, className: cn("flex min-h-11 w-full flex-col justify-center px-3 py-2 text-left transition-colors", row.active ? "bg-surface-raised" : "hover:bg-surface-raised/60"), children: [_jsx("span", { className: "truncate text-xs text-foreground", children: row.title }), _jsx("span", { className: "truncate font-mono text-[10px] text-muted-foreground/60", children: row.sub })] }, row.key))) }));
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=graph-maintenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-maintenance.js","sourceRoot":"","sources":["../../../src/components/graph/graph-maintenance.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-page.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph-page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-page.d.ts","sourceRoot":"","sources":["../../../src/components/graph/graph-page.tsx"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,wBAAgB,SAAS,gCA2FxB"}
|