@rubytech/create-maxy-code 0.1.364 → 0.1.365
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/package.json +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +12 -0
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.d.ts +23 -0
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.js +104 -0
- package/payload/platform/services/claude-session-manager/dist/session-cap-audit.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/session-memory-cap.d.ts +7 -0
- package/payload/platform/services/claude-session-manager/dist/session-memory-cap.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/session-memory-cap.js +22 -0
- package/payload/platform/services/claude-session-manager/dist/session-memory-cap.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.js +3 -0
- package/payload/platform/services/claude-session-manager/dist/systemd-scope.js.map +1 -1
- package/payload/server/public/assets/{graph-CYMIe4B_.js → graph-DfUM66RH.js} +1 -1
- package/payload/server/public/graph.html +1 -1
- package/payload/server/server.js +29 -15
package/package.json
CHANGED
|
@@ -3,7 +3,9 @@ import { serve } from '@hono/node-server';
|
|
|
3
3
|
import { spawn as ptySpawn } from 'node-pty';
|
|
4
4
|
import { spawnSync } from 'node:child_process';
|
|
5
5
|
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
6
|
+
import { totalmem } from 'node:os';
|
|
6
7
|
import { basename, dirname, join } from 'node:path';
|
|
8
|
+
import { resolvePerSessionMemoryMaxBytes, isDaemonUnitToken } from './session-memory-cap.js';
|
|
7
9
|
import { filterBrandForeignAgentDirs, readBrandShipsPremiumBundles, } from './brand-foreign-filter.js';
|
|
8
10
|
import { loadConfig, censusAccountsRoot, formatRegistryCensus } from './config.js';
|
|
9
11
|
import { buildSystemdRunArgv, defaultProcessSignals, defaultSystemctlRunner, listSurvivingScopes, reapOrphanNonPtyScopes, scopeUnitName, } from './systemd-scope.js';
|
|
@@ -22,6 +24,7 @@ import { createPermissionModeTail } from './permission-mode-tail.js';
|
|
|
22
24
|
import { createReaper } from './reaper.js';
|
|
23
25
|
import { createReachabilityAudit } from './public-agent-reachability.js';
|
|
24
26
|
import { createPtyCensus } from './pty-census.js';
|
|
27
|
+
import { createSessionCapAudit } from './session-cap-audit.js';
|
|
25
28
|
import { projectsDirForCwd, sessionsDir, jsonlPathForSessionId } from './jsonl-path.js';
|
|
26
29
|
import { runSystemPromptSelfTest, runIdentityDriftAssertion, runIdentityForbiddenTokenCheck } from './system-prompt.js';
|
|
27
30
|
import { assertSpecialistDrift } from './specialist-drift.js';
|
|
@@ -105,6 +108,9 @@ function spawnPtyAdapter(cmd, args, env, cwd, unitToken) {
|
|
|
105
108
|
claudeArgs: args,
|
|
106
109
|
env: cleanEnv,
|
|
107
110
|
cwd,
|
|
111
|
+
memoryMaxBytes: isDaemonUnitToken(unitToken)
|
|
112
|
+
? undefined
|
|
113
|
+
: resolvePerSessionMemoryMaxBytes(totalmem()),
|
|
108
114
|
});
|
|
109
115
|
const child = ptySpawn(wrapped.cmd, wrapped.args, {
|
|
110
116
|
name: 'xterm-256color',
|
|
@@ -500,6 +506,11 @@ async function main() {
|
|
|
500
506
|
// hung on a spawn. The capacity field is sourced from RC_DAEMON_CAPACITY.
|
|
501
507
|
const ptyCensus = createPtyCensus({ intervalMs: 60_000, logger: log });
|
|
502
508
|
ptyCensus.start();
|
|
509
|
+
// Task 1222 — standing legibility for the per-session MemoryMax: read
|
|
510
|
+
// each live scope's cgroup memory.events and log a [session-cap] line
|
|
511
|
+
// when the kernel cap-kills inside a scope (otherwise a silent event).
|
|
512
|
+
const sessionCapAudit = createSessionCapAudit({ intervalMs: 60_000, logger: log });
|
|
513
|
+
sessionCapAudit.start();
|
|
503
514
|
// Task 183 — recorder JSONL tail. Posts [recorder-session-init] and
|
|
504
515
|
// [recorder-turn] lines for every database-operator specialist spawn,
|
|
505
516
|
// routed through the platform UI's /api/admin/log-ingest loopback
|
|
@@ -746,6 +757,7 @@ async function main() {
|
|
|
746
757
|
reaper.stop();
|
|
747
758
|
reachabilityAudit.stop();
|
|
748
759
|
ptyCensus.stop();
|
|
760
|
+
sessionCapAudit.stop();
|
|
749
761
|
stuckTurnWatch.stop();
|
|
750
762
|
watcher.close();
|
|
751
763
|
clearInterval(postArchiveSweepTimer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type SystemctlRunner } from './systemd-scope.js';
|
|
2
|
+
export type Logger = (line: string) => void;
|
|
3
|
+
/** cgroup v2 `memory.events` is `key value` lines; return the `oom_kill`
|
|
4
|
+
* count (cumulative cgroup-OOM kills in this scope), or 0 if absent. */
|
|
5
|
+
export declare function parseMemoryEventsOomKill(blob: string): number;
|
|
6
|
+
export declare function formatCapKill(f: {
|
|
7
|
+
sessionId: string;
|
|
8
|
+
scope: string;
|
|
9
|
+
oomKills: number;
|
|
10
|
+
memCurrentMb: number;
|
|
11
|
+
}): string;
|
|
12
|
+
export interface SessionCapAuditDeps {
|
|
13
|
+
intervalMs: number;
|
|
14
|
+
logger: Logger;
|
|
15
|
+
runSystemctl?: SystemctlRunner;
|
|
16
|
+
}
|
|
17
|
+
export interface SessionCapAudit {
|
|
18
|
+
start(): void;
|
|
19
|
+
stop(): void;
|
|
20
|
+
tickOnce(): void;
|
|
21
|
+
}
|
|
22
|
+
export declare function createSessionCapAudit(deps: SessionCapAuditDeps): SessionCapAudit;
|
|
23
|
+
//# sourceMappingURL=session-cap-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cap-audit.d.ts","sourceRoot":"","sources":["../src/session-cap-audit.ts"],"names":[],"mappings":"AAYA,OAAO,EAAyC,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGhG,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAE3C;yEACyE;AACzE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB,GAAG,MAAM,CAET;AAyBD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,eAAe,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;IACZ,QAAQ,IAAI,IAAI,CAAA;CACjB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,CAgDhF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// Task 1222 — the per-session MemoryMax (session-memory-cap.ts) makes the
|
|
2
|
+
// kernel cgroup-OOM a runaway inside its own scope. That kill is otherwise
|
|
3
|
+
// silent: it emits a kernel event, nothing in the maxy-code log. This
|
|
4
|
+
// standing audit reads each live session scope's cgroup `memory.events`
|
|
5
|
+
// oom_kill counter and emits one reason-stamped `[session-cap]` line when
|
|
6
|
+
// it increments, so an auto cap-kill is as legible as an operator stop.
|
|
7
|
+
//
|
|
8
|
+
// Shape mirrors pty-census.ts: a PURE parser + a PURE formatter (unit
|
|
9
|
+
// tested) and an impure factory whose setInterval is unref'd.
|
|
10
|
+
import { readFileSync } from 'node:fs';
|
|
11
|
+
import { forEachLivePty } from './pty-spawner.js';
|
|
12
|
+
import { scopeUnitName, defaultSystemctlRunner } from './systemd-scope.js';
|
|
13
|
+
const TAG = '[session-cap]';
|
|
14
|
+
/** cgroup v2 `memory.events` is `key value` lines; return the `oom_kill`
|
|
15
|
+
* count (cumulative cgroup-OOM kills in this scope), or 0 if absent. */
|
|
16
|
+
export function parseMemoryEventsOomKill(blob) {
|
|
17
|
+
const m = blob.match(/^oom_kill\s+(\d+)$/m);
|
|
18
|
+
return m ? Number(m[1]) : 0;
|
|
19
|
+
}
|
|
20
|
+
export function formatCapKill(f) {
|
|
21
|
+
return `${TAG} op=cap-killed sessionId=${f.sessionId} scope=${f.scope} oomKills=${f.oomKills} memCurrentMb=${f.memCurrentMb}`;
|
|
22
|
+
}
|
|
23
|
+
/** `systemctl --user show <unit> -p ControlGroup --value` -> cgroup path
|
|
24
|
+
* (e.g. /user.slice/.../claude-ptys.slice/<unit>). Empty on failure. */
|
|
25
|
+
function readControlGroup(run, unit) {
|
|
26
|
+
const r = run(['--user', 'show', unit, '-p', 'ControlGroup', '--value']);
|
|
27
|
+
return r.exitCode === 0 ? r.stdout.trim() : '';
|
|
28
|
+
}
|
|
29
|
+
function readCgroupFileNumber(cgroup, file) {
|
|
30
|
+
try {
|
|
31
|
+
return Number(readFileSync(`/sys/fs/cgroup${cgroup}/${file}`, 'utf8').trim()) || 0;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function readMemoryEventsOomKill(cgroup) {
|
|
38
|
+
try {
|
|
39
|
+
return parseMemoryEventsOomKill(readFileSync(`/sys/fs/cgroup${cgroup}/memory.events`, 'utf8'));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export function createSessionCapAudit(deps) {
|
|
46
|
+
const run = deps.runSystemctl ?? defaultSystemctlRunner;
|
|
47
|
+
// Per-scope prior oom_kill count; a rising value means a fresh cap-kill.
|
|
48
|
+
const prior = new Map();
|
|
49
|
+
let timer = null;
|
|
50
|
+
function tickOnce() {
|
|
51
|
+
const seen = new Set();
|
|
52
|
+
forEachLivePty((t) => {
|
|
53
|
+
// Per-scope guard: a single malformed token (scopeUnitName throws) or
|
|
54
|
+
// a transient read error must not abort the sweep and blind every
|
|
55
|
+
// other live scope this tick.
|
|
56
|
+
try {
|
|
57
|
+
const unit = scopeUnitName(t.scopeUnitToken);
|
|
58
|
+
seen.add(unit);
|
|
59
|
+
const cgroup = readControlGroup(run, unit);
|
|
60
|
+
if (!cgroup)
|
|
61
|
+
return;
|
|
62
|
+
const now = readMemoryEventsOomKill(cgroup);
|
|
63
|
+
const was = prior.get(unit) ?? 0;
|
|
64
|
+
prior.set(unit, now);
|
|
65
|
+
if (now > was) {
|
|
66
|
+
const memCurrentMb = Math.round(readCgroupFileNumber(cgroup, 'memory.current') / 1024 ** 2);
|
|
67
|
+
deps.logger(formatCapKill({ sessionId: t.sessionId, scope: unit, oomKills: now, memCurrentMb }));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
deps.logger(`${TAG} op=scope-read-failed message=${err instanceof Error ? err.message : String(err)}`);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// Drop state for scopes that are no longer live so the map can't grow.
|
|
75
|
+
for (const unit of prior.keys())
|
|
76
|
+
if (!seen.has(unit))
|
|
77
|
+
prior.delete(unit);
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
tickOnce,
|
|
81
|
+
start() {
|
|
82
|
+
if (timer)
|
|
83
|
+
return;
|
|
84
|
+
timer = setInterval(() => {
|
|
85
|
+
try {
|
|
86
|
+
tickOnce();
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
deps.logger(`${TAG} op=audit-tick-failed message=${err instanceof Error ? err.message : String(err)}`);
|
|
90
|
+
}
|
|
91
|
+
}, deps.intervalMs);
|
|
92
|
+
if (typeof timer.unref === 'function')
|
|
93
|
+
timer.unref();
|
|
94
|
+
deps.logger(`${TAG} op=audit-started intervalMs=${deps.intervalMs}`);
|
|
95
|
+
},
|
|
96
|
+
stop() {
|
|
97
|
+
if (timer) {
|
|
98
|
+
clearInterval(timer);
|
|
99
|
+
timer = null;
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=session-cap-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-cap-audit.js","sourceRoot":"","sources":["../src/session-cap-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Hard MemoryMax (bytes) for one session scope, RAM-scaled: the larger
|
|
2
|
+
* of the 2.5 GiB floor and 30% of host RAM. 8GB → 2.5 GiB; 16GB → ~4.8 GiB. */
|
|
3
|
+
export declare function resolvePerSessionMemoryMaxBytes(totalMemBytes: number): number;
|
|
4
|
+
/** The rc-daemon supervisor runs in its own `rc-daemon-*` scope and must
|
|
5
|
+
* never be capped — it is the spawner, not a user session. */
|
|
6
|
+
export declare function isDaemonUnitToken(unitToken: string): boolean;
|
|
7
|
+
//# sourceMappingURL=session-memory-cap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-memory-cap.d.ts","sourceRoot":"","sources":["../src/session-memory-cap.ts"],"names":[],"mappings":"AAaA;gFACgF;AAChF,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;+DAC+D;AAC/D,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE5D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Task 1222 — a hard per-session MemoryMax bounds one runaway agent
|
|
2
|
+
// session to its own systemd scope. 1176's slice MemoryHigh is a SOFT
|
|
3
|
+
// cohort ceiling (it relocates pressure, never kills); this is a HARD
|
|
4
|
+
// per-scope ceiling the kernel enforces with a cgroup-OOM inside the
|
|
5
|
+
// offending session's own scope. The runaway tool child (the 4.3 GB
|
|
6
|
+
// ugrep) is the scope's largest process, so it is what the kernel kills,
|
|
7
|
+
// sparing the brand server, Neo4j, edge, and every other session.
|
|
8
|
+
/** Floor for a single session's hard cap. A normal session fleet (claude
|
|
9
|
+
* + ~13 MCP children) is ~1.2 GB, so 2.5 GiB leaves ~2x headroom for
|
|
10
|
+
* legitimate heavy work while still killing a multi-GB balloon. */
|
|
11
|
+
const PER_SESSION_FLOOR_BYTES = Math.round(2.5 * 1024 ** 3); // 2684354560
|
|
12
|
+
/** Hard MemoryMax (bytes) for one session scope, RAM-scaled: the larger
|
|
13
|
+
* of the 2.5 GiB floor and 30% of host RAM. 8GB → 2.5 GiB; 16GB → ~4.8 GiB. */
|
|
14
|
+
export function resolvePerSessionMemoryMaxBytes(totalMemBytes) {
|
|
15
|
+
return Math.max(PER_SESSION_FLOOR_BYTES, Math.round(totalMemBytes * 0.30));
|
|
16
|
+
}
|
|
17
|
+
/** The rc-daemon supervisor runs in its own `rc-daemon-*` scope and must
|
|
18
|
+
* never be capped — it is the spawner, not a user session. */
|
|
19
|
+
export function isDaemonUnitToken(unitToken) {
|
|
20
|
+
return unitToken.startsWith('rc-daemon-');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=session-memory-cap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-memory-cap.js","sourceRoot":"","sources":["../src/session-memory-cap.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,sEAAsE;AACtE,sEAAsE;AACtE,qEAAqE;AACrE,oEAAoE;AACpE,yEAAyE;AACzE,kEAAkE;AAElE;;oEAEoE;AACpE,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAA,CAAC,aAAa;AAEzE;gFACgF;AAChF,MAAM,UAAU,+BAA+B,CAAC,aAAqB;IACnE,OAAO,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED;+DAC+D;AAC/D,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -133,6 +133,12 @@ export interface BuildSystemdRunArgvParams {
|
|
|
133
133
|
/** Working directory passed via `--working-directory=`. The manager's
|
|
134
134
|
* prior node-pty spawn passed `cwd`; the scope receives it the same way. */
|
|
135
135
|
cwd: string;
|
|
136
|
+
/** Task 1222 — optional hard per-session memory ceiling (bytes). When
|
|
137
|
+
* set, the scope is created with `-p MemoryMax=<bytes>` so the kernel
|
|
138
|
+
* cgroup-OOMs the largest process inside THIS session's scope when it
|
|
139
|
+
* balloons, instead of letting it thrash the host. Omitted for the
|
|
140
|
+
* rc-daemon scope (the spawner is never capped). */
|
|
141
|
+
memoryMaxBytes?: number;
|
|
136
142
|
}
|
|
137
143
|
/** Build the systemd-run argv that node-pty wraps for one claude spawn.
|
|
138
144
|
* Inside the scope, `/bin/sh -c 'trap "" HUP; exec "$@"' sh <claudeBin> <claudeArgs...>`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemd-scope.d.ts","sourceRoot":"","sources":["../src/systemd-scope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"systemd-scope.d.ts","sourceRoot":"","sources":["../src/systemd-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -241,6 +241,9 @@ export function buildSystemdRunArgv(p) {
|
|
|
241
241
|
`TimeoutStopSec=${SCOPE_TIMEOUT_STOP_SEC}`,
|
|
242
242
|
`--working-directory=${p.cwd}`,
|
|
243
243
|
];
|
|
244
|
+
if (typeof p.memoryMaxBytes === 'number') {
|
|
245
|
+
args.push('-p', `MemoryMax=${p.memoryMaxBytes}`);
|
|
246
|
+
}
|
|
244
247
|
// One --setenv per env key. Order is sorted-by-key for deterministic
|
|
245
248
|
// log lines and test fixtures (and to make argv-diff review tractable
|
|
246
249
|
// across spawns).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemd-scope.js","sourceRoot":"","sources":["../src/systemd-scope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"systemd-scope.js","sourceRoot":"","sources":["../src/systemd-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,4 +48,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
48
48
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function tE(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nE(e){var t=function(){if(typeof Reflect>`u`||!cv||cv.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(cv(Boolean,[],(function(){}))),!0}catch{return!1}}();return function(){var n,r=Hv(e);if(t){var i=Hv(this).constructor;n=cv(r,arguments,i)}else n=r.apply(this,arguments);return zv(this,n)}}var rE=function(e){Rv(r,e);var n=nE(r);function r(e,i){var a;return t(this,r),Xu(U(a=n.call(this)),`_queue`,null),e&&!nm(e)&&(i=e,e=[]),a._options=i||{},a._data=new Cw,a.length=0,a._idProp=a._options.fieldId||`id`,e&&e.length&&a.add(e),a.setOptions(i),a}return Yu(r,[{key:`idProp`,get:function(){return this._idProp}},{key:`setOptions`,value:function(e){e&&e.queue!==void 0&&(!1===e.queue?this._queue&&=(this._queue.destroy(),null):(this._queue||=GT.extend(this,{replace:[`add`,`update`,`remove`]}),e.queue&&typeof e.queue==`object`&&this._queue.setOptions(e.queue)))}},{key:`add`,value:function(e,t){var n,r=this,i=[];if(nm(e)){var a=Gd(e).call(e,(function(e){return e[r._idProp]}));if(kw(a).call(a,(function(e){return r._data.has(e)})))throw Error(`A duplicate id was found in the parameter array.`);for(var o=0,s=e.length;o<s;o++)n=this._addItem(e[o]),i.push(n)}else{if(!e||typeof e!=`object`)throw Error(`Unknown dataType`);n=this._addItem(e),i.push(n)}return i.length&&this._trigger(`add`,{items:i},t),i}},{key:`update`,value:function(e,t){var n=this,r=[],i=[],a=[],o=[],s=this._idProp,c=function(e){var t=e[s];if(t!=null&&n._data.has(t)){var c=e,l=sh({},n._data.get(t)),u=n._updateItem(c);i.push(u),o.push(c),a.push(l)}else{var d=n._addItem(e);r.push(d)}};if(nm(e))for(var l=0,u=e.length;l<u;l++)e[l]&&typeof e[l]==`object`?c(e[l]):console.warn(`Ignoring input item, which is not an object at index `+l);else{if(!e||typeof e!=`object`)throw Error(`Unknown dataType`);c(e)}if(r.length&&this._trigger(`add`,{items:r},t),i.length){var d={items:i,oldData:a,data:o};this._trigger(`update`,d,t)}return qp(r).call(r,i)}},{key:`updateOnly`,value:function(e,t){var n,r=this;nm(e)||(e=[e]);var i=Gd(n=Gd(e).call(e,(function(e){var t=r._data.get(e[r._idProp]);if(t==null)throw Error(`Updating non-existent items is not allowed.`);return{oldData:t,update:e}}))).call(n,(function(e){var t=e.oldData,n=e.update,i=t[r._idProp],a=function(e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return R_.apply(void 0,qp(t=[{},e]).call(t,r))}(t,n);return r._data.set(i,a),{id:i,oldData:t,updatedData:a}}));if(i.length){var a={items:Gd(i).call(i,(function(e){return e.id})),oldData:Gd(i).call(i,(function(e){return e.oldData})),data:Gd(i).call(i,(function(e){return e.updatedData}))};return this._trigger(`update`,a,t),a.items}return[]}},{key:`get`,value:function(e,t){var n=void 0,r=void 0,i=void 0;WT(e)?(n=e,i=t):nm(e)?(r=e,i=t):i=e;var a=i&&i.returnType===`Object`?`Object`:`Array`,o=i&&zd(i),s=[],c=void 0,l=void 0,u=void 0;if(n!=null)(c=this._data.get(n))&&o&&!o(c)&&(c=void 0);else if(r!=null)for(var d=0,f=r.length;d<f;d++)(c=this._data.get(r[d]))==null||o&&!o(c)||s.push(c);else for(var p,m=0,h=(l=Vp(Lw(p=this._data).call(p))).length;m<h;m++)u=l[m],(c=this._data.get(u))==null||o&&!o(c)||s.push(c);if(i&&i.order&&n==null&&this._sort(s,i.order),i&&i.fields){var g=i.fields;if(n!=null&&c!=null)c=this._filterFields(c,g);else for(var _=0,v=s.length;_<v;_++)s[_]=this._filterFields(s[_],g)}if(a==`Object`){for(var y={},b=0,x=s.length;b<x;b++){var S=s[b];y[S[this._idProp]]=S}return y}return n==null?s:c??null}},{key:`getIds`,value:function(e){var t=this._data,n=e&&zd(e),r=e&&e.order,i=Vp(Lw(t).call(t)),a=[];if(n)if(r){for(var o=[],s=0,c=i.length;s<c;s++){var l=i[s],u=this._data.get(l);u!=null&&n(u)&&o.push(u)}this._sort(o,r);for(var d=0,f=o.length;d<f;d++)a.push(o[d][this._idProp])}else for(var p=0,m=i.length;p<m;p++){var h=i[p],g=this._data.get(h);g!=null&&n(g)&&a.push(g[this._idProp])}else if(r){for(var _=[],v=0,y=i.length;v<y;v++){var b=i[v];_.push(t.get(b))}this._sort(_,r);for(var x=0,S=_.length;x<S;x++)a.push(_[x][this._idProp])}else for(var ee=0,C=i.length;ee<C;ee++){var te=i[ee],w=t.get(te);w!=null&&a.push(w[this._idProp])}return a}},{key:`getDataSet`,value:function(){return this}},{key:`forEach`,value:function(e,t){var n=t&&zd(t),r=this._data,i=Vp(Lw(r).call(r));if(t&&t.order)for(var a=this.get(t),o=0,s=a.length;o<s;o++){var c=a[o];e(c,c[this._idProp])}else for(var l=0,u=i.length;l<u;l++){var d=i[l],f=this._data.get(d);f==null||n&&!n(f)||e(f,d)}}},{key:`map`,value:function(e,t){for(var n=t&&zd(t),r=[],i=this._data,a=Vp(Lw(i).call(i)),o=0,s=a.length;o<s;o++){var c=a[o],l=this._data.get(c);l==null||n&&!n(l)||r.push(e(l,c))}return t&&t.order&&this._sort(r,t.order),r}},{key:`_filterFields`,value:function(e,t){var n;return e&&Nd(n=nm(t)?t:am(t)).call(n,(function(t,n){return t[n]=e[n],t}),{})}},{key:`_sort`,value:function(e,t){if(typeof t==`string`){var n=t;bT(e).call(e,(function(e,t){var r=e[n],i=t[n];return r>i?1:r<i?-1:0}))}else{if(typeof t!=`function`)throw TypeError(`Order must be a function or a string`);bT(e).call(e,t)}}},{key:`remove`,value:function(e,t){for(var n=[],r=[],i=nm(e)?e:[e],a=0,o=i.length;a<o;a++){var s=this._remove(i[a]);if(s){var c=s[this._idProp];c!=null&&(n.push(c),r.push(s))}}return n.length&&this._trigger(`remove`,{items:n,oldData:r},t),n}},{key:`_remove`,value:function(e){var t;if(WT(e)?t=e:e&&typeof e==`object`&&(t=e[this._idProp]),t!=null&&this._data.has(t)){var n=this._data.get(t)||null;return this._data.delete(t),--this.length,n}return null}},{key:`clear`,value:function(e){for(var t,n=Vp(Lw(t=this._data).call(t)),r=[],i=0,a=n.length;i<a;i++)r.push(this._data.get(n[i]));return this._data.clear(),this.length=0,this._trigger(`remove`,{items:n,oldData:r},e),n}},{key:`max`,value:function(e){var t,n,r=null,i=null,a=eE(OT(t=this._data).call(t));try{for(a.s();!(n=a.n()).done;){var o=n.value,s=o[e];typeof s==`number`&&(i==null||s>i)&&(r=o,i=s)}}catch(e){a.e(e)}finally{a.f()}return r||null}},{key:`min`,value:function(e){var t,n,r=null,i=null,a=eE(OT(t=this._data).call(t));try{for(a.s();!(n=a.n()).done;){var o=n.value,s=o[e];typeof s==`number`&&(i==null||s<i)&&(r=o,i=s)}}catch(e){a.e(e)}finally{a.f()}return r||null}},{key:`distinct`,value:function(e){for(var t=this._data,n=Vp(Lw(t).call(t)),r=[],i=0,a=0,o=n.length;a<o;a++){for(var s=n[a],c=t.get(s)[e],l=!1,u=0;u<i;u++)if(r[u]==c){l=!0;break}l||c===void 0||(r[i]=c,i++)}return r}},{key:`_addItem`,value:function(e){var t=function(e,t){return e[t]??(e[t]=UT()),e}(e,this._idProp),n=t[this._idProp];if(this._data.has(n))throw Error(`Cannot add item: item with id `+n+` already exists`);return this._data.set(n,t),++this.length,n}},{key:`_updateItem`,value:function(e){var t=e[this._idProp];if(t==null)throw Error(`Cannot update item: item has no id (item: `+_h(e)+`)`);var n=this._data.get(t);if(!n)throw Error(`Cannot update item: no item with id `+t+` found`);return this._data.set(t,$T($T({},n),e)),t}},{key:`stream`,value:function(e){if(e){var t=this._data;return new ZT({[kT]:()=>vC.mark((function n(){var r,i,a,o;return vC.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:r=eE(e),n.prev=1,r.s();case 3:if((i=r.n()).done){n.next=11;break}if(a=i.value,(o=t.get(a))==null){n.next=9;break}return n.next=9,[a,o];case 9:n.next=3;break;case 11:n.next=16;break;case 13:n.prev=13,n.t0=n.catch(1),r.e(n.t0);case 16:return n.prev=16,r.f(),n.finish(16);case 19:case`end`:return n.stop()}}),n,null,[[1,13,16,19]])}))()})}var n;return new ZT({[kT]:_d(n=LT(this._data)).call(n,this._data)})}}]),r}(KT);function iE(e,t){var n=Hp!==void 0&&Qf(e)||e[`@@iterator`];if(!n){if(nm(e)||(n=function(e,t){var n;if(e){if(typeof e==`string`)return aE(e,t);var r=Jp(n=Object.prototype.toString.call(e)).call(n,8,-1);if(r===`Object`&&e.constructor&&(r=e.constructor.name),r===`Map`||r===`Set`)return Yf(e);if(r===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return aE(e,t)}}(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
49
49
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function aE(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oE(e){var t=function(){if(typeof Reflect>`u`||!cv||cv.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(cv(Boolean,[],(function(){}))),!0}catch{return!1}}();return function(){var n,r=Hv(e);if(t){var i=Hv(this).constructor;n=cv(r,arguments,i)}else n=r.apply(this,arguments);return zv(this,n)}}var sE=function(e){Rv(r,e);var n=oE(r);function r(e,i){var a,o;return t(this,r),Xu(U(o=n.call(this)),`length`,0),Xu(U(o),`_ids`,new qT),o._options=i||{},o._listener=_d(a=o._onEvent).call(a,U(o)),o.setData(e),o}return Yu(r,[{key:`idProp`,get:function(){return this.getDataSet().idProp}},{key:`setData`,value:function(e){if(this._data){this._data.off&&this._data.off(`*`,this._listener);var t=this._data.getIds({filter:zd(this._options)}),n=this._data.get(t);this._ids.clear(),this.length=0,this._trigger(`remove`,{items:t,oldData:n})}if(e!=null){this._data=e;for(var r=this._data.getIds({filter:zd(this._options)}),i=0,a=r.length;i<a;i++){var o=r[i];this._ids.add(o)}this.length=r.length,this._trigger(`add`,{items:r})}else this._data=new rE;this._data.on&&this._data.on(`*`,this._listener)}},{key:`refresh`,value:function(){for(var e=this._data.getIds({filter:zd(this._options)}),t=Vp(this._ids),n={},r=[],i=[],a=[],o=0,s=e.length;o<s;o++){var c=e[o];n[c]=!0,this._ids.has(c)||(r.push(c),this._ids.add(c))}for(var l=0,u=t.length;l<u;l++){var d=t[l],f=this._data.get(d);f==null?console.error(`If you see this, report it please.`):n[d]||(i.push(d),a.push(f),this._ids.delete(d))}this.length+=r.length-i.length,r.length&&this._trigger(`add`,{items:r}),i.length&&this._trigger(`remove`,{items:i,oldData:a})}},{key:`get`,value:function(e,t){if(this._data==null)return null;var n,r=null;WT(e)||nm(e)?(r=e,n=t):n=e;var i=sh({},this._options,n),a=zd(this._options),o=n&&zd(n);return a&&o&&(i.filter=function(e){return a(e)&&o(e)}),r==null?this._data.get(i):this._data.get(r,i)}},{key:`getIds`,value:function(e){if(this._data.length){var t,n=zd(this._options),r=e==null?null:zd(e);return t=r?n?function(e){return n(e)&&r(e)}:r:n,this._data.getIds({filter:t,order:e&&e.order})}return[]}},{key:`forEach`,value:function(e,t){if(this._data){var n,r,i=zd(this._options),a=t&&zd(t);r=a?i?function(e){return i(e)&&a(e)}:a:i,gm(n=this._data).call(n,e,{filter:r,order:t&&t.order})}}},{key:`map`,value:function(e,t){if(this._data){var n,r,i=zd(this._options),a=t&&zd(t);return r=a?i?function(e){return i(e)&&a(e)}:a:i,Gd(n=this._data).call(n,e,{filter:r,order:t&&t.order})}return[]}},{key:`getDataSet`,value:function(){return this._data.getDataSet()}},{key:`stream`,value:function(e){var t;return this._data.stream(e||{[kT]:_d(t=Lw(this._ids)).call(t,this._ids)})}},{key:`dispose`,value:function(){var e;(e=this._data)!=null&&e.off&&this._data.off(`*`,this._listener);var t,n=`This data view has already been disposed of.`,i={get:function(){throw Error(n)},set:function(){throw Error(n)},configurable:!1},a=iE(tm(r.prototype));try{for(a.s();!(t=a.n()).done;){var o=t.value;jv(this,o,i)}}catch(e){a.e(e)}finally{a.f()}}},{key:`_onEvent`,value:function(e,t,n){if(t&&t.items&&this._data){var r=t.items,i=[],a=[],o=[],s=[],c=[],l=[];switch(e){case`add`:for(var u=0,d=r.length;u<d;u++){var f=r[u];this.get(f)&&(this._ids.add(f),i.push(f))}break;case`update`:for(var p=0,m=r.length;p<m;p++){var h=r[p];this.get(h)?this._ids.has(h)?(a.push(h),c.push(t.data[p]),s.push(t.oldData[p])):(this._ids.add(h),i.push(h)):this._ids.has(h)&&(this._ids.delete(h),o.push(h),l.push(t.oldData[p]))}break;case`remove`:for(var g=0,_=r.length;g<_;g++){var v=r[g];this._ids.has(v)&&(this._ids.delete(v),o.push(v),l.push(t.oldData[g]))}}this.length+=i.length-o.length,i.length&&this._trigger(`add`,{items:i},n),a.length&&this._trigger(`update`,{items:a,oldData:s,data:c},n),o.length&&this._trigger(`remove`,{items:o,oldData:l},n)}}}]),r}(KT);function cE(e,t){return typeof t==`object`&&!!t&&e===t.idProp&&typeof t.add==`function`&&typeof t.clear==`function`&&typeof t.distinct==`function`&&typeof gm(t)==`function`&&typeof t.get==`function`&&typeof t.getDataSet==`function`&&typeof t.getIds==`function`&&typeof t.length==`number`&&typeof Gd(t)==`function`&&typeof t.max==`function`&&typeof t.min==`function`&&typeof t.off==`function`&&typeof t.on==`function`&&typeof t.remove==`function`&&typeof t.setOptions==`function`&&typeof t.stream==`function`&&typeof t.update==`function`&&typeof t.updateOnly==`function`}e.DELETE=L_,e.DataSet=rE,e.DataStream=ZT,e.DataView=sE,e.Queue=GT,e.createNewDataPipeFrom=function(e){return new lf(e)},e.isDataSetLike=cE,e.isDataViewLike=function(e,t){return typeof t==`object`&&!!t&&e===t.idProp&&typeof gm(t)==`function`&&typeof t.get==`function`&&typeof t.getDataSet==`function`&&typeof t.getIds==`function`&&typeof t.length==`number`&&typeof Gd(t)==`function`&&typeof t.off==`function`&&typeof t.on==`function`&&typeof t.stream==`function`&&cE(e,t.getDataSet())}}))}))(),T=ne(),E=i(),D=e(l(),1);function O(e){let t=new URLSearchParams(e),n=t.get(`nodeId`);if(n)return{kind:`focus`,nodeId:n,nodeLabel:t.get(`label`)};let r=t.get(`label`);return r?{kind:`labels`,labels:[r]}:null}function ie(e){return!e.inNeighbourhood&&!e.searchActive&&e.selectedLabelsCount===0&&e.topLevelTotal!==null&&e.nodeCount>0}function ae(e,t){let n=t===1?`node`:`nodes`;return`Showing ${e.toLocaleString()} of ${t.toLocaleString()} top-level ${n}`}function k(e,t){let n=`/api/admin/graph-subgraph`,r=t.includeAgentActions?`&includeAgentActions=1`:``;if(e.kind===`neighbourhood`){let i=t.search&&t.search.q?`&q=${encodeURIComponent(t.search.q)}&limit=${t.search.limit}`:``;return`${n}?mode=neighbourhood&elementId=${encodeURIComponent(e.rootElementId)}${r}${i}`}let i=e.includeTrashed?`&includeTrashed=1`:``;return e.selectedLabels.length===0?`${n}?mode=default&topLevel=1${i}${r}`:`${n}?mode=default&labels=${encodeURIComponent(e.selectedLabels.join(`,`))}${i}${r}${t.channel&&t.channel.length>0?`&channel=${encodeURIComponent(t.channel.join(`,`))}`:``}${t.messageSublabel&&t.messageSublabel.length>0?`&messageSublabel=${encodeURIComponent(t.messageSublabel.join(`,`))}`:``}`}function oe(e,t){return e.length<10?[...e,t]:[e[0],...e.slice(e.length-8),t]}function se(e){return e.length<=1?e:e.slice(0,-1)}function ce(e){return[e]}function le(e){let t=e[e.length-1];return t.kind===`filter`?`f:${[...t.selectedLabels].sort().join(`,`)}:${t.includeTrashed?1:0}:${t.includeAgentActions?1:0}`:`n:${t.rootElementId}`}function ue(e){let t=e[0];if(t.kind!==`filter`)throw Error(`view-stack invariant: root must be filter view`);return t}var de=`admin-sessions`;function fe(){if(typeof window>`u`)return null;if(typeof BroadcastChannel>`u`)return console.warn(`[admin-sessions/broadcast] unsupported — manual refresh only`),null;try{return new BroadcastChannel(de)}catch(e){return console.warn(`[admin-sessions/broadcast] ctor failed: ${e instanceof Error?e.message:String(e)} — manual refresh only`),null}}function pe(e){let t=fe();if(t)try{let n={type:`mutated`,reason:e};t.postMessage(n)}catch(e){console.warn(`[admin-sessions/broadcast] postMessage failed: ${e instanceof Error?e.message:String(e)}`)}finally{try{t.close()}catch{}}}function me(e){return e.trashed===!0?`skip-trashed`:`pivot`}function he(e,t,n,r){let i=[],a=[];for(let o of e){let e=t.get(o.nodeId);if(!e)continue;a.push(o.nodeId);let{colour:s}=n(e.labels),c=e.trashed?`${s}40`:s;i.push({id:o.nodeId,borderWidth:3,color:{background:c,border:r}})}return{updates:i,inWindow:a}}function ge(e,t){let n=t.length>0?new Set(t):null,r=new Map,i=new Set,a=[];for(let t of e)n&&!t.labels.some(e=>n.has(e))||r.set(t.nodeId,{id:t.nodeId,labels:t.labels,properties:t.properties});for(let t of e)if(r.has(t.nodeId))for(let e of t.related){if(n&&!e.labels.some(e=>n.has(e)))continue;r.has(e.nodeId)||r.set(e.nodeId,{id:e.nodeId,labels:e.labels,properties:e.properties});let[o,s]=e.direction===`outgoing`?[t.nodeId,e.nodeId]:[e.nodeId,t.nodeId],c=`${o}|${s}|${e.relationship}`;i.has(c)||(i.add(c),a.push({id:c,from:o,to:s,type:e.relationship}))}return{nodes:[...r.values()],edges:a}}var _e=2e3;function ve(e){let t=typeof e==`number`?e:Number(e);return!Number.isFinite(t)||t<=0?100:Math.min(Math.max(Math.floor(t),1),_e)}function ye(e,t,n,r){let i=encodeURIComponent(t.join(`,`));return`/api/admin/graph-search?q=${encodeURIComponent(e)}&labels=${i}&limit=${n}${r?`&threshold=0`:``}`}var be=x(),xe=new Set([`Conversation`,`AdminConversation`,`PublicConversation`]),A=/^(\d{4}-\d{2}-\d{2})T/,Se=24;function Ce(e){let t=e.match(A);return t?t[1]:null}function j(e,t){if(e.length===0)return``;let n=e.split(/\s+/).filter(e=>e.length>0);if(n.length===0)return``;if(n.length===1){let e=n[0];return e.length<=Se?e:e.slice(0,Se-1)+`…`}let r=[],i=0;for(;r.length<t&&i<n.length;){let e=``;for(;i<n.length;){let t=e.length===0?n[i]:`${e} ${n[i]}`;if(t.length<=Se)e=t,i++;else break}e.length===0&&(e=n[i].slice(0,Se-1)+`…`,i++),r.push(e)}if(i<n.length&&r.length>0){let e=n.slice(i).join(` `),t=r.length-1;r[t]=(r[t].length===0?e:`${r[t]} ${e}`).slice(0,Se-1)+`…`}return r.join(`
|
|
50
50
|
`)}function M(e){return j(e,2)}function N(e,t){let n=e.labels[0];if(!n||!xe.has(n)||t<.7)return(0,be.pickShortLabel)(e);let r=M((0,be.pickDisplayName)(e));if(t<1.3)return r;let i=e.properties,a=typeof i.createdAt==`string`?i.createdAt:``,o=typeof i.messageCount==`number`?i.messageCount:null;if(a.length===0||o===null)return r;let s=Ce(a);return s===null?r:`${r}\n${s} · ${o} msgs`}var we=new Set([`Person`,`Organization`,`Concept`]),Te=80;function Ee(e,t){let n=(0,be.pickDisplayName)(e);if(t<1.3)return j(n,3);let r=n.length<=24?n:n.slice(0,23)+`…`,i=e.properties.compiledTruth;if(typeof i!=`string`||i.length===0)return j((0,be.pickDisplayName)(e),3);let a=j(i.length>Te?i.slice(0,Te-1)+`…`:i,2);return a.length===0?r:`${r}\n${a}`}function P(e,t){if(t<.7)return(0,be.pickShortLabel)(e);let n=e.labels[0];return n&&xe.has(n)?N(e,t):n&&we.has(n)?Ee(e,t):j((0,be.pickDisplayName)(e),3)}function F(e){let t=e.properties,n=typeof t.createdAt==`string`?t.createdAt:``,r=typeof t.updatedAt==`string`?t.updatedAt:``,i=e.labels.join(` · `);return[(0,be.pickDisplayName)(e),i,`id: ${e.id}`,n?`createdAt: ${n}`:``,r?`updatedAt: ${r}`:``].filter(e=>e.length>0).join(`
|
|
51
|
-
`)}var De={solver:`barnesHut`,barnesHut:{gravitationalConstant:-2e3,centralGravity:.4,springLength:170,springConstant:.04},stabilization:{iterations:1e3}},Oe=220,ke=3;function Ae(e){if(!(e.nodes.length<=5))return{physics:De,nodePositions:new Map};let t=new Map,n=(ke-1)*Oe/2,r=(Math.ceil(e.nodes.length/ke)-1)*Oe/2;for(let i=0;i<e.nodes.length;i++){let a=i%ke,o=Math.floor(i/ke);t.set(e.nodes[i].id,{x:a*Oe-n,y:o*Oe-r})}return{physics:!1,nodePositions:t}}function je(e,t){e.once(`stabilizationIterationsDone`,()=>{if(e.setOptions({physics:!1}),t.dev){let n=e.physics?.stabilizationIterations??`?`,r=e.physics?.stabilized===!0;(t.log??(e=>console.error(e)))(`[graph-page] stabilization-done iterations=${n} minVelocityReached=${r} physics=frozen`)}})}var I=f();function Me(e){return e<.7?`compact`:e<1.3?`wrapped`:`detailed`}var Ne=150,Pe=`#FBBF24`;function Fe(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}var Ie=`maxy-graph-search-limit-v1`,Le=250,Re=1200;function ze(){let[e,t]=(0,D.useState)(null),[r,i]=(0,D.useState)(!1),[a,o]=(0,D.useState)(void 0),[s,c]=(0,D.useState)(null),[l,f]=(0,D.useState)(void 0),[p,m]=(0,D.useState)(null),[h,v]=(0,D.useState)(null),y=(0,D.useMemo)(()=>typeof window>`u`?null:O(window.location.search),[]),b=(0,D.useMemo)(()=>y?.kind===`focus`?{nodeId:y.nodeId,nodeLabel:y.nodeLabel}:null,[y]),x=(0,D.useMemo)(()=>y?.kind===`labels`?y.labels:null,[y]);(0,D.useEffect)(()=>{b&&We(`deep-link`,{nodeId:b.nodeId.length>16?b.nodeId.slice(0,16)+`…`:b.nodeId,label:b.nodeLabel??``})},[b]),(0,D.useEffect)(()=>{!x||x.length===0||We(`label-seed`,{label:x[0]})},[x]),(0,D.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!n){t(null),i(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(async r=>{if(!e){if(r.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`;return}if(r.ok)try{let e=await r.json();typeof e.businessName==`string`&&o(e.businessName),e.sessionId!==void 0&&c(e.sessionId??null),v(e.role??null),f(e.userName===void 0?null:e.userName),m(e.avatar??null)}catch{}t(n),i(!0)}}).catch(()=>{e||(t(n),i(!0))}),()=>{e=!0}},[]);let S=(0,D.useCallback)(()=>{try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`},[]),[ee,C]=(0,D.useState)(!1),te=(0,D.useCallback)(async()=>{C(!0);try{let e=await _();if(e){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`}return e}finally{C(!1)}},[]);return r?e?(0,I.jsx)(d,{cacheKey:e,surface:`graph`,onSessionExpired:({code:e,path:t})=>{console.warn(`[admin-auth] outcome=session-expired-redirect code=${e} path=${t} surface=graph`);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`},children:(0,I.jsx)(g,{cacheKey:e,businessName:a,sessionId:s,onLogout:S,onDisconnect:te,disconnecting:ee,userName:l,userAvatar:p,role:h,children:(0,I.jsxs)(`div`,{className:`data-page graph-page`,children:[(0,I.jsx)(`header`,{className:`data-header`,children:(0,I.jsxs)(`h1`,{className:`data-title`,children:[(0,I.jsx)(n,{size:18}),` Graph`]})}),(0,I.jsx)(`main`,{className:`graph-main`,children:(0,I.jsx)(Be,{cacheKey:e,initialFocus:b,initialLabels:x})})]})})}):(0,I.jsxs)(`div`,{className:`data-page`,children:[(0,I.jsx)(`header`,{className:`data-header`,children:(0,I.jsxs)(`h1`,{className:`data-title`,children:[(0,I.jsx)(n,{size:18}),` Graph`]})}),(0,I.jsxs)(`div`,{className:`data-empty`,children:[(0,I.jsx)(`p`,{children:`You are not signed in.`}),(0,I.jsxs)(`p`,{children:[`Open the `,(0,I.jsx)(`a`,{href:`/`,className:`data-link`,children:`main admin page`}),` and log in, then return here.`]})]})]}):(0,I.jsx)(`div`,{className:`data-page`,children:(0,I.jsxs)(`div`,{className:`data-loading`,children:[(0,I.jsx)(u,{size:18,className:`spin`}),` Loading…`]})})}function Be({cacheKey:e,initialFocus:t=null,initialLabels:n=null}){let{adminFetch:i,cacheKey:l,sessionRefetchNonce:d}=c({initialCacheKey:e,surface:`graph`}),f=(0,D.useRef)(null),p=(0,D.useRef)(null),g=(0,D.useRef)(null),_=(0,D.useRef)(null),v=(0,D.useRef)(new Map),x=(0,D.useRef)([]),w=(0,D.useRef)(null),ne=(0,D.useRef)(null),E=(0,D.useRef)(null),O=(0,D.useRef)([]),de=(0,D.useRef)(null),fe=(0,D.useRef)(null),_e=(0,D.useRef)(null),be=(0,D.useRef)(null),[xe,A]=(0,D.useState)([{kind:`filter`,selectedLabels:[],includeTrashed:!1,includeAgentActions:!1}]);(0,D.useEffect)(()=>{t?.nodeId&&A(e=>{let n=e[e.length-1];return n.kind===`neighbourhood`&&n.rootElementId===t.nodeId?e:[e[0],{kind:`neighbourhood`,rootElementId:t.nodeId,rootLabel:t.nodeLabel}]})},[t?.nodeId,t?.nodeLabel]);let Se=n&&n.length>0?[...n].sort().join(`,`):null;(0,D.useEffect)(()=>{Se&&(jt.current=!0,A([{kind:`filter`,selectedLabels:Se.split(`,`),includeTrashed:!1,includeAgentActions:!1}]))},[Se]);let[Ce,j]=(0,D.useState)(!1),[M,N]=(0,D.useState)(null),[we,Te]=(0,D.useState)(null),[Ee,De]=(0,D.useState)(0),[Oe,ke]=(0,D.useState)(null),[ze,Be]=(0,D.useState)(null),[Ge,Ke]=(0,D.useState)(!1),[qe,Je]=(0,D.useState)(!1),[Ye,Xe]=(0,D.useState)(null),[Ze,Qe]=(0,D.useState)(``),[$e,et]=(0,D.useState)(``),[tt,nt]=(0,D.useState)(null),[rt,it]=(0,D.useState)(null),[at,ot]=(0,D.useState)(()=>{if(typeof window>`u`)return 100;let e=window.localStorage.getItem(Ie);return e?ve(e):100}),[st,ct]=(0,D.useState)(at),[lt,ut]=(0,D.useState)(`hybrid`),[dt,ft]=(0,D.useState)(0),[pt,mt]=(0,D.useState)(!1),[ht,gt]=(0,D.useState)(0),[_t,vt]=(0,D.useState)(0),[yt,bt]=(0,D.useState)([]),[xt,St]=(0,D.useState)({labels:[],includeTrashed:!1}),[Ct,wt]=(0,D.useState)(!1),[Tt,Et]=(0,D.useState)([]),[Dt,Ot]=(0,D.useState)([]),[kt,At]=(0,D.useState)(!1),jt=(0,D.useRef)(!1),Mt=(0,D.useRef)(null),Nt=(0,D.useMemo)(()=>{let e=new Set;for(let t of v.current.values()){let n=(0,b.pickDisplayLabel)(t.labels);n&&e.add(n)}return[...e].sort()},[Ee]);(0,D.useEffect)(()=>{let e=!1,t=i(`/api/admin/graph-labels-in-graph`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-labels-in-graph`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}return{labels:[]}}),n=i(`/api/admin/graph-default-view`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-default-view`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}return{labels:[],includeTrashed:!1}});return Promise.all([t,n]).then(([t,n])=>{if(!e&&(bt(t.labels),St(n),!jt.current)){jt.current=!0;let e=new Set(t.labels.map(e=>e.label)),r=n.labels.filter(t=>e.has(t));(r.length>0||n.includeTrashed)&&A(e=>[{kind:`filter`,selectedLabels:r,includeTrashed:n.includeTrashed,includeAgentActions:!1},...e.slice(1)])}}),()=>{e=!0}},[l,d,i]);let Pt=xe[0].kind===`filter`?xe[0].includeAgentActions:!1;(0,D.useEffect)(()=>{if(!jt.current)return;let e=!1;return i(`/api/admin/graph-labels-in-graph?includeAgentActions=${Pt?`1`:`0`}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).then(t=>{e||bt(t.labels)}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-labels-in-graph-refetch`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}}),()=>{e=!0}},[l,d,Pt,_t,i]),(0,D.useEffect)(()=>{if(!Ct)return;let e=e=>{Mt.current&&(Mt.current.contains(e.target)||wt(!1))},t=e=>{e.key===`Escape`&&wt(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[Ct]);let Ft=(0,D.useCallback)(()=>{if(g.current)try{g.current.clear()}catch{}if(_.current)try{_.current.clear()}catch{}},[]),It=(0,D.useCallback)((e,t)=>{Xe(null),i(`/api/admin/graph-delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e,by:`graph-drag-trash`})}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Be(null);try{p.current?.unselectAll()}catch{}A(e=>[ue(e)]),gt(e=>e+1),pe(`graph-trash`)}).catch(n=>{let r=n instanceof Error?n.message:String(n);Xe(`Failed to delete: ${r}`),Je(!0),window.setTimeout(()=>Je(!1),Re);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-drag-delete`,elementId:e,label:t,msg:r}),keepalive:!0}).catch(()=>{})}catch{}})},[i]),Lt=(0,D.useCallback)(e=>{Xe(null);let t=e.length;Promise.allSettled(e.map(e=>i(`/api/admin/graph-delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e,by:`graph-drag-trash`})}).then(async t=>{let n=await t.json().catch(()=>({error:`HTTP ${t.status}`}));if(!t.ok)throw Error(n.error??`HTTP ${t.status}`);return e}))).then(e=>{let n=e.filter(e=>e.status===`rejected`);Be(null);try{p.current?.unselectAll()}catch{}if(A(e=>[ue(e)]),gt(e=>e+1),pe(`graph-trash`),n.length>0){let e=t-n.length;Xe(e===0?`Failed to delete ${t} node${t===1?``:`s`}.`:`Deleted ${e} of ${t}; ${n.length} failed.`),Je(!0),window.setTimeout(()=>Je(!1),Re);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-drag-delete-batch`,total:t,failed:n.length}),keepalive:!0}).catch(()=>{})}catch{}}})},[i]),Rt=xe[xe.length-1],zt=(0,D.useMemo)(()=>le(xe),[xe]),Bt=(0,D.useRef)(zt);(0,D.useEffect)(()=>{Bt.current=zt},[zt]);let Vt=(0,D.useRef)(xe);(0,D.useEffect)(()=>{Vt.current=xe},[xe]),(0,D.useEffect)(()=>{if($e){w.current?.abort(),w.current=null;return}let e=window.setTimeout(()=>{w.current?.abort();let e=new AbortController;w.current=e,j(!0),N(null),Te(null),i(k(Rt,{includeAgentActions:ue(xe).includeAgentActions,search:null,channel:Tt,messageSublabel:Dt}),{signal:e.signal}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(e.status===413)throw new He(t);if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(t=>{e.signal.aborted||(v.current=new Map(t.nodes.map(e=>[e.id,e])),De(t.nodes.length),ke(typeof t.total==`number`?t.total:null),Ht(t.nodes,t.edges))}).catch(t=>{if(!e.signal.aborted){if(t instanceof He){Te(t.body),De(0),v.current=new Map,Ft();return}N(t instanceof Error?t.message:String(t))}}).finally(()=>{e.signal.aborted||j(!1)})},Le);return()=>{window.clearTimeout(e)}},[l,zt,ht,d,$e,st,Tt,Dt]),(0,D.useEffect)(()=>()=>{w.current?.abort(),p.current?.destroy(),p.current=null,be.current!==null&&(clearTimeout(be.current),be.current=null)},[]);let Ht=(0,D.useCallback)((e,t)=>{if(!f.current)return;x.current=t;let n=new Set([`Message`,`UserMessage`,`AssistantMessage`]),r=e=>e.labels.some(e=>n.has(e)),i=new Map,a=e.filter(r);if(a.length>0){let e=new Set(a.map(e=>e.id)),n=new Map,r=new Set;for(let i of t)i.type===`NEXT`&&e.has(i.from)&&e.has(i.to)&&(n.set(i.from,i.to),r.add(i.to));let o=[],s=new Set;for(let e of a){if(r.has(e.id))continue;let t=e.id;for(;t&&!s.has(t);)s.add(t),o.push(t),t=n.get(t)}for(let e of a)s.has(e.id)||(o.push(e.id),s.add(e.id));let c=f.current?.clientWidth??1200,l=Math.max(c-160,300),u=Math.max(Math.floor(l/150),2);o.forEach((e,t)=>{let n=t%u,r=Math.floor(t/u);i.set(e,{x:n*150,y:r*90})})}let o=e.map(e=>{let t=e.labels[0]??`Unknown`,n=(0,b.resolveNodeColour)(e.labels);n.displayLabel;let r=n.colour;n.driftCandidates;let a=i.get(e.id),o=a?{x:a.x,y:a.y,physics:!1}:{};return e.trashed?{id:e.id,label:P(e,1),title:F(e),color:{background:`${r}40`,border:r},borderWidth:2,shapeProperties:{borderDashes:[6,4]},group:t,...o}:{id:e.id,label:P(e,1),title:F(e),color:r,group:t,...o}}),s=new Set(o.map(e=>e.id)),c=t.filter(e=>e.type!==`PART_OF`||s.has(e.from)&&s.has(e.to)).map(e=>({id:e.id,from:e.from,to:e.to,label:e.type})),l=Ae({nodes:e,edges:t});g.current=new re.DataSet(l.nodePositions.size>0?o.map(e=>{if(e.x!==void 0||e.y!==void 0)return e;let t=l.nodePositions.get(e.id);return t?{...e,x:t.x,y:t.y,physics:!1}:e}):o),_.current=new re.DataSet(c);let u={autoResize:!0,layout:{improvedLayout:!1,randomSeed:Fe(Bt.current)},physics:l.physics===!1?!1:{solver:l.physics.solver,barnesHut:l.physics.barnesHut,stabilization:l.physics.stabilization},nodes:{shape:`dot`,size:18,font:{color:`#1F2937`,size:12,face:`DM Sans, sans-serif`},scaling:{label:{enabled:!0,min:12,max:30,drawThreshold:0}},borderWidth:0,chosen:{node:e=>{e.size=20,e.borderWidth=3,e.borderColor=`#0F172A`,e.shadow=!0,e.shadowColor=`rgba(15, 23, 42, 0.55)`,e.shadowSize=8,e.shadowX=0,e.shadowY=0},label:e=>{e.size=14}}},edges:{arrows:{to:{enabled:!0,scaleFactor:.4}},color:{color:`#CBD5E1`,highlight:`#475569`},font:{color:`#64748B`,size:9,face:`DM Sans, sans-serif`,align:`middle`,strokeWidth:0},smooth:{enabled:!0,type:`continuous`,roundness:.4},width:1,chosen:{edge:!0,label:!1}},interaction:{hover:!0,tooltipDelay:150,multiselect:!0}};try{p.current?.destroy(),be.current!==null&&(clearTimeout(be.current),be.current=null),_e.current=null;let e=new T.Network(f.current,{nodes:g.current,edges:_.current},u);p.current=e,l.physics!==!1&&je(e,{dev:!1}),e.on(`zoom`,()=>{be.current!==null&&clearTimeout(be.current),be.current=setTimeout(()=>{be.current=null;let e=p.current,t=g.current;if(!e||!t)return;let n;try{n=e.getScale()}catch{return}let r=Me(n);if(r===_e.current)return;_e.current=r;let i=[];for(let e of v.current.values()){if(!e.labels[0])continue;let{colour:t}=(0,b.resolveNodeColour)(e.labels),r=e.trashed?{background:`${t}40`,border:t}:t;i.push({id:e.id,label:P(e,n),color:r})}i.length>0&&t.update(i),console.error(`[graph-page] zoom-tier scale=${n.toFixed(3)} tier=${r} nodes=${i.length}`)},Ne)}),e.on(`click`,e=>{let t=e.nodes[0];if(!t)return;let n=v.current.get(t);if(!n)return;if(me(n)===`skip-trashed`){Be(n);return}let r=Vt.current[Vt.current.length-1];if(r.kind===`neighbourhood`&&r.rootElementId===t){Be(e=>e?.id===t?null:n);return}Be(null);let i={kind:`neighbourhood`,rootElementId:t,rootLabel:n.labels[0]??null};A(e=>{let n=oe(e,i),r=n.length-1;return n.length>e.length&&We(`nav-push`,{depth:r,kind:i.kind,rootElementId:t}),n.length===10&&e.length===10&&We(`view-stack-cap-hit`,{depth:10,rootElementId:t}),n})}),e.on(`deselectNode`,()=>{Be(null)});let t=e=>{let t=f.current,n=ne.current;if(!t||!n)return!1;let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=r.left+e.x,o=r.top+e.y;return a>=i.left&&a<=i.right&&o>=i.top&&o<=i.bottom},n=f.current?.parentElement??null;e.on(`dragStart`,e=>{if(e.nodes.length===0){E.current=null,O.current=[];return}O.current=[...e.nodes],E.current=e.nodes[0],n?.classList.add(`graph-dragging`)}),e.on(`dragging`,e=>{if(O.current.length===0)return;let n=t(e.pointer.DOM);Ke(e=>e===n?e:n)}),e.on(`dragEnd`,e=>{let r=O.current;if(O.current=[],E.current=null,Ke(!1),n?.classList.remove(`graph-dragging`),r.length!==0&&t(e.pointer.DOM))if(r.length===1){let e=v.current.get(r[0])?.labels[0]??`Unknown`;It(r[0],e)}else Lt(r)})}catch(e){let t=e instanceof Error?e.message:String(e);N(`Visualisation failed to load: ${t}`);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-render`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}}},[]);(0,D.useEffect)(()=>{let e=f.current;if(!e)return;let t=t=>{let n=fe.current,r=de.current,i=e.parentElement;if(!n||!r||!i)return;let a=i.getBoundingClientRect(),o=Math.min(n.clientX,t.clientX)-a.left,s=Math.min(n.clientY,t.clientY)-a.top,c=Math.max(n.clientX,t.clientX)-a.left,l=Math.max(n.clientY,t.clientY)-a.top;r.style.left=`${o}px`,r.style.top=`${s}px`,r.style.width=`${c-o}px`,r.style.height=`${l-s}px`},n=r=>{document.removeEventListener(`mousemove`,t,!0),document.removeEventListener(`mouseup`,n,!0);let i=fe.current;fe.current=null;let a=de.current;a&&(a.style.display=`none`);let o=p.current;if(!i||!o)return;let s=e.getBoundingClientRect(),c=i.clientX-s.left,l=i.clientY-s.top,u=r.clientX-s.left,d=r.clientY-s.top,f=Math.min(c,u),m=Math.min(l,d),h=Math.max(c,u),g=Math.max(l,d);if(h-f<3&&g-m<3)return;let _=o.getPositions(),v=[];for(let[e,t]of Object.entries(_)){let n=o.canvasToDOM(t);n.x>=f&&n.x<=h&&n.y>=m&&n.y<=g&&v.push(e)}try{o.selectNodes(v,!1)}catch{}},r=r=>{if(!r.shiftKey||r.button!==0)return;let i=p.current,a=e.parentElement;if(!i||!a)return;let o=e.getBoundingClientRect(),s={x:r.clientX-o.left,y:r.clientY-o.top};if(i.getNodeAt(s))return;r.preventDefault(),r.stopImmediatePropagation(),fe.current={clientX:r.clientX,clientY:r.clientY};let c=de.current,l=a.getBoundingClientRect();c&&(c.style.display=`block`,c.style.left=`${r.clientX-l.left}px`,c.style.top=`${r.clientY-l.top}px`,c.style.width=`0px`,c.style.height=`0px`),document.addEventListener(`mousemove`,t,!0),document.addEventListener(`mouseup`,n,!0)};return e.addEventListener(`mousedown`,r,!0),()=>{e.removeEventListener(`mousedown`,r,!0),document.removeEventListener(`mousemove`,t,!0),document.removeEventListener(`mouseup`,n,!0)}},[]),(0,D.useEffect)(()=>{let e=Ze.trim();if(!e){et(``),nt(null),it(null),ut(`hybrid`),ft(0),mt(!1),p.current?.unselectAll();return}mt(!1);let t=setTimeout(()=>et(e),300);return()=>clearTimeout(t)},[Ze]),(0,D.useEffect)(()=>{let e=setTimeout(()=>{let e=ve(at);ct(e);try{window.localStorage.setItem(Ie,String(e))}catch{}},200);return()=>clearTimeout(e)},[at]);let Ut=(0,D.useCallback)(e=>{let t=p.current,n=g.current;if(!t||!n)return;let{updates:r,inWindow:i}=he(e,v.current,b.resolveNodeColour,Pe);r.length>0&&(n.update(r),t.fit({nodes:i,animation:{duration:400,easingFunction:`easeInOutQuad`}}))},[]),Wt=ue(xe);(0,D.useEffect)(()=>{if(!$e)return;let e=!1;return it(null),i(ye($e,Wt.selectedLabels,st,pt)).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(t=>{if(e)return;nt(t.results);let n=t.mode===`bm25`?`bm25`:`hybrid`;if(ut(n),ft(typeof t.suppressed==`number`?t.suppressed:0),n===`bm25`)try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-page`,msg:`[graph-page] search-result-degraded mode=bm25 query="${$e}"`}),keepalive:!0}).catch(()=>{})}catch{}let{nodes:r,edges:i}=ge(t.results,Wt.selectedLabels);v.current=new Map(r.map(e=>[e.id,e])),De(r.length),Te(null),Ht(r,i),Ut(t.results),console.info(`[graph-page] search-applied view=${Rt.kind} q="${$e}" labels=${Wt.selectedLabels.join(`|`)} hits=${r.length}`)}).catch(t=>{e||it(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[$e,st,l,d,i,Ut,Rt.kind,Wt.selectedLabels,Ht,pt]);let Gt=(0,D.useCallback)(e=>{A(t=>{let n=ue(t),r=new Set(n.selectedLabels);return r.has(e)?r.delete(e):r.add(e),ce({kind:`filter`,selectedLabels:[...r].sort(),includeTrashed:n.includeTrashed,includeAgentActions:n.includeAgentActions})})},[]),Kt=(0,D.useCallback)(()=>{A(e=>{let t=ue(e);return ce({...t,includeTrashed:!t.includeTrashed})})},[]),qt=(0,D.useCallback)(()=>{A(e=>{let t=ue(e);return ce({...t,includeAgentActions:!t.includeAgentActions})})},[]),Jt=(0,D.useCallback)(()=>{Qe(``),et(``),nt(null),it(null),ut(`hybrid`),ft(0),mt(!1);try{p.current?.unselectAll()}catch{}},[]),Yt=(0,D.useCallback)(()=>{A(()=>ce({kind:`filter`,selectedLabels:[],includeTrashed:!1,includeAgentActions:!1}))},[]),Xt=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}A(e=>{let t=se(e);return t!==e&&We(`nav-pop`,{depth:t.length-1}),t})},[]),Zt=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}A(e=>e.length<=1?e:(We(`nav-home`,{depth:0,popped:e.length-1}),[ue(e)]))},[]),Qt=(0,D.useCallback)(()=>{let e=ue(xe),t={labels:[...e.selectedLabels].sort(),includeTrashed:e.includeTrashed};At(!0),i(`/api/admin/graph-default-view`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)}).then(async e=>{if(!e.ok){let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));throw Error(t.error??`HTTP ${e.status}`)}St(t)}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-default-view-save`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}}).finally(()=>At(!1))},[i,xe]),$t=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}gt(e=>e+1),pe(`graph-restore`)},[]),en=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}A(e=>[ue(e)]),gt(e=>e+1),pe(`graph-trash`)},[]),tn=(0,D.useCallback)(()=>{gt(e=>e+1),vt(e=>e+1)},[]),nn=Rt.kind===`neighbourhood`,rn=ue(xe),an=rn.selectedLabels,on=rn.includeTrashed,sn=rn.includeAgentActions,cn=Tt.join(`,`),ln=Dt.join(`,`),un=an.includes(`AdminConversation`)||an.includes(`PublicConversation`);(0,D.useEffect)(()=>{un&&console.info(`[graph-filter] subfacet-render channel=[${cn}] sublabel=[${ln}]`)},[cn,ln,un]);let dn=(0,D.useMemo)(()=>{if(on!==xt.includeTrashed||an.length!==xt.labels.length)return!0;for(let e=0;e<an.length;e++)if(an[e]!==xt.labels[e])return!0;return!1},[on,an,xt]);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`graph-toolbar`,children:[xe.length>1&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`button`,{type:`button`,className:`graph-home-to-filter graph-home-desktop`,onClick:Zt,title:`Clear breadcrumb — return to filter root`,children:[(0,I.jsx)(C,{size:12}),` Home`]}),(0,I.jsx)(`button`,{type:`button`,className:`graph-home-to-filter graph-home-mobile`,onClick:Zt,"aria-label":`Home`,title:`Clear breadcrumb — return to filter root`,children:(0,I.jsx)(C,{size:14})}),(0,I.jsx)(`button`,{type:`button`,className:`graph-back-to-filter graph-back-desktop`,onClick:Xt,children:`← Back`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-back-to-filter graph-back-mobile`,onClick:Xt,"aria-label":`Back`,children:(0,I.jsx)(a,{size:16})})]}),(0,I.jsxs)(`div`,{className:`data-search-input graph-search-input`,children:[(0,I.jsx)(y,{size:14}),(0,I.jsx)(`input`,{type:`text`,placeholder:`Search nodes…`,value:Ze,onChange:e=>Qe(e.target.value),autoComplete:`off`,spellCheck:!1}),$e&&!tt&&!rt&&(0,I.jsx)(u,{size:14,className:`spin`}),Ze.length>0&&(0,I.jsx)(`button`,{type:`button`,className:`graph-search-clear`,onClick:Jt,"aria-label":`Clear search`,title:`Clear search`,children:(0,I.jsx)(s,{size:14})})]}),$e&&(0,I.jsxs)(`div`,{className:`graph-search-limit`,title:`Show top ${at} matches (1-2000)`,children:[(0,I.jsx)(`label`,{htmlFor:`graph-search-limit-input`,className:`graph-search-limit-label`,children:`Top`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-search-limit-step`,onClick:()=>ot(ve(at-1)),disabled:at<=1,"aria-label":`Decrement search limit`,title:`Decrement`,children:(0,I.jsx)(te,{size:12})}),(0,I.jsx)(`input`,{id:`graph-search-limit-input`,type:`number`,min:1,max:2e3,step:1,value:at,onChange:e=>ot(ve(e.target.value)),className:`graph-search-limit-number`,"aria-label":`Maximum search results to render`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-search-limit-step`,onClick:()=>ot(ve(at+1)),disabled:at>=2e3,"aria-label":`Increment search limit`,title:`Increment`,children:(0,I.jsx)(m,{size:12})}),(0,I.jsx)(`input`,{id:`graph-search-limit-slider`,type:`range`,min:1,max:2e3,step:1,value:at,onChange:e=>ot(ve(e.target.value)),"aria-label":`Maximum search results to render (drag for ballpark)`})]}),(0,I.jsx)(`button`,{type:`button`,className:`graph-refresh-button`,onClick:tn,disabled:Ce,"aria-label":`Refresh graph`,title:`Refresh graph`,children:(0,I.jsx)(o,{size:14,className:Ce?`spin`:void 0})}),!nn&&(0,I.jsxs)(`div`,{className:`graph-filter-wrap`,ref:Mt,children:[(0,I.jsxs)(`button`,{type:`button`,className:`graph-filter-toggle${Ct?` is-open`:``}${an.length>0||on||sn?` has-selection`:``}`,onClick:()=>wt(e=>!e),"aria-haspopup":`true`,"aria-expanded":Ct,"aria-label":`Filter node types`,children:[(0,I.jsx)(h,{size:14}),(0,I.jsx)(`span`,{children:`Filter`}),an.length>0&&(0,I.jsx)(`span`,{className:`graph-filter-count`,children:an.length})]}),Ct&&(0,I.jsxs)(`div`,{className:`graph-filter-popover`,role:`dialog`,"aria-label":`Node type filter`,children:[(0,I.jsxs)(`div`,{className:`graph-filter-popover-header`,children:[(0,I.jsxs)(`button`,{type:`button`,className:`graph-toggle-trashed${on?` active`:``}`,onClick:Kt,"aria-pressed":on,title:`Show trashed nodes — restored with Restore button on each node`,children:[(0,I.jsx)(ee,{size:14}),` Show trashed`]}),(an.length>0||on||sn)&&(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-clear`,onClick:Yt,"aria-label":`Clear filter selection`,title:`Clear filter selection`,children:(0,I.jsx)(s,{size:14})})]}),(0,I.jsx)(`div`,{className:`graph-toggle-agent-actions`,title:`Hide ToolCall, StepResult, WorkflowStep, WorkflowRun — agent-execution telemetry. Flip on for audit/debug.`,children:(0,I.jsx)(S,{checked:sn,onChange:qt,label:`Include agent actions`})}),yt.length===0&&(0,I.jsx)(`p`,{className:`graph-filter-popover-empty`,children:`No node types in your graph yet.`}),(0,I.jsx)(`div`,{className:`graph-filter-rows`,role:`group`,"aria-label":`Node type filter`,children:yt.map(({label:e,nodeCount:t})=>{let n=an.includes(e),r=(0,b.colourForLabel)(e);return(0,I.jsxs)(`button`,{type:`button`,className:`graph-filter-row${n?` active`:``}`,onClick:()=>Gt(e),"aria-pressed":n,children:[(0,I.jsx)(`span`,{className:`graph-filter-row-swatch`,style:{backgroundColor:r}}),(0,I.jsx)(`span`,{className:`graph-filter-row-label`,children:e}),(0,I.jsx)(`span`,{className:`graph-filter-row-count`,children:t})]},e)})}),(an.includes(`AdminConversation`)||an.includes(`PublicConversation`))&&(0,I.jsxs)(`div`,{className:`graph-filter-subfacets`,children:[(0,I.jsxs)(`div`,{className:`graph-filter-subfacet-group`,role:`group`,"aria-label":`Conversation channel`,children:[(0,I.jsx)(`span`,{className:`graph-filter-subfacet-label`,children:`Channel`}),[`webchat`,`whatsapp`].map(e=>{let t=Tt.includes(e);return(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-subfacet-chip${t?` active`:``}`,onClick:()=>{Et(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},"aria-pressed":t,children:e===`webchat`?`Web`:`WhatsApp`},e)})]}),(0,I.jsxs)(`div`,{className:`graph-filter-subfacet-group`,role:`group`,"aria-label":`Message sublabel`,children:[(0,I.jsx)(`span`,{className:`graph-filter-subfacet-label`,children:`Message`}),[`UserMessage`,`AssistantMessage`,`WhatsAppMessage`].map(e=>{let t=Dt.includes(e);return(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-subfacet-chip${t?` active`:``}`,onClick:()=>{Ot(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},"aria-pressed":t,children:e===`UserMessage`?`User`:e===`AssistantMessage`?`Assistant`:`WhatsApp`},e)})]})]}),(0,I.jsx)(`div`,{className:`graph-filter-popover-footer`,children:(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-set-default`,onClick:Qt,disabled:!dn||kt,children:kt?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(u,{size:12,className:`spin`}),` Saving…`]}):`Set default view`})})]})]}),(0,I.jsx)(`div`,{className:`graph-meta`,children:ie({inNeighbourhood:nn,searchActive:!!$e,selectedLabelsCount:an.length,topLevelTotal:Oe,nodeCount:Ee})?(0,I.jsx)(`span`,{className:`graph-meta-count`,children:ae(Ee,Oe)}):Ee>0&&(0,I.jsxs)(`span`,{className:`graph-meta-count`,children:[Ee,` node`,Ee===1?``:`s`]})})]}),xe.length>1&&(0,I.jsx)(Ue,{viewStack:xe}),$e&<===`bm25`&&!rt&&(0,I.jsx)(`div`,{className:`graph-error-banner graph-search-degraded`,role:`status`,children:`Vector ranking unavailable — showing keyword-only results.`}),rt&&(0,I.jsxs)(`div`,{className:`data-error graph-error-banner`,children:[`Search unavailable: `,rt]}),$e&&dt>0&&!pt&&!rt&&(0,I.jsxs)(`button`,{type:`button`,className:`graph-search-suppressed`,onClick:()=>mt(!0),children:[dt,` low-confidence match`,dt===1?``:`es`,` hidden — show all`]}),$e&&pt&&!rt&&(0,I.jsx)(`button`,{type:`button`,className:`graph-search-suppressed`,onClick:()=>mt(!1),children:`Showing all matches — hide low-confidence`}),tt&&tt.length===0&&!rt&&(0,I.jsx)(`div`,{className:`graph-search-status`,children:`No matches in your graph.`}),(0,I.jsxs)(`div`,{className:`graph-canvas-wrap`,children:[Ce&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay`,children:[(0,I.jsx)(u,{size:20,className:`spin`}),` Loading your graph…`]}),M&&!Ce&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay graph-canvas-error`,children:[(0,I.jsx)(`p`,{children:M}),(0,I.jsx)(`button`,{type:`button`,className:`data-btn`,onClick:()=>{N(null),gt(e=>e+1)},children:`Retry`})]}),we&&!Ce&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay graph-canvas-error`,children:[(0,I.jsxs)(`p`,{children:[`Refine your filter — `,(0,I.jsx)(`strong`,{children:we.matched}),` matches exceed the 2000 cap.`]}),(0,I.jsx)(`p`,{className:`graph-canvas-hint`,children:`Pick a more specific label combination, or narrow your brand's data.`})]}),!Ce&&!M&&!we&&Ee===0&&!nn&&an.length===0&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay`,children:[(0,I.jsx)(h,{size:20}),(0,I.jsx)(`p`,{children:`No nodes in your graph yet.`})]}),!Ce&&!M&&!we&&Ee===0&&!nn&&an.length>0&&(0,I.jsx)(`div`,{className:`graph-canvas-overlay`,children:(0,I.jsxs)(`p`,{children:[`No `,an.join(`, `),` nodes in your graph yet.`]})}),(0,I.jsx)(`div`,{ref:f,className:`graph-canvas`}),(0,I.jsx)(`div`,{ref:de,className:`graph-marquee`,"aria-hidden":`true`}),Ee>0&&(0,I.jsx)(`div`,{ref:ne,className:`graph-trash-drop-zone${Ge?` is-hover`:``}${qe?` is-error`:``}`,"aria-hidden":`true`,children:(0,I.jsx)(r,{size:18})}),Ye&&(0,I.jsxs)(`div`,{className:`graph-drag-error-banner`,role:`alert`,children:[(0,I.jsx)(`span`,{children:Ye}),(0,I.jsx)(`button`,{type:`button`,className:`graph-drag-error-dismiss`,onClick:()=>Xe(null),"aria-label":`Dismiss`,children:(0,I.jsx)(s,{size:14})})]})]}),ze&&(0,I.jsx)(Ve,{node:ze,edges:x.current,nodesById:v.current,adminFetch:i,onClose:()=>{Be(null);try{p.current?.unselectAll()}catch{}},onRestored:$t,onTrashed:en}),Ee>0&&Nt.length>0&&(0,I.jsx)(`div`,{className:`graph-legend`,children:Nt.map(e=>(0,I.jsxs)(`div`,{className:`graph-legend-item`,children:[(0,I.jsx)(`span`,{className:`graph-legend-swatch`,style:{backgroundColor:(0,b.colourForLabel)(e)}}),(0,I.jsx)(`span`,{children:e})]},e))})]})}function Ve({node:e,edges:t,nodesById:n,adminFetch:i,onClose:a,onRestored:o,onTrashed:c}){let l=Object.entries(e.properties).filter(([,e])=>e!=null),d=t.filter(t=>t.from===e.id||t.to===e.id),[f,p]=(0,D.useState)(!1),[m,h]=(0,D.useState)(null),[g,_]=(0,D.useState)(!1),[y,b]=(0,D.useState)(null);(0,D.useEffect)(()=>{p(!1),h(null),_(!1),b(null)},[e.id]);let x=(0,D.useCallback)(()=>{p(!0),h(null),i(`/api/admin/graph-restore`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e.id})}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);o()}).catch(e=>{h(e instanceof Error?e.message:String(e)),p(!1)})},[e.id,o,i]),S=(0,D.useCallback)(()=>{_(!0),b(null),i(`/api/admin/graph-delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e.id,by:`graph-side-panel-trash`})}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);c()}).catch(e=>{b(e instanceof Error?e.message:String(e)),_(!1)})},[e.id,c,i]);return(0,I.jsxs)(`aside`,{className:`graph-side-panel${e.trashed?` graph-side-panel-trashed`:``}`,children:[(0,I.jsxs)(`header`,{className:`graph-side-header`,children:[(0,I.jsx)(`div`,{children:(()=>{if(e.labels.some(e=>xe.has(e))){let t=(0,be.pickDisplayName)(e),n=e.properties.createdAt,r=typeof n==`string`?n:``,i=r?(0,be.formatRunTimestamp)(r):null,a=e.labels.join(` · `)+(e.trashed?` · Trashed`:``)+` · ${e.id}`;return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`h2`,{className:`graph-side-name`,title:t,children:t}),i&&(0,I.jsx)(`div`,{className:`graph-side-created`,children:i}),(0,I.jsx)(`div`,{className:`graph-side-meta`,children:a})]})}return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`graph-side-labels`,children:[e.labels.join(` · `),e.trashed?` · Trashed`:``]}),(0,I.jsx)(`div`,{className:`graph-side-id`,children:e.id})]})})()}),(0,I.jsx)(`button`,{type:`button`,className:`graph-side-close`,onClick:a,"aria-label":`Close`,children:(0,I.jsx)(s,{size:14})})]}),e.trashed&&(0,I.jsxs)(`dl`,{className:`graph-side-props graph-side-trash-meta`,children:[(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:`trashedAt`}),(0,I.jsx)(`dd`,{children:Ke(e.properties.trashedAt)})]}),(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:`trashedBy`}),(0,I.jsx)(`dd`,{children:Ke(e.properties.trashedBy)})]})]}),(0,I.jsxs)(`dl`,{className:`graph-side-props`,children:[l.length===0&&(0,I.jsx)(`div`,{className:`graph-side-empty`,children:`No properties.`}),l.map(([e,t])=>(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:e}),(0,I.jsx)(`dd`,{children:Ke(t)})]},e))]}),d.length>0&&(0,I.jsxs)(`section`,{className:`graph-side-edges`,children:[(0,I.jsxs)(`h3`,{className:`graph-side-edges-heading`,children:[`Connections (`,d.length,`)`]}),d.map(t=>{let r=t.from===e.id,i=r?t.to:t.from,a=n.get(i),o=a?(0,be.pickShortLabel)(a):i,s=r?`→`:`←`,c=Object.entries(t.properties??{}).filter(([,e])=>e!=null&&e!==``);return(0,I.jsxs)(`div`,{className:`graph-side-edge`,children:[(0,I.jsxs)(`div`,{className:`graph-side-edge-header`,children:[(0,I.jsx)(`span`,{className:`graph-side-edge-type`,children:t.type}),(0,I.jsx)(`span`,{className:`graph-side-edge-arrow`,children:s}),(0,I.jsx)(`span`,{className:`graph-side-edge-other`,title:o,children:o})]}),c.length>0&&(0,I.jsx)(`dl`,{className:`graph-side-edge-props`,children:c.map(([e,t])=>(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:e}),(0,I.jsx)(`dd`,{children:Ke(t)})]},e))})]},t.id)})]}),e.trashed&&(0,I.jsxs)(`footer`,{className:`graph-side-footer`,children:[!f&&!m&&(0,I.jsxs)(`button`,{type:`button`,className:`graph-side-restore`,onClick:x,children:[(0,I.jsx)(v,{size:14}),` Restore`]}),f&&(0,I.jsx)(`div`,{className:`graph-delete-confirm`,children:(0,I.jsxs)(`p`,{children:[(0,I.jsx)(u,{size:14,className:`spin`}),` Restoring…`]})}),m&&(0,I.jsxs)(`div`,{className:`graph-delete-confirm graph-delete-confirm-error`,children:[(0,I.jsxs)(`p`,{children:[`Restore failed: `,m]}),(0,I.jsxs)(`div`,{className:`graph-delete-confirm-buttons`,children:[(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-cancel`,onClick:()=>{h(null)},children:`Close`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-do`,onClick:x,children:`Retry`})]})]})]}),!e.trashed&&(0,I.jsxs)(`footer`,{className:`graph-side-footer`,children:[!g&&!y&&(0,I.jsxs)(`button`,{type:`button`,className:`graph-side-trash`,onClick:S,children:[(0,I.jsx)(r,{size:14}),` Trash`]}),g&&(0,I.jsx)(`div`,{className:`graph-delete-confirm`,children:(0,I.jsxs)(`p`,{children:[(0,I.jsx)(u,{size:14,className:`spin`}),` Trashing…`]})}),y&&(0,I.jsxs)(`div`,{className:`graph-delete-confirm graph-delete-confirm-error`,children:[(0,I.jsxs)(`p`,{children:[`Trash failed: `,y]}),(0,I.jsxs)(`div`,{className:`graph-delete-confirm-buttons`,children:[(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-cancel`,onClick:()=>{b(null)},children:`Close`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-do`,onClick:S,children:`Retry`})]})]})]})]})}var He=class extends Error{body;constructor(e){super(e.error),this.body=e}};function Ue({viewStack:e}){let t=e.map(e=>e.kind===`filter`?`Filter`:e.rootLabel??`Node`);return(0,I.jsx)(`div`,{className:`graph-breadcrumb`,role:`navigation`,"aria-label":`Graph navigation breadcrumb`,children:t.map((e,n)=>(0,I.jsxs)(`span`,{className:`graph-breadcrumb-item`,children:[n>0&&(0,I.jsx)(`span`,{className:`graph-breadcrumb-separator`,"aria-hidden":`true`,children:`›`}),(0,I.jsx)(`span`,{className:`graph-breadcrumb-label${n===t.length-1?` is-current`:``}`,children:e})]},n))})}function We(e,t){let n=`[graph-page] ${e} ${Object.entries(t).map(([e,t])=>`${e}=${String(t)}`).join(` `)}`;try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-nav`,msg:n}),keepalive:!0}).catch(()=>{})}catch{}}function Ge(e){let t=t=>{let n=e[t];if(n&&typeof n==`object`&&`low`in n){let e=n.low;return typeof e==`number`?e:null}return null},n=t(`year`),r=t(`month`),i=t(`day`);if(n===null||r===null||i===null)return null;let a=`${String(n).padStart(4,`0`)}-${String(r).padStart(2,`0`)}-${String(i).padStart(2,`0`)}`;if(!(`hour`in e))return a;let o=t(`hour`),s=t(`minute`),c=t(`second`);return o===null||s===null||c===null?a:`${a} ${String(o).padStart(2,`0`)}:${String(s).padStart(2,`0`)}:${String(c).padStart(2,`0`)}`}function Ke(e){if(e==null)return``;if(Array.isArray(e))return e.length>8?`[${e.length} items]`:e.map(String).join(`, `);if(typeof e==`object`){if(`year`in e&&`month`in e&&`day`in e&&typeof e.year==`object`){let t=Ge(e);if(t)return t}return JSON.stringify(e)}return String(e)}(0,E.createRoot)(document.getElementById(`root`)).render((0,I.jsx)(ze,{}));
|
|
51
|
+
`)}var De={solver:`barnesHut`,barnesHut:{gravitationalConstant:-2e3,centralGravity:.4,springLength:170,springConstant:.04},stabilization:{iterations:1e3}},Oe=220,ke=3;function Ae(e){if(!(e.nodes.length<=5))return{physics:De,nodePositions:new Map};let t=new Map,n=(ke-1)*Oe/2,r=(Math.ceil(e.nodes.length/ke)-1)*Oe/2;for(let i=0;i<e.nodes.length;i++){let a=i%ke,o=Math.floor(i/ke);t.set(e.nodes[i].id,{x:a*Oe-n,y:o*Oe-r})}return{physics:!1,nodePositions:t}}function je(e,t){let n=!1,r=0;e.once(`stabilizationIterationsDone`,()=>{n=e.physics?.stabilized===!0,r=e.physics?.stabilizationIterations??0,t.dev&&(t.log??(e=>console.error(e)))(`[graph-page] stabilization-done iterations=${r} minVelocityReached=${n} physics=${n?`will-freeze`:`live-loop`}`)}),e.once(`stabilized`,i=>{e.setOptions({physics:!1}),t.report?.({convergedInBudget:n,iterations:i?.iterations??r})})}var I=f();function Me(e){return e<.7?`compact`:e<1.3?`wrapped`:`detailed`}var Ne=150,Pe=`#FBBF24`;function Fe(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}var Ie=`maxy-graph-search-limit-v1`,Le=250,Re=1200;function ze(){let[e,t]=(0,D.useState)(null),[r,i]=(0,D.useState)(!1),[a,o]=(0,D.useState)(void 0),[s,c]=(0,D.useState)(null),[l,f]=(0,D.useState)(void 0),[p,m]=(0,D.useState)(null),[h,v]=(0,D.useState)(null),y=(0,D.useMemo)(()=>typeof window>`u`?null:O(window.location.search),[]),b=(0,D.useMemo)(()=>y?.kind===`focus`?{nodeId:y.nodeId,nodeLabel:y.nodeLabel}:null,[y]),x=(0,D.useMemo)(()=>y?.kind===`labels`?y.labels:null,[y]);(0,D.useEffect)(()=>{b&&We(`deep-link`,{nodeId:b.nodeId.length>16?b.nodeId.slice(0,16)+`…`:b.nodeId,label:b.nodeLabel??``})},[b]),(0,D.useEffect)(()=>{!x||x.length===0||We(`label-seed`,{label:x[0]})},[x]),(0,D.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!n){t(null),i(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(async r=>{if(!e){if(r.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`;return}if(r.ok)try{let e=await r.json();typeof e.businessName==`string`&&o(e.businessName),e.sessionId!==void 0&&c(e.sessionId??null),v(e.role??null),f(e.userName===void 0?null:e.userName),m(e.avatar??null)}catch{}t(n),i(!0)}}).catch(()=>{e||(t(n),i(!0))}),()=>{e=!0}},[]);let S=(0,D.useCallback)(()=>{try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`},[]),[ee,C]=(0,D.useState)(!1),te=(0,D.useCallback)(async()=>{C(!0);try{let e=await _();if(e){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`}return e}finally{C(!1)}},[]);return r?e?(0,I.jsx)(d,{cacheKey:e,surface:`graph`,onSessionExpired:({code:e,path:t})=>{console.warn(`[admin-auth] outcome=session-expired-redirect code=${e} path=${t} surface=graph`);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`},children:(0,I.jsx)(g,{cacheKey:e,businessName:a,sessionId:s,onLogout:S,onDisconnect:te,disconnecting:ee,userName:l,userAvatar:p,role:h,children:(0,I.jsxs)(`div`,{className:`data-page graph-page`,children:[(0,I.jsx)(`header`,{className:`data-header`,children:(0,I.jsxs)(`h1`,{className:`data-title`,children:[(0,I.jsx)(n,{size:18}),` Graph`]})}),(0,I.jsx)(`main`,{className:`graph-main`,children:(0,I.jsx)(Be,{cacheKey:e,initialFocus:b,initialLabels:x})})]})})}):(0,I.jsxs)(`div`,{className:`data-page`,children:[(0,I.jsx)(`header`,{className:`data-header`,children:(0,I.jsxs)(`h1`,{className:`data-title`,children:[(0,I.jsx)(n,{size:18}),` Graph`]})}),(0,I.jsxs)(`div`,{className:`data-empty`,children:[(0,I.jsx)(`p`,{children:`You are not signed in.`}),(0,I.jsxs)(`p`,{children:[`Open the `,(0,I.jsx)(`a`,{href:`/`,className:`data-link`,children:`main admin page`}),` and log in, then return here.`]})]})]}):(0,I.jsx)(`div`,{className:`data-page`,children:(0,I.jsxs)(`div`,{className:`data-loading`,children:[(0,I.jsx)(u,{size:18,className:`spin`}),` Loading…`]})})}function Be({cacheKey:e,initialFocus:t=null,initialLabels:n=null}){let{adminFetch:i,cacheKey:l,sessionRefetchNonce:d}=c({initialCacheKey:e,surface:`graph`}),f=(0,D.useRef)(null),p=(0,D.useRef)(null),g=(0,D.useRef)(null),_=(0,D.useRef)(null),v=(0,D.useRef)(new Map),x=(0,D.useRef)([]),w=(0,D.useRef)(null),ne=(0,D.useRef)(null),E=(0,D.useRef)(null),O=(0,D.useRef)([]),de=(0,D.useRef)(null),fe=(0,D.useRef)(null),_e=(0,D.useRef)(null),be=(0,D.useRef)(null),[xe,A]=(0,D.useState)([{kind:`filter`,selectedLabels:[],includeTrashed:!1,includeAgentActions:!1}]);(0,D.useEffect)(()=>{t?.nodeId&&A(e=>{let n=e[e.length-1];return n.kind===`neighbourhood`&&n.rootElementId===t.nodeId?e:[e[0],{kind:`neighbourhood`,rootElementId:t.nodeId,rootLabel:t.nodeLabel}]})},[t?.nodeId,t?.nodeLabel]);let Se=n&&n.length>0?[...n].sort().join(`,`):null;(0,D.useEffect)(()=>{Se&&(jt.current=!0,A([{kind:`filter`,selectedLabels:Se.split(`,`),includeTrashed:!1,includeAgentActions:!1}]))},[Se]);let[Ce,j]=(0,D.useState)(!1),[M,N]=(0,D.useState)(null),[we,Te]=(0,D.useState)(null),[Ee,De]=(0,D.useState)(0),[Oe,ke]=(0,D.useState)(null),[ze,Be]=(0,D.useState)(null),[Ge,Ke]=(0,D.useState)(!1),[qe,Je]=(0,D.useState)(!1),[Ye,Xe]=(0,D.useState)(null),[Ze,Qe]=(0,D.useState)(``),[$e,et]=(0,D.useState)(``),[tt,nt]=(0,D.useState)(null),[rt,it]=(0,D.useState)(null),[at,ot]=(0,D.useState)(()=>{if(typeof window>`u`)return 100;let e=window.localStorage.getItem(Ie);return e?ve(e):100}),[st,ct]=(0,D.useState)(at),[lt,ut]=(0,D.useState)(`hybrid`),[dt,ft]=(0,D.useState)(0),[pt,mt]=(0,D.useState)(!1),[ht,gt]=(0,D.useState)(0),[_t,vt]=(0,D.useState)(0),[yt,bt]=(0,D.useState)([]),[xt,St]=(0,D.useState)({labels:[],includeTrashed:!1}),[Ct,wt]=(0,D.useState)(!1),[Tt,Et]=(0,D.useState)([]),[Dt,Ot]=(0,D.useState)([]),[kt,At]=(0,D.useState)(!1),jt=(0,D.useRef)(!1),Mt=(0,D.useRef)(null),Nt=(0,D.useMemo)(()=>{let e=new Set;for(let t of v.current.values()){let n=(0,b.pickDisplayLabel)(t.labels);n&&e.add(n)}return[...e].sort()},[Ee]);(0,D.useEffect)(()=>{let e=!1,t=i(`/api/admin/graph-labels-in-graph`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-labels-in-graph`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}return{labels:[]}}),n=i(`/api/admin/graph-default-view`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-default-view`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}return{labels:[],includeTrashed:!1}});return Promise.all([t,n]).then(([t,n])=>{if(!e&&(bt(t.labels),St(n),!jt.current)){jt.current=!0;let e=new Set(t.labels.map(e=>e.label)),r=n.labels.filter(t=>e.has(t));(r.length>0||n.includeTrashed)&&A(e=>[{kind:`filter`,selectedLabels:r,includeTrashed:n.includeTrashed,includeAgentActions:!1},...e.slice(1)])}}),()=>{e=!0}},[l,d,i]);let Pt=xe[0].kind===`filter`?xe[0].includeAgentActions:!1;(0,D.useEffect)(()=>{if(!jt.current)return;let e=!1;return i(`/api/admin/graph-labels-in-graph?includeAgentActions=${Pt?`1`:`0`}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).then(t=>{e||bt(t.labels)}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-labels-in-graph-refetch`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}}),()=>{e=!0}},[l,d,Pt,_t,i]),(0,D.useEffect)(()=>{if(!Ct)return;let e=e=>{Mt.current&&(Mt.current.contains(e.target)||wt(!1))},t=e=>{e.key===`Escape`&&wt(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[Ct]);let Ft=(0,D.useCallback)(()=>{if(g.current)try{g.current.clear()}catch{}if(_.current)try{_.current.clear()}catch{}},[]),It=(0,D.useCallback)((e,t)=>{Xe(null),i(`/api/admin/graph-delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e,by:`graph-drag-trash`})}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);Be(null);try{p.current?.unselectAll()}catch{}A(e=>[ue(e)]),gt(e=>e+1),pe(`graph-trash`)}).catch(n=>{let r=n instanceof Error?n.message:String(n);Xe(`Failed to delete: ${r}`),Je(!0),window.setTimeout(()=>Je(!1),Re);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-drag-delete`,elementId:e,label:t,msg:r}),keepalive:!0}).catch(()=>{})}catch{}})},[i]),Lt=(0,D.useCallback)(e=>{Xe(null);let t=e.length;Promise.allSettled(e.map(e=>i(`/api/admin/graph-delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e,by:`graph-drag-trash`})}).then(async t=>{let n=await t.json().catch(()=>({error:`HTTP ${t.status}`}));if(!t.ok)throw Error(n.error??`HTTP ${t.status}`);return e}))).then(e=>{let n=e.filter(e=>e.status===`rejected`);Be(null);try{p.current?.unselectAll()}catch{}if(A(e=>[ue(e)]),gt(e=>e+1),pe(`graph-trash`),n.length>0){let e=t-n.length;Xe(e===0?`Failed to delete ${t} node${t===1?``:`s`}.`:`Deleted ${e} of ${t}; ${n.length} failed.`),Je(!0),window.setTimeout(()=>Je(!1),Re);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-drag-delete-batch`,total:t,failed:n.length}),keepalive:!0}).catch(()=>{})}catch{}}})},[i]),Rt=xe[xe.length-1],zt=(0,D.useMemo)(()=>le(xe),[xe]),Bt=(0,D.useRef)(zt);(0,D.useEffect)(()=>{Bt.current=zt},[zt]);let Vt=(0,D.useRef)(xe);(0,D.useEffect)(()=>{Vt.current=xe},[xe]),(0,D.useEffect)(()=>{if($e){w.current?.abort(),w.current=null;return}let e=window.setTimeout(()=>{w.current?.abort();let e=new AbortController;w.current=e,j(!0),N(null),Te(null),i(k(Rt,{includeAgentActions:ue(xe).includeAgentActions,search:null,channel:Tt,messageSublabel:Dt}),{signal:e.signal}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(e.status===413)throw new He(t);if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(t=>{e.signal.aborted||(v.current=new Map(t.nodes.map(e=>[e.id,e])),De(t.nodes.length),ke(typeof t.total==`number`?t.total:null),Ht(t.nodes,t.edges))}).catch(t=>{if(!e.signal.aborted){if(t instanceof He){Te(t.body),De(0),v.current=new Map,Ft();return}N(t instanceof Error?t.message:String(t))}}).finally(()=>{e.signal.aborted||j(!1)})},Le);return()=>{window.clearTimeout(e)}},[l,zt,ht,d,$e,st,Tt,Dt]),(0,D.useEffect)(()=>()=>{w.current?.abort(),p.current?.destroy(),p.current=null,be.current!==null&&(clearTimeout(be.current),be.current=null)},[]);let Ht=(0,D.useCallback)((e,t)=>{if(!f.current)return;x.current=t;let n=new Set([`Message`,`UserMessage`,`AssistantMessage`]),r=e=>e.labels.some(e=>n.has(e)),i=new Map,a=e.filter(r);if(a.length>0){let e=new Set(a.map(e=>e.id)),n=new Map,r=new Set;for(let i of t)i.type===`NEXT`&&e.has(i.from)&&e.has(i.to)&&(n.set(i.from,i.to),r.add(i.to));let o=[],s=new Set;for(let e of a){if(r.has(e.id))continue;let t=e.id;for(;t&&!s.has(t);)s.add(t),o.push(t),t=n.get(t)}for(let e of a)s.has(e.id)||(o.push(e.id),s.add(e.id));let c=f.current?.clientWidth??1200,l=Math.max(c-160,300),u=Math.max(Math.floor(l/150),2);o.forEach((e,t)=>{let n=t%u,r=Math.floor(t/u);i.set(e,{x:n*150,y:r*90})})}let o=e.map(e=>{let t=e.labels[0]??`Unknown`,n=(0,b.resolveNodeColour)(e.labels);n.displayLabel;let r=n.colour;n.driftCandidates;let a=i.get(e.id),o=a?{x:a.x,y:a.y,physics:!1}:{};return e.trashed?{id:e.id,label:P(e,1),title:F(e),color:{background:`${r}40`,border:r},borderWidth:2,shapeProperties:{borderDashes:[6,4]},group:t,...o}:{id:e.id,label:P(e,1),title:F(e),color:r,group:t,...o}}),s=new Set(o.map(e=>e.id)),c=t.filter(e=>e.type!==`PART_OF`||s.has(e.from)&&s.has(e.to)).map(e=>({id:e.id,from:e.from,to:e.to,label:e.type})),l=Ae({nodes:e,edges:t});g.current=new re.DataSet(l.nodePositions.size>0?o.map(e=>{if(e.x!==void 0||e.y!==void 0)return e;let t=l.nodePositions.get(e.id);return t?{...e,x:t.x,y:t.y,physics:!1}:e}):o),_.current=new re.DataSet(c);let u={autoResize:!0,layout:{improvedLayout:!1,randomSeed:Fe(Bt.current)},physics:l.physics===!1?!1:{solver:l.physics.solver,barnesHut:l.physics.barnesHut,stabilization:l.physics.stabilization},nodes:{shape:`dot`,size:18,font:{color:`#1F2937`,size:12,face:`DM Sans, sans-serif`},scaling:{label:{enabled:!0,min:12,max:30,drawThreshold:0}},borderWidth:0,chosen:{node:e=>{e.size=20,e.borderWidth=3,e.borderColor=`#0F172A`,e.shadow=!0,e.shadowColor=`rgba(15, 23, 42, 0.55)`,e.shadowSize=8,e.shadowX=0,e.shadowY=0},label:e=>{e.size=14}}},edges:{arrows:{to:{enabled:!0,scaleFactor:.4}},color:{color:`#CBD5E1`,highlight:`#475569`},font:{color:`#64748B`,size:9,face:`DM Sans, sans-serif`,align:`middle`,strokeWidth:0},smooth:{enabled:!0,type:`continuous`,roundness:.4},width:1,chosen:{edge:!0,label:!1}},interaction:{hover:!0,tooltipDelay:150,multiselect:!0}};try{p.current?.destroy(),be.current!==null&&(clearTimeout(be.current),be.current=null),_e.current=null;let e=new T.Network(f.current,{nodes:g.current,edges:_.current},u);p.current=e,l.physics!==!1&&je(e,{dev:!1,report:({convergedInBudget:e,iterations:t})=>{try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`event`,source:`graph-freeze`,convergedInBudget:e,iterations:t}),keepalive:!0}).catch(()=>{})}catch{}}}),e.on(`zoom`,()=>{be.current!==null&&clearTimeout(be.current),be.current=setTimeout(()=>{be.current=null;let e=p.current,t=g.current;if(!e||!t)return;let n;try{n=e.getScale()}catch{return}let r=Me(n);if(r===_e.current)return;_e.current=r;let i=[];for(let e of v.current.values()){if(!e.labels[0])continue;let{colour:t}=(0,b.resolveNodeColour)(e.labels),r=e.trashed?{background:`${t}40`,border:t}:t;i.push({id:e.id,label:P(e,n),color:r})}i.length>0&&t.update(i),console.error(`[graph-page] zoom-tier scale=${n.toFixed(3)} tier=${r} nodes=${i.length}`)},Ne)}),e.on(`click`,e=>{let t=e.nodes[0];if(!t)return;let n=v.current.get(t);if(!n)return;if(me(n)===`skip-trashed`){Be(n);return}let r=Vt.current[Vt.current.length-1];if(r.kind===`neighbourhood`&&r.rootElementId===t){Be(e=>e?.id===t?null:n);return}Be(null);let i={kind:`neighbourhood`,rootElementId:t,rootLabel:n.labels[0]??null};A(e=>{let n=oe(e,i),r=n.length-1;return n.length>e.length&&We(`nav-push`,{depth:r,kind:i.kind,rootElementId:t}),n.length===10&&e.length===10&&We(`view-stack-cap-hit`,{depth:10,rootElementId:t}),n})}),e.on(`deselectNode`,()=>{Be(null)});let t=e=>{let t=f.current,n=ne.current;if(!t||!n)return!1;let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=r.left+e.x,o=r.top+e.y;return a>=i.left&&a<=i.right&&o>=i.top&&o<=i.bottom},n=f.current?.parentElement??null;e.on(`dragStart`,e=>{if(e.nodes.length===0){E.current=null,O.current=[];return}O.current=[...e.nodes],E.current=e.nodes[0],n?.classList.add(`graph-dragging`)}),e.on(`dragging`,e=>{if(O.current.length===0)return;let n=t(e.pointer.DOM);Ke(e=>e===n?e:n)}),e.on(`dragEnd`,e=>{let r=O.current;if(O.current=[],E.current=null,Ke(!1),n?.classList.remove(`graph-dragging`),r.length!==0&&t(e.pointer.DOM))if(r.length===1){let e=v.current.get(r[0])?.labels[0]??`Unknown`;It(r[0],e)}else Lt(r)})}catch(e){let t=e instanceof Error?e.message:String(e);N(`Visualisation failed to load: ${t}`);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-render`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}}},[]);(0,D.useEffect)(()=>{let e=f.current;if(!e)return;let t=t=>{let n=fe.current,r=de.current,i=e.parentElement;if(!n||!r||!i)return;let a=i.getBoundingClientRect(),o=Math.min(n.clientX,t.clientX)-a.left,s=Math.min(n.clientY,t.clientY)-a.top,c=Math.max(n.clientX,t.clientX)-a.left,l=Math.max(n.clientY,t.clientY)-a.top;r.style.left=`${o}px`,r.style.top=`${s}px`,r.style.width=`${c-o}px`,r.style.height=`${l-s}px`},n=r=>{document.removeEventListener(`mousemove`,t,!0),document.removeEventListener(`mouseup`,n,!0);let i=fe.current;fe.current=null;let a=de.current;a&&(a.style.display=`none`);let o=p.current;if(!i||!o)return;let s=e.getBoundingClientRect(),c=i.clientX-s.left,l=i.clientY-s.top,u=r.clientX-s.left,d=r.clientY-s.top,f=Math.min(c,u),m=Math.min(l,d),h=Math.max(c,u),g=Math.max(l,d);if(h-f<3&&g-m<3)return;let _=o.getPositions(),v=[];for(let[e,t]of Object.entries(_)){let n=o.canvasToDOM(t);n.x>=f&&n.x<=h&&n.y>=m&&n.y<=g&&v.push(e)}try{o.selectNodes(v,!1)}catch{}},r=r=>{if(!r.shiftKey||r.button!==0)return;let i=p.current,a=e.parentElement;if(!i||!a)return;let o=e.getBoundingClientRect(),s={x:r.clientX-o.left,y:r.clientY-o.top};if(i.getNodeAt(s))return;r.preventDefault(),r.stopImmediatePropagation(),fe.current={clientX:r.clientX,clientY:r.clientY};let c=de.current,l=a.getBoundingClientRect();c&&(c.style.display=`block`,c.style.left=`${r.clientX-l.left}px`,c.style.top=`${r.clientY-l.top}px`,c.style.width=`0px`,c.style.height=`0px`),document.addEventListener(`mousemove`,t,!0),document.addEventListener(`mouseup`,n,!0)};return e.addEventListener(`mousedown`,r,!0),()=>{e.removeEventListener(`mousedown`,r,!0),document.removeEventListener(`mousemove`,t,!0),document.removeEventListener(`mouseup`,n,!0)}},[]),(0,D.useEffect)(()=>{let e=Ze.trim();if(!e){et(``),nt(null),it(null),ut(`hybrid`),ft(0),mt(!1),p.current?.unselectAll();return}mt(!1);let t=setTimeout(()=>et(e),300);return()=>clearTimeout(t)},[Ze]),(0,D.useEffect)(()=>{let e=setTimeout(()=>{let e=ve(at);ct(e);try{window.localStorage.setItem(Ie,String(e))}catch{}},200);return()=>clearTimeout(e)},[at]);let Ut=(0,D.useCallback)(e=>{let t=p.current,n=g.current;if(!t||!n)return;let{updates:r,inWindow:i}=he(e,v.current,b.resolveNodeColour,Pe);r.length>0&&(n.update(r),t.fit({nodes:i,animation:{duration:400,easingFunction:`easeInOutQuad`}}))},[]),Wt=ue(xe);(0,D.useEffect)(()=>{if(!$e)return;let e=!1;return it(null),i(ye($e,Wt.selectedLabels,st,pt)).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(t=>{if(e)return;nt(t.results);let n=t.mode===`bm25`?`bm25`:`hybrid`;if(ut(n),ft(typeof t.suppressed==`number`?t.suppressed:0),n===`bm25`)try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-page`,msg:`[graph-page] search-result-degraded mode=bm25 query="${$e}"`}),keepalive:!0}).catch(()=>{})}catch{}let{nodes:r,edges:i}=ge(t.results,Wt.selectedLabels);v.current=new Map(r.map(e=>[e.id,e])),De(r.length),Te(null),Ht(r,i),Ut(t.results),console.info(`[graph-page] search-applied view=${Rt.kind} q="${$e}" labels=${Wt.selectedLabels.join(`|`)} hits=${r.length}`)}).catch(t=>{e||it(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[$e,st,l,d,i,Ut,Rt.kind,Wt.selectedLabels,Ht,pt]);let Gt=(0,D.useCallback)(e=>{A(t=>{let n=ue(t),r=new Set(n.selectedLabels);return r.has(e)?r.delete(e):r.add(e),ce({kind:`filter`,selectedLabels:[...r].sort(),includeTrashed:n.includeTrashed,includeAgentActions:n.includeAgentActions})})},[]),Kt=(0,D.useCallback)(()=>{A(e=>{let t=ue(e);return ce({...t,includeTrashed:!t.includeTrashed})})},[]),qt=(0,D.useCallback)(()=>{A(e=>{let t=ue(e);return ce({...t,includeAgentActions:!t.includeAgentActions})})},[]),Jt=(0,D.useCallback)(()=>{Qe(``),et(``),nt(null),it(null),ut(`hybrid`),ft(0),mt(!1);try{p.current?.unselectAll()}catch{}},[]),Yt=(0,D.useCallback)(()=>{A(()=>ce({kind:`filter`,selectedLabels:[],includeTrashed:!1,includeAgentActions:!1}))},[]),Xt=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}A(e=>{let t=se(e);return t!==e&&We(`nav-pop`,{depth:t.length-1}),t})},[]),Zt=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}A(e=>e.length<=1?e:(We(`nav-home`,{depth:0,popped:e.length-1}),[ue(e)]))},[]),Qt=(0,D.useCallback)(()=>{let e=ue(xe),t={labels:[...e.selectedLabels].sort(),includeTrashed:e.includeTrashed};At(!0),i(`/api/admin/graph-default-view`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)}).then(async e=>{if(!e.ok){let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));throw Error(t.error??`HTTP ${e.status}`)}St(t)}).catch(e=>{let t=e instanceof Error?e.message:String(e);try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-default-view-save`,msg:t}),keepalive:!0}).catch(()=>{})}catch{}}).finally(()=>At(!1))},[i,xe]),$t=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}gt(e=>e+1),pe(`graph-restore`)},[]),en=(0,D.useCallback)(()=>{Be(null);try{p.current?.unselectAll()}catch{}A(e=>[ue(e)]),gt(e=>e+1),pe(`graph-trash`)},[]),tn=(0,D.useCallback)(()=>{gt(e=>e+1),vt(e=>e+1)},[]),nn=Rt.kind===`neighbourhood`,rn=ue(xe),an=rn.selectedLabels,on=rn.includeTrashed,sn=rn.includeAgentActions,cn=Tt.join(`,`),ln=Dt.join(`,`),un=an.includes(`AdminConversation`)||an.includes(`PublicConversation`);(0,D.useEffect)(()=>{un&&console.info(`[graph-filter] subfacet-render channel=[${cn}] sublabel=[${ln}]`)},[cn,ln,un]);let dn=(0,D.useMemo)(()=>{if(on!==xt.includeTrashed||an.length!==xt.labels.length)return!0;for(let e=0;e<an.length;e++)if(an[e]!==xt.labels[e])return!0;return!1},[on,an,xt]);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`graph-toolbar`,children:[xe.length>1&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`button`,{type:`button`,className:`graph-home-to-filter graph-home-desktop`,onClick:Zt,title:`Clear breadcrumb — return to filter root`,children:[(0,I.jsx)(C,{size:12}),` Home`]}),(0,I.jsx)(`button`,{type:`button`,className:`graph-home-to-filter graph-home-mobile`,onClick:Zt,"aria-label":`Home`,title:`Clear breadcrumb — return to filter root`,children:(0,I.jsx)(C,{size:14})}),(0,I.jsx)(`button`,{type:`button`,className:`graph-back-to-filter graph-back-desktop`,onClick:Xt,children:`← Back`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-back-to-filter graph-back-mobile`,onClick:Xt,"aria-label":`Back`,children:(0,I.jsx)(a,{size:16})})]}),(0,I.jsxs)(`div`,{className:`data-search-input graph-search-input`,children:[(0,I.jsx)(y,{size:14}),(0,I.jsx)(`input`,{type:`text`,placeholder:`Search nodes…`,value:Ze,onChange:e=>Qe(e.target.value),autoComplete:`off`,spellCheck:!1}),$e&&!tt&&!rt&&(0,I.jsx)(u,{size:14,className:`spin`}),Ze.length>0&&(0,I.jsx)(`button`,{type:`button`,className:`graph-search-clear`,onClick:Jt,"aria-label":`Clear search`,title:`Clear search`,children:(0,I.jsx)(s,{size:14})})]}),$e&&(0,I.jsxs)(`div`,{className:`graph-search-limit`,title:`Show top ${at} matches (1-2000)`,children:[(0,I.jsx)(`label`,{htmlFor:`graph-search-limit-input`,className:`graph-search-limit-label`,children:`Top`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-search-limit-step`,onClick:()=>ot(ve(at-1)),disabled:at<=1,"aria-label":`Decrement search limit`,title:`Decrement`,children:(0,I.jsx)(te,{size:12})}),(0,I.jsx)(`input`,{id:`graph-search-limit-input`,type:`number`,min:1,max:2e3,step:1,value:at,onChange:e=>ot(ve(e.target.value)),className:`graph-search-limit-number`,"aria-label":`Maximum search results to render`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-search-limit-step`,onClick:()=>ot(ve(at+1)),disabled:at>=2e3,"aria-label":`Increment search limit`,title:`Increment`,children:(0,I.jsx)(m,{size:12})}),(0,I.jsx)(`input`,{id:`graph-search-limit-slider`,type:`range`,min:1,max:2e3,step:1,value:at,onChange:e=>ot(ve(e.target.value)),"aria-label":`Maximum search results to render (drag for ballpark)`})]}),(0,I.jsx)(`button`,{type:`button`,className:`graph-refresh-button`,onClick:tn,disabled:Ce,"aria-label":`Refresh graph`,title:`Refresh graph`,children:(0,I.jsx)(o,{size:14,className:Ce?`spin`:void 0})}),!nn&&(0,I.jsxs)(`div`,{className:`graph-filter-wrap`,ref:Mt,children:[(0,I.jsxs)(`button`,{type:`button`,className:`graph-filter-toggle${Ct?` is-open`:``}${an.length>0||on||sn?` has-selection`:``}`,onClick:()=>wt(e=>!e),"aria-haspopup":`true`,"aria-expanded":Ct,"aria-label":`Filter node types`,children:[(0,I.jsx)(h,{size:14}),(0,I.jsx)(`span`,{children:`Filter`}),an.length>0&&(0,I.jsx)(`span`,{className:`graph-filter-count`,children:an.length})]}),Ct&&(0,I.jsxs)(`div`,{className:`graph-filter-popover`,role:`dialog`,"aria-label":`Node type filter`,children:[(0,I.jsxs)(`div`,{className:`graph-filter-popover-header`,children:[(0,I.jsxs)(`button`,{type:`button`,className:`graph-toggle-trashed${on?` active`:``}`,onClick:Kt,"aria-pressed":on,title:`Show trashed nodes — restored with Restore button on each node`,children:[(0,I.jsx)(ee,{size:14}),` Show trashed`]}),(an.length>0||on||sn)&&(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-clear`,onClick:Yt,"aria-label":`Clear filter selection`,title:`Clear filter selection`,children:(0,I.jsx)(s,{size:14})})]}),(0,I.jsx)(`div`,{className:`graph-toggle-agent-actions`,title:`Hide ToolCall, StepResult, WorkflowStep, WorkflowRun — agent-execution telemetry. Flip on for audit/debug.`,children:(0,I.jsx)(S,{checked:sn,onChange:qt,label:`Include agent actions`})}),yt.length===0&&(0,I.jsx)(`p`,{className:`graph-filter-popover-empty`,children:`No node types in your graph yet.`}),(0,I.jsx)(`div`,{className:`graph-filter-rows`,role:`group`,"aria-label":`Node type filter`,children:yt.map(({label:e,nodeCount:t})=>{let n=an.includes(e),r=(0,b.colourForLabel)(e);return(0,I.jsxs)(`button`,{type:`button`,className:`graph-filter-row${n?` active`:``}`,onClick:()=>Gt(e),"aria-pressed":n,children:[(0,I.jsx)(`span`,{className:`graph-filter-row-swatch`,style:{backgroundColor:r}}),(0,I.jsx)(`span`,{className:`graph-filter-row-label`,children:e}),(0,I.jsx)(`span`,{className:`graph-filter-row-count`,children:t})]},e)})}),(an.includes(`AdminConversation`)||an.includes(`PublicConversation`))&&(0,I.jsxs)(`div`,{className:`graph-filter-subfacets`,children:[(0,I.jsxs)(`div`,{className:`graph-filter-subfacet-group`,role:`group`,"aria-label":`Conversation channel`,children:[(0,I.jsx)(`span`,{className:`graph-filter-subfacet-label`,children:`Channel`}),[`webchat`,`whatsapp`].map(e=>{let t=Tt.includes(e);return(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-subfacet-chip${t?` active`:``}`,onClick:()=>{Et(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},"aria-pressed":t,children:e===`webchat`?`Web`:`WhatsApp`},e)})]}),(0,I.jsxs)(`div`,{className:`graph-filter-subfacet-group`,role:`group`,"aria-label":`Message sublabel`,children:[(0,I.jsx)(`span`,{className:`graph-filter-subfacet-label`,children:`Message`}),[`UserMessage`,`AssistantMessage`,`WhatsAppMessage`].map(e=>{let t=Dt.includes(e);return(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-subfacet-chip${t?` active`:``}`,onClick:()=>{Ot(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},"aria-pressed":t,children:e===`UserMessage`?`User`:e===`AssistantMessage`?`Assistant`:`WhatsApp`},e)})]})]}),(0,I.jsx)(`div`,{className:`graph-filter-popover-footer`,children:(0,I.jsx)(`button`,{type:`button`,className:`graph-filter-set-default`,onClick:Qt,disabled:!dn||kt,children:kt?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(u,{size:12,className:`spin`}),` Saving…`]}):`Set default view`})})]})]}),(0,I.jsx)(`div`,{className:`graph-meta`,children:ie({inNeighbourhood:nn,searchActive:!!$e,selectedLabelsCount:an.length,topLevelTotal:Oe,nodeCount:Ee})?(0,I.jsx)(`span`,{className:`graph-meta-count`,children:ae(Ee,Oe)}):Ee>0&&(0,I.jsxs)(`span`,{className:`graph-meta-count`,children:[Ee,` node`,Ee===1?``:`s`]})})]}),xe.length>1&&(0,I.jsx)(Ue,{viewStack:xe}),$e&<===`bm25`&&!rt&&(0,I.jsx)(`div`,{className:`graph-error-banner graph-search-degraded`,role:`status`,children:`Vector ranking unavailable — showing keyword-only results.`}),rt&&(0,I.jsxs)(`div`,{className:`data-error graph-error-banner`,children:[`Search unavailable: `,rt]}),$e&&dt>0&&!pt&&!rt&&(0,I.jsxs)(`button`,{type:`button`,className:`graph-search-suppressed`,onClick:()=>mt(!0),children:[dt,` low-confidence match`,dt===1?``:`es`,` hidden — show all`]}),$e&&pt&&!rt&&(0,I.jsx)(`button`,{type:`button`,className:`graph-search-suppressed`,onClick:()=>mt(!1),children:`Showing all matches — hide low-confidence`}),tt&&tt.length===0&&!rt&&(0,I.jsx)(`div`,{className:`graph-search-status`,children:`No matches in your graph.`}),(0,I.jsxs)(`div`,{className:`graph-canvas-wrap`,children:[Ce&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay`,children:[(0,I.jsx)(u,{size:20,className:`spin`}),` Loading your graph…`]}),M&&!Ce&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay graph-canvas-error`,children:[(0,I.jsx)(`p`,{children:M}),(0,I.jsx)(`button`,{type:`button`,className:`data-btn`,onClick:()=>{N(null),gt(e=>e+1)},children:`Retry`})]}),we&&!Ce&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay graph-canvas-error`,children:[(0,I.jsxs)(`p`,{children:[`Refine your filter — `,(0,I.jsx)(`strong`,{children:we.matched}),` matches exceed the 2000 cap.`]}),(0,I.jsx)(`p`,{className:`graph-canvas-hint`,children:`Pick a more specific label combination, or narrow your brand's data.`})]}),!Ce&&!M&&!we&&Ee===0&&!nn&&an.length===0&&(0,I.jsxs)(`div`,{className:`graph-canvas-overlay`,children:[(0,I.jsx)(h,{size:20}),(0,I.jsx)(`p`,{children:`No nodes in your graph yet.`})]}),!Ce&&!M&&!we&&Ee===0&&!nn&&an.length>0&&(0,I.jsx)(`div`,{className:`graph-canvas-overlay`,children:(0,I.jsxs)(`p`,{children:[`No `,an.join(`, `),` nodes in your graph yet.`]})}),(0,I.jsx)(`div`,{ref:f,className:`graph-canvas`}),(0,I.jsx)(`div`,{ref:de,className:`graph-marquee`,"aria-hidden":`true`}),Ee>0&&(0,I.jsx)(`div`,{ref:ne,className:`graph-trash-drop-zone${Ge?` is-hover`:``}${qe?` is-error`:``}`,"aria-hidden":`true`,children:(0,I.jsx)(r,{size:18})}),Ye&&(0,I.jsxs)(`div`,{className:`graph-drag-error-banner`,role:`alert`,children:[(0,I.jsx)(`span`,{children:Ye}),(0,I.jsx)(`button`,{type:`button`,className:`graph-drag-error-dismiss`,onClick:()=>Xe(null),"aria-label":`Dismiss`,children:(0,I.jsx)(s,{size:14})})]})]}),ze&&(0,I.jsx)(Ve,{node:ze,edges:x.current,nodesById:v.current,adminFetch:i,onClose:()=>{Be(null);try{p.current?.unselectAll()}catch{}},onRestored:$t,onTrashed:en}),Ee>0&&Nt.length>0&&(0,I.jsx)(`div`,{className:`graph-legend`,children:Nt.map(e=>(0,I.jsxs)(`div`,{className:`graph-legend-item`,children:[(0,I.jsx)(`span`,{className:`graph-legend-swatch`,style:{backgroundColor:(0,b.colourForLabel)(e)}}),(0,I.jsx)(`span`,{children:e})]},e))})]})}function Ve({node:e,edges:t,nodesById:n,adminFetch:i,onClose:a,onRestored:o,onTrashed:c}){let l=Object.entries(e.properties).filter(([,e])=>e!=null),d=t.filter(t=>t.from===e.id||t.to===e.id),[f,p]=(0,D.useState)(!1),[m,h]=(0,D.useState)(null),[g,_]=(0,D.useState)(!1),[y,b]=(0,D.useState)(null);(0,D.useEffect)(()=>{p(!1),h(null),_(!1),b(null)},[e.id]);let x=(0,D.useCallback)(()=>{p(!0),h(null),i(`/api/admin/graph-restore`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e.id})}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);o()}).catch(e=>{h(e instanceof Error?e.message:String(e)),p(!1)})},[e.id,o,i]),S=(0,D.useCallback)(()=>{_(!0),b(null),i(`/api/admin/graph-delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({elementId:e.id,by:`graph-side-panel-trash`})}).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);c()}).catch(e=>{b(e instanceof Error?e.message:String(e)),_(!1)})},[e.id,c,i]);return(0,I.jsxs)(`aside`,{className:`graph-side-panel${e.trashed?` graph-side-panel-trashed`:``}`,children:[(0,I.jsxs)(`header`,{className:`graph-side-header`,children:[(0,I.jsx)(`div`,{children:(()=>{if(e.labels.some(e=>xe.has(e))){let t=(0,be.pickDisplayName)(e),n=e.properties.createdAt,r=typeof n==`string`?n:``,i=r?(0,be.formatRunTimestamp)(r):null,a=e.labels.join(` · `)+(e.trashed?` · Trashed`:``)+` · ${e.id}`;return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`h2`,{className:`graph-side-name`,title:t,children:t}),i&&(0,I.jsx)(`div`,{className:`graph-side-created`,children:i}),(0,I.jsx)(`div`,{className:`graph-side-meta`,children:a})]})}return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`graph-side-labels`,children:[e.labels.join(` · `),e.trashed?` · Trashed`:``]}),(0,I.jsx)(`div`,{className:`graph-side-id`,children:e.id})]})})()}),(0,I.jsx)(`button`,{type:`button`,className:`graph-side-close`,onClick:a,"aria-label":`Close`,children:(0,I.jsx)(s,{size:14})})]}),e.trashed&&(0,I.jsxs)(`dl`,{className:`graph-side-props graph-side-trash-meta`,children:[(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:`trashedAt`}),(0,I.jsx)(`dd`,{children:Ke(e.properties.trashedAt)})]}),(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:`trashedBy`}),(0,I.jsx)(`dd`,{children:Ke(e.properties.trashedBy)})]})]}),(0,I.jsxs)(`dl`,{className:`graph-side-props`,children:[l.length===0&&(0,I.jsx)(`div`,{className:`graph-side-empty`,children:`No properties.`}),l.map(([e,t])=>(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:e}),(0,I.jsx)(`dd`,{children:Ke(t)})]},e))]}),d.length>0&&(0,I.jsxs)(`section`,{className:`graph-side-edges`,children:[(0,I.jsxs)(`h3`,{className:`graph-side-edges-heading`,children:[`Connections (`,d.length,`)`]}),d.map(t=>{let r=t.from===e.id,i=r?t.to:t.from,a=n.get(i),o=a?(0,be.pickShortLabel)(a):i,s=r?`→`:`←`,c=Object.entries(t.properties??{}).filter(([,e])=>e!=null&&e!==``);return(0,I.jsxs)(`div`,{className:`graph-side-edge`,children:[(0,I.jsxs)(`div`,{className:`graph-side-edge-header`,children:[(0,I.jsx)(`span`,{className:`graph-side-edge-type`,children:t.type}),(0,I.jsx)(`span`,{className:`graph-side-edge-arrow`,children:s}),(0,I.jsx)(`span`,{className:`graph-side-edge-other`,title:o,children:o})]}),c.length>0&&(0,I.jsx)(`dl`,{className:`graph-side-edge-props`,children:c.map(([e,t])=>(0,I.jsxs)(`div`,{className:`graph-side-prop`,children:[(0,I.jsx)(`dt`,{children:e}),(0,I.jsx)(`dd`,{children:Ke(t)})]},e))})]},t.id)})]}),e.trashed&&(0,I.jsxs)(`footer`,{className:`graph-side-footer`,children:[!f&&!m&&(0,I.jsxs)(`button`,{type:`button`,className:`graph-side-restore`,onClick:x,children:[(0,I.jsx)(v,{size:14}),` Restore`]}),f&&(0,I.jsx)(`div`,{className:`graph-delete-confirm`,children:(0,I.jsxs)(`p`,{children:[(0,I.jsx)(u,{size:14,className:`spin`}),` Restoring…`]})}),m&&(0,I.jsxs)(`div`,{className:`graph-delete-confirm graph-delete-confirm-error`,children:[(0,I.jsxs)(`p`,{children:[`Restore failed: `,m]}),(0,I.jsxs)(`div`,{className:`graph-delete-confirm-buttons`,children:[(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-cancel`,onClick:()=>{h(null)},children:`Close`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-do`,onClick:x,children:`Retry`})]})]})]}),!e.trashed&&(0,I.jsxs)(`footer`,{className:`graph-side-footer`,children:[!g&&!y&&(0,I.jsxs)(`button`,{type:`button`,className:`graph-side-trash`,onClick:S,children:[(0,I.jsx)(r,{size:14}),` Trash`]}),g&&(0,I.jsx)(`div`,{className:`graph-delete-confirm`,children:(0,I.jsxs)(`p`,{children:[(0,I.jsx)(u,{size:14,className:`spin`}),` Trashing…`]})}),y&&(0,I.jsxs)(`div`,{className:`graph-delete-confirm graph-delete-confirm-error`,children:[(0,I.jsxs)(`p`,{children:[`Trash failed: `,y]}),(0,I.jsxs)(`div`,{className:`graph-delete-confirm-buttons`,children:[(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-cancel`,onClick:()=>{b(null)},children:`Close`}),(0,I.jsx)(`button`,{type:`button`,className:`graph-delete-confirm-do`,onClick:S,children:`Retry`})]})]})]})]})}var He=class extends Error{body;constructor(e){super(e.error),this.body=e}};function Ue({viewStack:e}){let t=e.map(e=>e.kind===`filter`?`Filter`:e.rootLabel??`Node`);return(0,I.jsx)(`div`,{className:`graph-breadcrumb`,role:`navigation`,"aria-label":`Graph navigation breadcrumb`,children:t.map((e,n)=>(0,I.jsxs)(`span`,{className:`graph-breadcrumb-item`,children:[n>0&&(0,I.jsx)(`span`,{className:`graph-breadcrumb-separator`,"aria-hidden":`true`,children:`›`}),(0,I.jsx)(`span`,{className:`graph-breadcrumb-label${n===t.length-1?` is-current`:``}`,children:e})]},n))})}function We(e,t){let n=`[graph-page] ${e} ${Object.entries(t).map(([e,t])=>`${e}=${String(t)}`).join(` `)}`;try{fetch(`/api/_client-error`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({kind:`graph-nav`,msg:n}),keepalive:!0}).catch(()=>{})}catch{}}function Ge(e){let t=t=>{let n=e[t];if(n&&typeof n==`object`&&`low`in n){let e=n.low;return typeof e==`number`?e:null}return null},n=t(`year`),r=t(`month`),i=t(`day`);if(n===null||r===null||i===null)return null;let a=`${String(n).padStart(4,`0`)}-${String(r).padStart(2,`0`)}-${String(i).padStart(2,`0`)}`;if(!(`hour`in e))return a;let o=t(`hour`),s=t(`minute`),c=t(`second`);return o===null||s===null||c===null?a:`${a} ${String(o).padStart(2,`0`)}:${String(s).padStart(2,`0`)}:${String(c).padStart(2,`0`)}`}function Ke(e){if(e==null)return``;if(Array.isArray(e))return e.length>8?`[${e.length} items]`:e.map(String).join(`, `);if(typeof e==`object`){if(`year`in e&&`month`in e&&`day`in e&&typeof e.year==`object`){let t=Ge(e);if(t)return t}return JSON.stringify(e)}return String(e)}(0,E.createRoot)(document.getElementById(`root`)).render((0,I.jsx)(ze,{}));
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Graph — Maxy</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/graph-
|
|
8
|
+
<script type="module" crossorigin src="/assets/graph-DfUM66RH.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/chunk-CAM3fms7.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/OperatorConversations-BwnO3IUP.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/graph-labels-CXt55mIP.js">
|
package/payload/server/server.js
CHANGED
|
@@ -10056,11 +10056,16 @@ var MAX_FILE_LEN = 300;
|
|
|
10056
10056
|
var RATE_LIMIT_PER_MIN = 20;
|
|
10057
10057
|
var WINDOW_MS = 60 * 1e3;
|
|
10058
10058
|
var rateHits = /* @__PURE__ */ new Map();
|
|
10059
|
-
|
|
10059
|
+
var ERROR_KINDS = /* @__PURE__ */ new Set(["uncaught", "unhandled-rejection", "subresource"]);
|
|
10060
|
+
function rateKey(ip, cls) {
|
|
10061
|
+
return cls === "error" ? ip : `${ip} telemetry`;
|
|
10062
|
+
}
|
|
10063
|
+
function checkRateLimit2(ip, cls) {
|
|
10064
|
+
const key = rateKey(ip, cls);
|
|
10060
10065
|
const now = Date.now();
|
|
10061
|
-
const rec = rateHits.get(
|
|
10066
|
+
const rec = rateHits.get(key);
|
|
10062
10067
|
if (!rec || now - rec.windowStart >= WINDOW_MS) {
|
|
10063
|
-
rateHits.set(
|
|
10068
|
+
rateHits.set(key, { windowStart: now, count: 1, blocked: 0, lastLoggedBlocked: 0 });
|
|
10064
10069
|
return { allow: true, blocked: 0, shouldLog: false };
|
|
10065
10070
|
}
|
|
10066
10071
|
rec.count++;
|
|
@@ -10096,6 +10101,14 @@ function rotateIfNeeded() {
|
|
|
10096
10101
|
console.error(`[client-error] log rotation failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
10097
10102
|
}
|
|
10098
10103
|
}
|
|
10104
|
+
function telemetryFloodGuard(c, ip) {
|
|
10105
|
+
const rate = checkRateLimit2(ip, "telemetry");
|
|
10106
|
+
if (rate.allow) return null;
|
|
10107
|
+
if (rate.shouldLog) {
|
|
10108
|
+
console.error(`[client-error-rate-limit] ip=${ip} class=telemetry blocked=${rate.blocked}`);
|
|
10109
|
+
}
|
|
10110
|
+
return c.text("Too many requests", 429);
|
|
10111
|
+
}
|
|
10099
10112
|
var app10 = new Hono();
|
|
10100
10113
|
app10.post("/", async (c) => {
|
|
10101
10114
|
const client = resolveClientIp(
|
|
@@ -10103,31 +10116,24 @@ app10.post("/", async (c) => {
|
|
|
10103
10116
|
c.req.header("x-forwarded-for")
|
|
10104
10117
|
);
|
|
10105
10118
|
const ip = client.ip || "unknown";
|
|
10106
|
-
const rate = checkRateLimit2(ip);
|
|
10107
|
-
if (!rate.allow) {
|
|
10108
|
-
if (rate.shouldLog) {
|
|
10109
|
-
console.error(`[client-error-rate-limit] ip=${ip} blocked=${rate.blocked}`);
|
|
10110
|
-
}
|
|
10111
|
-
return c.text("Too many requests", 429);
|
|
10112
|
-
}
|
|
10113
10119
|
let raw;
|
|
10114
10120
|
try {
|
|
10115
10121
|
raw = await c.req.text();
|
|
10116
10122
|
} catch {
|
|
10117
|
-
return c.text("Bad request", 400);
|
|
10123
|
+
return telemetryFloodGuard(c, ip) ?? c.text("Bad request", 400);
|
|
10118
10124
|
}
|
|
10119
10125
|
if (Buffer.byteLength(raw) > MAX_BODY_SIZE) {
|
|
10120
|
-
return c.text("Payload too large", 413);
|
|
10126
|
+
return telemetryFloodGuard(c, ip) ?? c.text("Payload too large", 413);
|
|
10121
10127
|
}
|
|
10122
10128
|
let body;
|
|
10123
10129
|
try {
|
|
10124
10130
|
const parsed = JSON.parse(raw);
|
|
10125
10131
|
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
10126
|
-
return c.text("Invalid body", 400);
|
|
10132
|
+
return telemetryFloodGuard(c, ip) ?? c.text("Invalid body", 400);
|
|
10127
10133
|
}
|
|
10128
10134
|
body = parsed;
|
|
10129
10135
|
} catch {
|
|
10130
|
-
return c.text("Invalid JSON", 400);
|
|
10136
|
+
return telemetryFloodGuard(c, ip) ?? c.text("Invalid JSON", 400);
|
|
10131
10137
|
}
|
|
10132
10138
|
const kindRaw = typeof body.kind === "string" ? body.kind : "unknown";
|
|
10133
10139
|
const allowedKinds = /* @__PURE__ */ new Set([
|
|
@@ -10142,6 +10148,14 @@ app10.post("/", async (c) => {
|
|
|
10142
10148
|
"event"
|
|
10143
10149
|
]);
|
|
10144
10150
|
const kind = allowedKinds.has(kindRaw) ? kindRaw : "unknown";
|
|
10151
|
+
const cls = ERROR_KINDS.has(kind) ? "error" : "telemetry";
|
|
10152
|
+
const rate = checkRateLimit2(ip, cls);
|
|
10153
|
+
if (!rate.allow) {
|
|
10154
|
+
if (rate.shouldLog) {
|
|
10155
|
+
console.error(`[client-error-rate-limit] ip=${ip} class=${cls} blocked=${rate.blocked}`);
|
|
10156
|
+
}
|
|
10157
|
+
return c.text("Too many requests", 429);
|
|
10158
|
+
}
|
|
10145
10159
|
const msg = truncate(body.msg, MAX_MSG_LEN);
|
|
10146
10160
|
const url = truncate(body.url, MAX_URL_LEN);
|
|
10147
10161
|
const ua = truncate(body.ua, MAX_UA_LEN);
|
|
@@ -10159,7 +10173,7 @@ app10.post("/", async (c) => {
|
|
|
10159
10173
|
const safe = typeof v === "string" ? truncate(v, 200) : typeof v === "number" || typeof v === "boolean" ? String(v) : JSON.stringify(v).slice(0, 200);
|
|
10160
10174
|
return `${k}=${safe}`;
|
|
10161
10175
|
}).join(" ");
|
|
10162
|
-
const TAGGED_PREFIX_SOURCES = /* @__PURE__ */ new Set(["stream-log-click", "pwa"]);
|
|
10176
|
+
const TAGGED_PREFIX_SOURCES = /* @__PURE__ */ new Set(["stream-log-click", "pwa", "graph-freeze"]);
|
|
10163
10177
|
if (TAGGED_PREFIX_SOURCES.has(source)) {
|
|
10164
10178
|
console.log(
|
|
10165
10179
|
`[${source}] ts=${ts} ip=${ip} version=${version || "unknown"}${extra ? " " + extra : ""}`
|