agentglow 0.2.7 → 0.2.9

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.
@@ -1,14 +1,14 @@
1
- var ir = Object.defineProperty;
2
- var cr = (e, t, n) => t in e ? ir(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
- var Qe = (e, t, n) => cr(e, typeof t != "symbol" ? t + "" : t, n);
4
- import { jsx as h, jsxs as V, Fragment as ye } from "react/jsx-runtime";
5
- import { Text as Sn, OrbitControls as lr } from "@react-three/drei";
6
- import { useThree as ct, useFrame as ve, Canvas as ur } from "@react-three/fiber";
7
- import { useSyncExternalStore as Ct, createContext as ms, useRef as B, useMemo as ne, useEffect as $, Suspense as dr, useImperativeHandle as fr, useContext as gs, useState as fe, useLayoutEffect as hr, useCallback as As, Fragment as pr } from "react";
1
+ var lr = Object.defineProperty;
2
+ var ur = (e, t, n) => t in e ? lr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
+ var Qe = (e, t, n) => ur(e, typeof t != "symbol" ? t + "" : t, n);
4
+ import { jsx as p, jsxs as R, Fragment as ye } from "react/jsx-runtime";
5
+ import { Text as En, OrbitControls as dr } from "@react-three/drei";
6
+ import { useThree as ct, useFrame as ve, Canvas as fr } from "@react-three/fiber";
7
+ import { useSyncExternalStore as Ct, createContext as As, useRef as B, useMemo as ne, useEffect as $, Suspense as hr, useImperativeHandle as pr, useContext as bs, useState as fe, useLayoutEffect as mr, useCallback as vs, Fragment as gr } from "react";
8
8
  import * as y from "three";
9
- import { u as an, T as mr } from "./index-BLui9fiT.js";
10
- var ps;
11
- const tt = typeof window < "u" && !!((ps = window.matchMedia) != null && ps.call(window, "(prefers-reduced-motion: reduce)").matches), g = {
9
+ import { u as cn, T as Ar } from "./index-D4Wlmsay.js";
10
+ var gs;
11
+ const tt = typeof window < "u" && !!((gs = window.matchMedia) != null && gs.call(window, "(prefers-reduced-motion: reduce)").matches), g = {
12
12
  plane: "xy",
13
13
  agents: /* @__PURE__ */ new Map(),
14
14
  runs: /* @__PURE__ */ new Map(),
@@ -41,32 +41,32 @@ const tt = typeof window < "u" && !!((ps = window.matchMedia) != null && ps.call
41
41
  function ce(e, t, n) {
42
42
  return g.plane === "xy" ? n.set(e, t, 0) : n.set(e, 0, -t);
43
43
  }
44
- function tc(e, t, n, s) {
44
+ function nc(e, t, n, s) {
45
45
  return s.copy(e.origin).addScaledVector(e.side, t - e.cu).addScaledVector(e.axis, n - e.cv);
46
46
  }
47
- function nc(e) {
47
+ function sc(e) {
48
48
  var t;
49
49
  return (t = g.agents.get(e)) == null ? void 0 : t.live;
50
50
  }
51
- function sc(e) {
51
+ function rc(e) {
52
52
  var t;
53
53
  return (t = g.mcp.get(e)) == null ? void 0 : t.pos;
54
54
  }
55
- function rc(e, t) {
55
+ function ac(e, t) {
56
56
  var n, s;
57
57
  return (s = (n = g.mcp.get(e)) == null ? void 0 : n.backends.get(t)) == null ? void 0 : s.pos;
58
58
  }
59
- function ac(e, t) {
59
+ function oc(e, t) {
60
60
  const n = g.graph;
61
61
  return t.copy(e).multiplyScalar(n.scale).add(n.pos);
62
62
  }
63
- function oc(e, t) {
63
+ function ic(e, t) {
64
64
  const n = g.graph;
65
65
  return t.copy(e).sub(n.pos).divideScalar(Math.max(1e-4, n.scale));
66
66
  }
67
- let gr = 0;
68
- const xt = () => ++gr, Te = (e) => [Math.round(e.x * 100) / 100, Math.round(e.y * 100) / 100, Math.round(e.z * 100) / 100];
69
- function On() {
67
+ let br = 0;
68
+ const xt = () => ++br, Te = (e) => [Math.round(e.x * 100) / 100, Math.round(e.y * 100) / 100, Math.round(e.z * 100) / 100];
69
+ function Rn() {
70
70
  return {
71
71
  plane: g.plane,
72
72
  agents: [...g.agents.values()].map((e) => ({ id: e.id, run: e.run.id, depth: e.depth, scale: Math.round(e.scale * 100) / 100, pos: Te(e.pos) })),
@@ -77,17 +77,17 @@ function On() {
77
77
  graph: { wanted: g.graphWanted, pos: Te(g.graph.pos), out: Te(g.graph.out), radius: g.graph.radius, scale: g.graph.scale, mix: g.graph.mix }
78
78
  };
79
79
  }
80
- typeof window < "u" && (Object.defineProperties(g, { toJSON: { value: On, enumerable: !1 }, summary: { value: On, enumerable: !1 } }), window.__agentglowKit = g);
81
- const bs = [
80
+ typeof window < "u" && (Object.defineProperties(g, { toJSON: { value: Rn, enumerable: !1 }, summary: { value: Rn, enumerable: !1 } }), window.__agentglowKit = g);
81
+ const Ms = [
82
82
  { type: "planner", label: "Planner", color: "#a78bfa" },
83
83
  { type: "researcher", label: "Researcher", color: "#fbbf24" },
84
84
  { type: "graph_scout", label: "Graph Scout", color: "#22d3ee" },
85
85
  { type: "records_scout", label: "Records Scout", color: "#f472b6" },
86
86
  { type: "data_scout", label: "Data Scout", color: "#fb7185" },
87
87
  { type: "writer", label: "Writer", color: "#4ade80" }
88
- ], Ie = Object.fromEntries(bs.map((e) => [e.type, e.color]));
89
- Object.fromEntries(bs.map((e) => [e.type, e.label]));
90
- const on = ["plan", "research", "write"], wt = ["#818cf8", "#f472b6", "#34d399", "#fb923c", "#38bdf8", "#e879f9"], ic = {
88
+ ], Ie = Object.fromEntries(Ms.map((e) => [e.type, e.color]));
89
+ Object.fromEntries(Ms.map((e) => [e.type, e.label]));
90
+ const ln = ["plan", "research", "write"], wt = ["#818cf8", "#f472b6", "#34d399", "#fb923c", "#38bdf8", "#e879f9"], cc = {
91
91
  Customer: "#f59e0b",
92
92
  Account: "#38bdf8",
93
93
  Incident: "#22c55e",
@@ -104,22 +104,22 @@ const on = ["plan", "research", "write"], wt = ["#818cf8", "#f472b6", "#34d399",
104
104
  Agency: "#ef4444",
105
105
  Topic: "#facc15",
106
106
  Committee: "#2dd4bf"
107
- }, vs = 450, Ar = 4e3, Ms = 1100, br = 6e4;
108
- function ys(e) {
109
- return e.endAt ? Math.max(e.endAt, e.startAt + Ar) : 0;
107
+ }, ys = 450, vr = 4e3, xs = 1100, Mr = 6e4;
108
+ function ws(e) {
109
+ return e.endAt ? Math.max(e.endAt, e.startAt + vr) : 0;
110
110
  }
111
- function En(e, t = performance.now()) {
112
- const n = Math.min(1, Math.max(0, (t - e.startAt) / vs)), s = ys(e), i = s ? Math.min(1, Math.max(0, 1 - (t - s) / Ms)) : 1;
111
+ function Vn(e, t = performance.now()) {
112
+ const n = Math.min(1, Math.max(0, (t - e.startAt) / ys)), s = ws(e), i = s ? Math.min(1, Math.max(0, 1 - (t - s) / xs)) : 1;
113
113
  return n * (2 - n) * i * i * (3 - 2 * i);
114
114
  }
115
- const vr = {
115
+ const yr = {
116
116
  warehouse: "#f97316",
117
117
  search: "#22d3ee",
118
118
  github: "#e5e7eb",
119
119
  slack: "#e879f9",
120
120
  "google-drive": "#facc15",
121
121
  analytics: "#06b6d4"
122
- }, cn = (e) => e.doneAt > 0, te = (e) => !e.doneAt && !e.exitAt, Mr = 12e4, xs = 3e3, ws = 2500, yr = 6e3, Tt = { fadeMs: (e) => ws }, cc = (e) => Tt.fadeMs(e), p = {
122
+ }, un = (e) => e.doneAt > 0, te = (e) => !e.doneAt && !e.exitAt, xr = 12e4, ks = 3e3, Ss = 2500, _t = 6e3, Tt = { fadeMs: (e) => Ss }, lc = (e) => Tt.fadeMs(e), h = {
123
123
  runs: /* @__PURE__ */ new Map(),
124
124
  instances: /* @__PURE__ */ new Map(),
125
125
  comets: [],
@@ -152,6 +152,10 @@ const vr = {
152
152
  hasGraph: !1,
153
153
  /** performance.now() when hasGraph flipped true (drives the fade-in / layout ease) */
154
154
  hasGraphAt: 0,
155
+ /** runs that touched the graph; the side graph shows while one of them is live (see graphShown) */
156
+ graphRuns: /* @__PURE__ */ new Set(),
157
+ /** performance.now() of the last graph event */
158
+ graphAt: 0,
155
159
  focus: null,
156
160
  // instance id most recently active
157
161
  focusAt: 0,
@@ -163,37 +167,40 @@ const vr = {
163
167
  selected: null,
164
168
  /** the server answered 401 for this scope/run/token (the HUD shows a notice; no simulator fallback) */
165
169
  unauthorized: !1
166
- }, xr = 500;
167
- let Pt = 0, ks = 0;
170
+ }, wr = 500;
171
+ let Gt = 0, Os = 0;
168
172
  const nt = /* @__PURE__ */ new Set(), we = () => {
169
- ks++, nt.forEach((e) => e());
173
+ Os++, nt.forEach((e) => e());
170
174
  };
171
175
  function ot() {
172
176
  return Ct(
173
177
  (e) => (nt.add(e), () => nt.delete(e)),
174
- () => ks
175
- ), p;
178
+ () => Os
179
+ ), h;
176
180
  }
177
- const ln = (e, t = 0) => {
181
+ const dn = (e, t = 0) => {
178
182
  let n = 2166136261 ^ t;
179
183
  for (let s = 0; s < e.length; s++) n = Math.imul(n ^ e.charCodeAt(s), 16777619);
180
184
  return (n >>> 0) % 10007 / 10007;
181
185
  };
182
- function wr() {
183
- const e = new Set([...p.runs.values()].map((s) => s.slot)), t = [0, 1, 2, 3, 4, 5].filter((s) => !e.has(s));
186
+ function kr() {
187
+ const e = new Set([...h.runs.values()].map((s) => s.slot)), t = [0, 1, 2, 3, 4, 5].filter((s) => !e.has(s));
184
188
  if (t.length) return t[Math.floor(Math.random() * t.length)];
185
189
  let n = 6;
186
190
  for (; e.has(n); ) n++;
187
191
  return n;
188
192
  }
189
- function Ss(e) {
193
+ function Es(e) {
190
194
  var s, i;
191
195
  const t = performance.now();
192
- switch (e.type !== "mcp_register" && (p.ticker = [e, ...p.ticker].slice(0, 60)), e.type) {
196
+ switch (e.type !== "mcp_register" && (h.ticker = [e, ...h.ticker].slice(0, 60)), e.type) {
193
197
  case "run": {
194
- if (e.status === "started") {
195
- const r = wr();
196
- p.runs.set(e.run_id, {
198
+ if (e.status === "renamed") {
199
+ const r = h.runs.get(e.run_id);
200
+ r && (r.topic = e.topic);
201
+ } else if (e.status === "started") {
202
+ const r = kr();
203
+ h.runs.set(e.run_id, {
197
204
  id: e.run_id,
198
205
  topic: e.topic,
199
206
  workflow: e.workflow,
@@ -208,28 +215,28 @@ function Ss(e) {
208
215
  handoffFrom: "plan",
209
216
  handoffTo: "plan",
210
217
  final: ""
211
- }), p.stats.runs++;
218
+ }), h.stats.runs++;
212
219
  } else {
213
- const r = p.runs.get(e.run_id);
220
+ const r = h.runs.get(e.run_id);
214
221
  r && (r.status = e.status, r.endedAt = t);
215
- for (const a of p.instances.values()) a.run === e.run_id && !a.exitAt && (a.exitAt = t);
222
+ for (const a of h.instances.values()) a.run === e.run_id && !a.exitAt && (a.exitAt = t);
216
223
  }
217
224
  break;
218
225
  }
219
226
  case "step": {
220
- const r = p.runs.get(e.run_id);
227
+ const r = h.runs.get(e.run_id);
221
228
  if (!r) break;
222
229
  r.hasSteps = !0;
223
- const a = on.find((l) => r.steps[l] === "running");
230
+ const a = ln.find((l) => r.steps[l] === "running");
224
231
  r.steps[e.step] = e.status, e.status === "running" && a && a !== e.step && (r.handoffAt = t, r.handoffFrom = a, r.handoffTo = e.step);
225
232
  break;
226
233
  }
227
234
  case "spawn": {
228
- const r = e.subagent ?? e.agent.endsWith("_scout"), a = [...p.instances.values()].filter((l) => l.run === e.run_id).length;
229
- p.instances.set(e.id, {
235
+ const r = e.subagent ?? e.agent.endsWith("_scout"), a = [...h.instances.values()].filter((l) => l.run === e.run_id).length;
236
+ h.instances.set(e.id, {
230
237
  id: e.id,
231
238
  run: e.run_id,
232
- type: Rr(e.agent, r),
239
+ type: Cr(e.agent, r),
233
240
  name: e.agent,
234
241
  parent: e.parent_id,
235
242
  status: "spawning",
@@ -249,17 +256,17 @@ function Ss(e) {
249
256
  skills: /* @__PURE__ */ new Map(),
250
257
  skill: "",
251
258
  skillEndAt: 0
252
- }), p.stats.spawned++, p.focus = e.id, p.focusAt = t;
259
+ }), h.stats.spawned++, h.focus = e.id, h.focusAt = t;
253
260
  break;
254
261
  }
255
262
  case "exit": {
256
- const r = p.instances.get(e.id);
263
+ const r = h.instances.get(e.id);
257
264
  if (r) {
258
265
  r.status = e.status, r.doneAt = t;
259
- const a = p.runs.get(r.run), l = !!r.parent && Date.now() - e.ts > xs;
266
+ const a = h.runs.get(r.run), l = !!r.parent && Date.now() - e.ts > ks;
260
267
  (!a || a.endedAt || l) && (r.exitAt = t);
261
268
  }
262
- for (const [a, l] of p.mcpPending) l.instance === e.id && p.mcpPending.delete(a);
269
+ for (const [a, l] of h.mcpPending) l.instance === e.id && h.mcpPending.delete(a);
263
270
  if (r && r.skill && !r.skillEndAt) {
264
271
  for (const a of r.skills.values()) a.active && (a.active = !1, a.endAt = t);
265
272
  r.skillEndAt = t;
@@ -267,31 +274,31 @@ function Ss(e) {
267
274
  break;
268
275
  }
269
276
  case "agent": {
270
- const r = p.instances.get(e.id);
271
- r && (r.status = e.status), e.status === "thinking" && (p.focus = e.id, p.focusAt = t);
277
+ const r = h.instances.get(e.id);
278
+ r && (r.status = e.status), e.status === "thinking" && (h.focus = e.id, h.focusAt = t);
272
279
  break;
273
280
  }
274
281
  case "llm": {
275
- const r = p.instances.get(e.id);
276
- r && (r.pulse = Math.min(2.5, 0.6 + (e.tokens_in + e.tokens_out) / 1500), r.pulseAt = t, r.tokens += e.tokens_in + e.tokens_out, r.llmCalls++), p.stats.llmCalls++, p.stats.tokens += e.tokens_in + e.tokens_out;
282
+ const r = h.instances.get(e.id);
283
+ r && (r.pulse = Math.min(2.5, 0.6 + (e.tokens_in + e.tokens_out) / 1500), r.pulseAt = t, r.tokens += e.tokens_in + e.tokens_out, r.llmCalls++), h.stats.llmCalls++, h.stats.tokens += e.tokens_in + e.tokens_out;
277
284
  break;
278
285
  }
279
286
  case "message":
280
- p.comets.push({ id: ++Pt, run: e.run_id, from: e.from_id, to: e.to_id, start: t, dur: 1300, text: e.text }), p.focus = e.to_id, p.focusAt = t;
287
+ h.comets.push({ id: ++Gt, run: e.run_id, from: e.from_id, to: e.to_id, start: t, dur: 1300, text: e.text }), h.focus = e.to_id, h.focusAt = t;
281
288
  break;
282
289
  case "tool": {
283
- p.stats.toolCalls++, /^(task|agent)$/i.test(e.tool) && (p.spawnHintAt = t);
284
- const r = p.instances.get(e.id);
290
+ h.stats.toolCalls++, /^(task|agent)$/i.test(e.tool) && (h.spawnHintAt = t);
291
+ const r = h.instances.get(e.id);
285
292
  r && (r.pulse = Math.max(r.pulse, 0.5), r.pulseAt = t, r.toolCalls++);
286
293
  break;
287
294
  }
288
295
  case "skill": {
289
- const r = p.instances.get(e.id);
296
+ const r = h.instances.get(e.id);
290
297
  if (!r) break;
291
298
  let a = r.skills.get(e.name);
292
299
  if (a || r.skills.set(e.name, a = { active: !1, count: 0, last: t, startAt: 0, endAt: 0 }), a.last = t, e.status === "start") {
293
- const l = a.count > 0 && (!a.endAt || t < ys(a) + Ms);
294
- a.startAt = l ? t - Math.min(vs, t - a.startAt) : t, a.endAt = 0, a.active = !0, a.count++, r.skill = e.name, r.skillEndAt = 0;
300
+ const l = a.count > 0 && (!a.endAt || t < ws(a) + xs);
301
+ a.startAt = l ? t - Math.min(ys, t - a.startAt) : t, a.endAt = 0, a.active = !0, a.count++, r.skill = e.name, r.skillEndAt = 0;
295
302
  } else if (a.active) {
296
303
  a.active = !1, a.endAt = t;
297
304
  let l = "";
@@ -301,134 +308,144 @@ function Ss(e) {
301
308
  break;
302
309
  }
303
310
  case "graph":
304
- Vs(!0, !1), (s = p.instances.get(e.id)) != null && s.nodes && e.nodes.forEach((r) => p.instances.get(e.id).nodes.add(r));
305
- for (const r of e.nodes.slice(0, 20)) p.flares.push({ id: ++Pt, run: e.run_id, instance: e.id, node: r, op: e.op, start: t });
306
- e.op === "read" ? p.stats.graphReads += e.nodes.length : p.stats.graphWrites += e.nodes.length;
311
+ h.hasGraph && !zt(t) && (h.hasGraphAt = t), Cs(!0, !1), h.graphAt = t, e.run_id && h.graphRuns.add(e.run_id), (s = h.instances.get(e.id)) != null && s.nodes && e.nodes.forEach((r) => h.instances.get(e.id).nodes.add(r));
312
+ for (const r of e.nodes.slice(0, 20)) h.flares.push({ id: ++Gt, run: e.run_id, instance: e.id, node: r, op: e.op, start: t });
313
+ e.op === "read" ? h.stats.graphReads += e.nodes.length : h.stats.graphWrites += e.nodes.length;
307
314
  break;
308
315
  case "mcp_register": {
309
- let r = p.mcpRegistry.get(e.server);
310
- r || p.mcpRegistry.set(e.server, r = /* @__PURE__ */ new Map());
316
+ let r = h.mcpRegistry.get(e.server);
317
+ r || h.mcpRegistry.set(e.server, r = /* @__PURE__ */ new Map());
311
318
  for (const a of e.resources) r.has(a.name) || r.set(a.name, a.kind);
312
319
  break;
313
320
  }
314
321
  case "mcp": {
315
- let r = p.mcpServers.get(e.server);
316
- r || (r = { name: e.server, color: vr[e.server] ?? "#94a3b8", slot: p.mcpServers.size, activeAt: t, calls: 0, inflight: 0, resources: /* @__PURE__ */ new Map() }, p.mcpServers.set(e.server, r)), r.activeAt = t;
322
+ let r = h.mcpServers.get(e.server);
323
+ r || (r = { name: e.server, color: yr[e.server] ?? "#94a3b8", slot: h.mcpServers.size, activeAt: t, calls: 0, inflight: 0, resources: /* @__PURE__ */ new Map() }, h.mcpServers.set(e.server, r)), r.activeAt = t;
317
324
  let a;
318
- if (e.resource && (a = r.resources.get(e.resource), a || (a = { name: e.resource, kind: e.resource_kind ?? ((i = p.mcpRegistry.get(e.server)) == null ? void 0 : i.get(e.resource)) ?? "api", activeAt: t, inflight: 0, calls: 0 }, r.resources.set(e.resource, a)), a.activeAt = t, e.phase === "call" ? (a.inflight++, a.calls++) : a.inflight = Math.max(0, a.inflight - 1)), e.phase === "call") {
319
- const d = p.instances.get(e.id);
320
- d && d.mcpCalls++, r.calls++, r.inflight++, p.stats.mcpCalls++;
325
+ if (e.resource && (a = r.resources.get(e.resource), a || (a = { name: e.resource, kind: e.resource_kind ?? ((i = h.mcpRegistry.get(e.server)) == null ? void 0 : i.get(e.resource)) ?? "api", activeAt: t, inflight: 0, calls: 0 }, r.resources.set(e.resource, a)), a.activeAt = t, e.phase === "call" ? (a.inflight++, a.calls++) : a.inflight = Math.max(0, a.inflight - 1)), e.phase === "call") {
326
+ const d = h.instances.get(e.id);
327
+ d && d.mcpCalls++, r.calls++, r.inflight++, h.stats.mcpCalls++;
321
328
  } else r.inflight = Math.max(0, r.inflight - 1);
322
- p.mcpCalls.push({ id: ++Pt, run: e.run_id, instance: e.id, server: e.server, tool: e.tool, resource: e.resource, phase: e.phase, start: t, dur: 900 });
329
+ h.mcpCalls.push({ id: ++Gt, run: e.run_id, instance: e.id, server: e.server, tool: e.tool, resource: e.resource, phase: e.phase, start: t, dur: 900 });
323
330
  const l = `${e.id}|${e.server}|${e.tool}`;
324
- if (e.phase === "call") p.mcpPending.set(l, { key: l, run: e.run_id, instance: e.id, server: e.server, tool: e.tool, resource: e.resource, since: t });
331
+ if (e.phase === "call") h.mcpPending.set(l, { key: l, run: e.run_id, instance: e.id, server: e.server, tool: e.tool, resource: e.resource, since: t });
325
332
  else {
326
- const d = p.mcpPending.get(l);
327
- d && p.mcpResolved.push({ ...d, resolvedAt: t }), p.mcpPending.delete(l);
333
+ const d = h.mcpPending.get(l);
334
+ d && h.mcpResolved.push({ ...d, resolvedAt: t }), h.mcpPending.delete(l);
328
335
  }
329
336
  break;
330
337
  }
331
338
  case "final": {
332
- const r = p.runs.get(e.run_id);
333
- r && (r.final = e.text), p.lastFinal = e.text;
339
+ const r = h.runs.get(e.run_id);
340
+ r && (r.final = e.text), h.lastFinal = e.text;
334
341
  break;
335
342
  }
336
343
  }
337
344
  const n = "id" in e ? e.id : e.type === "message" ? e.from_id : null;
338
345
  if (n) {
339
- const r = p.instances.get(n);
346
+ const r = h.instances.get(n);
340
347
  r && (r.recent = [e, ...r.recent].slice(0, 40));
341
348
  }
342
349
  we();
343
350
  }
344
- const Gt = /* @__PURE__ */ new Set(), It = /* @__PURE__ */ new Set(), lt = /* @__PURE__ */ new Map();
345
- function kr(e, t) {
351
+ const It = /* @__PURE__ */ new Set(), Nt = /* @__PURE__ */ new Set(), lt = /* @__PURE__ */ new Map();
352
+ function Sr(e, t) {
346
353
  let n = !1;
347
354
  for (const s of e.skills.values())
348
- s.active && (t - s.startAt > br ? (s.active = !1, s.endAt = t) : n = !0);
355
+ s.active && (t - s.startAt > Mr ? (s.active = !1, s.endAt = t) : n = !0);
349
356
  n || (e.skillEndAt = t);
350
357
  }
351
- function Sr(e = performance.now()) {
358
+ function Or(e = performance.now()) {
352
359
  let t = !1;
353
- Gt.clear(), It.clear(), lt.clear();
354
- for (const [r, a] of p.instances)
355
- Gt.add(a.run), a.skill && !a.skillEndAt && kr(a, e), a.exitAt || (a.doneAt ? (a.doneAt > (lt.get(a.run) ?? 0) && lt.set(a.run, a.doneAt), a.parent && e - a.doneAt > xs && (a.exitAt = e)) : It.add(a.run)), a.exitAt && e - a.exitAt > Tt.fadeMs(a) && (p.instances.delete(r), p.archive.set(r, a), p.archive.size > xr && p.archive.delete(p.archive.keys().next().value), t = !0);
360
+ It.clear(), Nt.clear(), lt.clear();
361
+ for (const [r, a] of h.instances)
362
+ It.add(a.run), a.skill && !a.skillEndAt && Sr(a, e), a.exitAt || (a.doneAt ? (a.doneAt > (lt.get(a.run) ?? 0) && lt.set(a.run, a.doneAt), a.parent && e - a.doneAt > ks && (a.exitAt = e)) : Nt.add(a.run)), a.exitAt && e - a.exitAt > Tt.fadeMs(a) && (h.instances.delete(r), h.archive.set(r, a), h.archive.size > wr && h.archive.delete(h.archive.keys().next().value), t = !0);
356
363
  for (const [r, a] of lt)
357
- if (!It.has(r) && e - a > Mr)
358
- for (const l of p.instances.values()) l.run === r && !l.exitAt && (l.exitAt = e);
359
- for (const [r, a] of p.runs)
360
- a.endedAt && e - a.endedAt > yr && !Gt.has(r) && (p.runs.delete(r), t = !0);
361
- const n = p.comets.length;
362
- p.comets = p.comets.filter((r) => e - r.start < r.dur + 250), p.mcpResolved = p.mcpResolved.filter((r) => e - r.resolvedAt < 700);
363
- const s = p.mcpCalls.length;
364
- p.mcpCalls = p.mcpCalls.filter((r) => e - r.start < r.dur + 250);
365
- const i = p.flares.length;
366
- p.flares = p.flares.filter((r) => e - r.start < 2600), (t || n !== p.comets.length || i !== p.flares.length || s !== p.mcpCalls.length) && we();
367
- }
368
- function Or(e, t = performance.now()) {
364
+ if (!Nt.has(r) && e - a > xr)
365
+ for (const l of h.instances.values()) l.run === r && !l.exitAt && (l.exitAt = e);
366
+ for (const [r, a] of h.runs)
367
+ a.endedAt && e - a.endedAt > _t && !It.has(r) && (h.runs.delete(r), t = !0);
368
+ const n = h.comets.length;
369
+ h.comets = h.comets.filter((r) => e - r.start < r.dur + 250), h.mcpResolved = h.mcpResolved.filter((r) => e - r.resolvedAt < 700);
370
+ const s = h.mcpCalls.length;
371
+ h.mcpCalls = h.mcpCalls.filter((r) => e - r.start < r.dur + 250);
372
+ const i = h.flares.length;
373
+ h.flares = h.flares.filter((r) => e - r.start < 2600), (t || n !== h.comets.length || i !== h.flares.length || s !== h.mcpCalls.length) && we();
374
+ }
375
+ function Er(e, t = performance.now()) {
369
376
  const n = Math.min(1, (t - e.bornAt) / 600), s = 1 - Math.pow(1 - n, 3);
370
377
  return e.exitAt ? s * Math.max(0, 1 - (t - e.exitAt) / Tt.fadeMs(e)) : s;
371
378
  }
372
379
  function kt(e, t = performance.now()) {
373
380
  return e.pulse * Math.exp(-((t - e.pulseAt) / 1e3) * 2.2);
374
381
  }
375
- function Er(e, t = performance.now()) {
382
+ function Rr(e, t = performance.now()) {
376
383
  return (t - e.since) / 1e3;
377
384
  }
378
385
  const Vr = /* @__PURE__ */ new Set(["planner", "researcher", "graph_scout", "records_scout", "data_scout", "writer"]);
379
- function Rr(e, t) {
386
+ function Cr(e, t) {
380
387
  if (Vr.has(e)) return e;
381
388
  const n = e.toLowerCase();
382
389
  return /plan|orchestr|router|supervis|manager|coordinat/.test(n) ? "planner" : /writ|report|summar|answer|final|compose|draft/.test(n) ? "writer" : t ? /graph|kg|memory|retriev|search|web/.test(n) ? "graph_scout" : /record|doc|file/.test(n) ? "records_scout" : "data_scout" : "researcher";
383
390
  }
384
- function Os(e) {
391
+ function Rs(e) {
385
392
  return e.subagent ? 0.6 : 1.35;
386
393
  }
387
- function un(e) {
394
+ function fn(e) {
388
395
  if (e)
389
- return p.instances.get(e) ?? p.archive.get(e);
396
+ return h.instances.get(e) ?? h.archive.get(e);
390
397
  }
391
398
  function Je(e) {
392
- p.selected !== e && (p.selected = e, we());
399
+ h.selected !== e && (h.selected = e, we());
393
400
  }
394
- function Vn(e) {
395
- p.simulated = e, we();
401
+ function Cn(e) {
402
+ h.simulated = e, we();
396
403
  }
397
- function Cr(e) {
398
- p.graphLabel !== e && (p.graphLabel = e, we());
404
+ function Tr(e) {
405
+ h.graphLabel !== e && (h.graphLabel = e, we());
399
406
  }
400
- function Es(e) {
401
- p.unauthorized !== e && (p.unauthorized = e, we());
407
+ function Vs(e) {
408
+ h.unauthorized !== e && (h.unauthorized = e, we());
402
409
  }
403
- function Tr() {
404
- p.runs.clear(), p.instances.clear(), p.comets.length = 0, p.flares.length = 0, p.mcpServers.clear(), p.mcpRegistry.clear(), p.mcpCalls.length = 0, p.mcpPending.clear(), p.mcpResolved.length = 0, p.ticker.length = 0;
405
- for (const e of Object.keys(p.stats)) p.stats[e] = 0;
406
- p.lastFinal = "", p.simulated = !1, p.mode = "connecting", p.focus = null, p.focusAt = 0, p.spawnHintAt = 0, p.archive.clear(), p.selected = null, p.unauthorized = !1, p.hasGraph = !1, p.hasGraphAt = 0, we();
410
+ function zr() {
411
+ h.runs.clear(), h.instances.clear(), h.comets.length = 0, h.flares.length = 0, h.mcpServers.clear(), h.mcpRegistry.clear(), h.mcpCalls.length = 0, h.mcpPending.clear(), h.mcpResolved.length = 0, h.ticker.length = 0;
412
+ for (const e of Object.keys(h.stats)) h.stats[e] = 0;
413
+ h.lastFinal = "", h.simulated = !1, h.mode = "connecting", h.focus = null, h.focusAt = 0, h.spawnHintAt = 0, h.archive.clear(), h.selected = null, h.unauthorized = !1, h.hasGraph = !1, h.hasGraphAt = 0, h.graphRuns.clear(), h.graphAt = 0, we();
407
414
  }
408
- function Rn(e) {
409
- p.mode = e, p.simulated = e === "sim", e === "sim" && Vs(!0, !1), we();
415
+ function Tn(e) {
416
+ h.mode = e, h.simulated = e === "sim", e === "sim" && Cs(!0, !1), we();
410
417
  }
411
- function Vs(e, t = !0) {
412
- p.hasGraph || (p.hasGraph = !0, p.hasGraphAt = p.mode === "sim" ? -1e9 : performance.now(), t && we());
418
+ function Cs(e, t = !0) {
419
+ h.hasGraph || (h.hasGraph = !0, h.hasGraphAt = h.mode === "sim" ? -1e9 : performance.now(), t && we());
413
420
  }
414
- const zr = 9e4;
415
- function Pr(e, t = performance.now()) {
416
- return e.calls > 0 && (e.inflight > 0 || t - e.activeAt < zr);
421
+ const Pr = 9e4;
422
+ function Gr(e, t = performance.now()) {
423
+ return e.calls > 0 && (e.inflight > 0 || t - e.activeAt < Pr);
417
424
  }
418
- const Gr = 1800;
419
- function Ir(e = performance.now()) {
420
- if (!p.hasGraph) return 0;
421
- const t = Math.min(1, Math.max(0, (e - p.hasGraphAt) / Gr));
425
+ function zt(e = performance.now()) {
426
+ if (!h.hasGraph) return !1;
427
+ if (h.mode === "sim" || e - h.graphAt < _t) return !0;
428
+ for (const t of h.graphRuns) {
429
+ const n = h.runs.get(t);
430
+ if (n && (!n.endedAt || e - n.endedAt < _t)) return !0;
431
+ (!n || n.endedAt) && h.graphRuns.delete(t);
432
+ }
433
+ return !1;
434
+ }
435
+ const Ir = 1800;
436
+ function Nr(e = performance.now()) {
437
+ if (!h.hasGraph) return 0;
438
+ const t = Math.min(1, Math.max(0, (e - h.hasGraphAt) / Ir));
422
439
  return t * t * (3 - 2 * t);
423
440
  }
424
- function Nr() {
441
+ function qr() {
425
442
  return Ct(
426
443
  (e) => (nt.add(e), () => nt.delete(e)),
427
- () => p.hasGraph,
444
+ () => h.hasGraph,
428
445
  () => !1
429
446
  );
430
447
  }
431
- const Nt = { agent: 600, skill: 450, run: 400, mcp: 300, resource: 290, cluster: 250, backend: 150, graph: 140, extra: 120, sub: 100 }, qe = ms({ kind: "extra" }), Z = {
448
+ const qt = { agent: 600, skill: 450, run: 400, mcp: 300, resource: 290, cluster: 250, backend: 150, graph: 140, extra: 120, sub: 100 }, qe = As({ kind: "extra" }), Z = {
432
449
  entries: [],
433
450
  /** a KitScene is mounted (outside one, nothing is ever hidden) */
434
451
  active: 0,
@@ -442,34 +459,34 @@ const Nt = { agent: 600, skill: 450, run: 400, mcp: 300, resource: 290, cluster:
442
459
  /** measured on-screen size of the largest cluster badge (css px; 0 = none seen yet): presets space clusters by it */
443
460
  badge: { w: 0, h: 0 }
444
461
  };
445
- function qr(e, t, n) {
462
+ function Wr(e, t, n) {
446
463
  return { kind: e, agent: t, size: n, live: !1, clip: !1, x: 0, y: 0, w: 0, h: 0, x1: 0, y1: 0, w1: 0, h1: 0, ax: 0, ay: 0, az: 0, ox0: 0, ox1: 0, oy0: 0, oy1: 0, seen: -1e9, drawn: !1, show: Z.active ? 0 : 1, subOff: !1, placed: !1, score: 0 };
447
464
  }
448
- function Wr(e) {
465
+ function Dr(e) {
449
466
  Z.entries.push(e);
450
467
  }
451
- function Dr(e) {
468
+ function Fr(e) {
452
469
  const t = Z.entries, n = t.indexOf(e);
453
470
  n < 0 || (t[n] = t[t.length - 1], t.pop());
454
471
  }
455
- const Fr = 100, Lr = { agent: !1, skill: !0, run: !1, mcp: !1, resource: !1, cluster: !1, backend: !0, graph: !0, extra: !0, sub: !0 }, ut = 3, ze = [];
472
+ const Lr = 100, Br = { agent: !1, skill: !0, run: !1, mcp: !1, resource: !1, cluster: !1, backend: !0, graph: !0, extra: !0, sub: !0 }, ut = 3, ze = [];
456
473
  let me = new Float64Array(256 * 4);
457
- const Br = (e, t) => t.score - e.score;
458
- function Ur(e, t) {
459
- let n = Nt[e.kind];
474
+ const Ur = (e, t) => t.score - e.score;
475
+ function Zr(e, t) {
476
+ let n = qt[e.kind];
460
477
  const s = e.agent;
461
478
  if (s && (e.kind === "agent" || e.kind === "sub")) {
462
479
  const i = s.inst;
463
- if (p.selected === s.id) return 1e4;
480
+ if (h.selected === s.id) return 1e4;
464
481
  const r = Math.min(1, kt(i, t)) * 60 + (i.status === "thinking" ? 30 : 0);
465
- n = s.depth > 0 ? Nt.sub + r * 0.5 : Nt.agent + r, (i.exitAt || i.doneAt) && (n -= s.depth > 0 ? 60 : 350);
482
+ n = s.depth > 0 ? qt.sub + r * 0.5 : qt.agent + r, (i.exitAt || i.doneAt) && (n -= s.depth > 0 ? 60 : 350);
466
483
  } else if (s && e.kind === "skill") {
467
- if (p.selected === s.id) return 9990;
484
+ if (h.selected === s.id) return 9990;
468
485
  n += Math.min(1, kt(s.inst, t)) * 30 + (s.depth > 0 ? 0 : 20), (s.inst.exitAt || s.inst.doneAt) && (n -= 300);
469
486
  }
470
487
  return n + e.size * 10 + (e.placed ? 8 : 0);
471
488
  }
472
- function Cn(e, t, n, s, i) {
489
+ function zn(e, t, n, s, i) {
473
490
  const r = e - n / 2 - ut, a = e + n / 2 + ut, l = t - s / 2 - ut, d = t + s / 2 + ut;
474
491
  for (let f = 0; f < i; f++) {
475
492
  const c = f * 4;
@@ -477,7 +494,7 @@ function Cn(e, t, n, s, i) {
477
494
  }
478
495
  return !0;
479
496
  }
480
- function Tn(e, t, n, s, i) {
497
+ function Pn(e, t, n, s, i) {
481
498
  if ((i + 1) * 4 > me.length) {
482
499
  const a = new Float64Array(me.length * 2);
483
500
  a.set(me), me = a;
@@ -485,14 +502,14 @@ function Tn(e, t, n, s, i) {
485
502
  const r = i * 4;
486
503
  me[r] = e - n / 2, me[r + 1] = t - s / 2, me[r + 2] = e + n / 2, me[r + 3] = t + s / 2;
487
504
  }
488
- function Zr(e) {
505
+ function Jr(e) {
489
506
  ze.length = 0;
490
507
  for (const d of Z.entries)
491
- d.live ? (d.score = Ur(d, e), ze.push(d)) : d.placed = !1;
492
- ze.sort(Br);
508
+ d.live ? (d.score = Zr(d, e), ze.push(d)) : d.placed = !1;
509
+ ze.sort(Ur);
493
510
  let t = 0, n = 0, s = 0;
494
511
  for (const d of ze)
495
- d.clip && Lr[d.kind] ? (d.show = 0, d.placed = !1, n++) : Cn(d.x, d.y, d.w, d.h, t) ? (Tn(d.x, d.y, d.w, d.h, t++), d.show = 1, d.subOff = !1, d.placed = !0) : d.w1 > 0 && Cn(d.x1, d.y1, d.w1, d.h1, t) ? (Tn(d.x1, d.y1, d.w1, d.h1, t++), d.show = 1, d.subOff = !0, d.placed = !0, s++) : (d.show = 0, d.placed = !1, n++);
512
+ d.clip && Br[d.kind] ? (d.show = 0, d.placed = !1, n++) : zn(d.x, d.y, d.w, d.h, t) ? (Pn(d.x, d.y, d.w, d.h, t++), d.show = 1, d.subOff = !1, d.placed = !0) : d.w1 > 0 && zn(d.x1, d.y1, d.w1, d.h1, t) ? (Pn(d.x1, d.y1, d.w1, d.h1, t++), d.show = 1, d.subOff = !0, d.placed = !0, s++) : (d.show = 0, d.placed = !1, n++);
496
513
  let i = 0, r = 0;
497
514
  for (const d of ze) d.kind === "cluster" && (i = Math.max(i, d.w), r = Math.max(r, d.h));
498
515
  const a = Z.badge;
@@ -500,17 +517,17 @@ function Zr(e) {
500
517
  const l = Z.stats;
501
518
  l.shown = t, l.hidden = n, l.dropped = s, l.off = Z.entries.length - ze.length, ze.length = 0;
502
519
  }
503
- function Jr(e, t, n) {
520
+ function Hr(e, t, n) {
504
521
  if (Z.pxk = Math.min(1, Math.max(0.78, Math.sqrt(Math.min(t / 1280, n / 760)))), Z.due) {
505
- Z.due = !1, Zr(e);
522
+ Z.due = !1, Jr(e);
506
523
  for (const s of Z.entries) s.live = !1;
507
- } else e - Z.last >= Fr && (Z.last = e, Z.due = !0);
524
+ } else e - Z.last >= Lr && (Z.last = e, Z.due = !0);
508
525
  }
509
- const Hr = { agent: !1, skill: !1, sub: !1, run: !0, mcp: !0, resource: !0, backend: !0, cluster: !0, graph: !1, extra: !1 };
510
- function jr(e, t) {
511
- for (const n of Z.entries) Hr[n.kind] && e - n.seen < 600 && (n.show > 0 || !Z.active) && t(n);
526
+ const jr = { agent: !1, skill: !1, sub: !1, run: !0, mcp: !0, resource: !0, backend: !0, cluster: !0, graph: !1, extra: !1 };
527
+ function Xr(e, t) {
528
+ for (const n of Z.entries) jr[n.kind] && e - n.seen < 600 && (n.show > 0 || !Z.active) && t(n);
512
529
  }
513
- function Xr() {
530
+ function Kr() {
514
531
  const e = Z.entries.filter((n) => n.drawn && performance.now() - n.seen < 300);
515
532
  let t = 0;
516
533
  for (let n = 0; n < e.length; n++)
@@ -522,15 +539,15 @@ function Xr() {
522
539
  }
523
540
  typeof window < "u" && (window.__agentglowLabels = {
524
541
  labels: Z,
525
- snapshot: () => ({ ...Z.stats, total: Z.entries.length, overlaps: Xr() })
542
+ snapshot: () => ({ ...Z.stats, total: Z.entries.length, overlaps: Kr() })
526
543
  });
527
- const Rs = { nRef: 4, min: 0.6, max: 1.6, minRadius: 5, maxRadius: 80, margin: 1.12 }, C = {
544
+ const Ts = { nRef: 4, min: 0.6, max: 1.6, minRadius: 5, maxRadius: 80, margin: 1.12 }, C = {
528
545
  scale: 1,
529
546
  spread: 1,
530
547
  label: 1,
531
548
  /** weighted visible agent count used for the current target */
532
549
  n: 0,
533
- profile: { ...Rs },
550
+ profile: { ...Ts },
534
551
  /** canvas css px + HUD insets (px) measured by FitCamera */
535
552
  w: 1600,
536
553
  h: 900,
@@ -550,29 +567,29 @@ const Rs = { nRef: 4, min: 0.6, max: 1.6, minRadius: 5, maxRadius: 80, margin: 1
550
567
  /** screen shrink of a stage "up" (b) step: 1 for xy stages, |sin(elevation)| for a tilted xz ground plane */
551
568
  foreshorten: 1
552
569
  };
553
- function Kr(e) {
554
- C.profile = { ...Rs, ...e }, de = -1;
570
+ function Qr(e) {
571
+ C.profile = { ...Ts, ...e }, de = -1;
555
572
  }
556
- let de = -1, qt = NaN;
557
- const xe = { from: 1, t0: 0, dur: 0 }, dn = (e) => y.MathUtils.clamp(Math.sqrt(C.profile.nRef / Math.max(1, e)), C.profile.min, C.profile.max), Cs = (e) => e * e * (3 - 2 * e), st = { nLive: 0, activityAt: -1e9 };
558
- function Qr(e, t, n = t) {
559
- st.nLive = t, n !== qt && (Number.isNaN(qt) || (st.activityAt = e), qt = n), de < 0 && (C.n = t, de = dn(t), C.scale = de, xe.dur = 0);
573
+ let de = -1, Wt = NaN;
574
+ const xe = { from: 1, t0: 0, dur: 0 }, hn = (e) => y.MathUtils.clamp(Math.sqrt(C.profile.nRef / Math.max(1, e)), C.profile.min, C.profile.max), zs = (e) => e * e * (3 - 2 * e), st = { nLive: 0, activityAt: -1e9 };
575
+ function Yr(e, t, n = t) {
576
+ st.nLive = t, n !== Wt && (Number.isNaN(Wt) || (st.activityAt = e), Wt = n), de < 0 && (C.n = t, de = hn(t), C.scale = de, xe.dur = 0);
560
577
  const s = xe.dur > 0 ? Math.min(1, (e - xe.t0) / xe.dur) : 1;
561
- C.scale = xe.from + (de - xe.from) * Cs(s), s >= 1 && (C.scale = de), C.spread = Math.max(0.85, Math.pow(C.scale, 0.8)), C.label = y.MathUtils.clamp(Math.pow(C.scale, 0.5), 0.85, 1.25);
578
+ C.scale = xe.from + (de - xe.from) * zs(s), s >= 1 && (C.scale = de), C.spread = Math.max(0.85, Math.pow(C.scale, 0.8)), C.label = y.MathUtils.clamp(Math.pow(C.scale, 0.5), 0.85, 1.25);
562
579
  }
563
- const Yr = () => de > 0 && Math.abs(dn(st.nLive) - de) / de > 0.06;
564
- function zn(e, t) {
580
+ const _r = () => de > 0 && Math.abs(hn(st.nLive) - de) / de > 0.06;
581
+ function Gn(e, t) {
565
582
  C.n = st.nLive;
566
- const n = dn(C.n);
583
+ const n = hn(C.n);
567
584
  de > 0 && Math.abs(n - de) / de <= 0.06 || (xe.from = C.scale, xe.t0 = e, xe.dur = t, de = n);
568
585
  }
569
- const Ts = [".hud-top", ".hud-dock", ".hud-side"], Yt = "agentglow:hud-layout";
570
- function _r(e, t = 1.6) {
586
+ const Ps = [".hud-top", ".hud-dock", ".hud-side"], $t = "agentglow:hud-layout";
587
+ function $r(e, t = 1.6) {
571
588
  var u;
572
589
  const n = e.closest(".scene-root") ?? ((u = e.parentElement) == null ? void 0 : u.parentElement), s = e.getBoundingClientRect(), i = { top: 0, right: 0, bottom: 0, left: 0 };
573
590
  if (!n || s.width < 1) return i;
574
591
  const r = [];
575
- for (const S of Ts) {
592
+ for (const S of Ps) {
576
593
  const A = n.querySelector(S);
577
594
  if (!A || A.offsetParent === null) continue;
578
595
  const m = A.getBoundingClientRect();
@@ -606,10 +623,10 @@ function _r(e, t = 1.6) {
606
623
  }
607
624
  return i;
608
625
  }
609
- const Pn = new y.Vector3();
626
+ const In = new y.Vector3();
610
627
  new y.Vector3();
611
- const dt = new y.Vector3(), Gn = new y.Matrix4(), Me = 0.85, Ne = 8, $r = 1100, In = 2500, ea = 1.04, ta = 1e3, na = 1.18, Nn = 7e3, sa = 2e3, ra = 1e4, aa = 450, qn = 300, Wn = 0.985;
612
- function oa({ points: e, origin: t }) {
628
+ const dt = new y.Vector3(), Nn = new y.Matrix4(), Me = 0.85, Ne = 8, ea = 1100, qn = 2500, ta = 1.04, na = 1e3, sa = 1.18, Wn = 7e3, ra = 2e3, aa = 1e4, oa = 450, Dn = 300, Fn = 0.985;
629
+ function ia({ points: e, origin: t }) {
613
630
  const n = ct((c) => c.camera), s = ct((c) => c.controls), i = ct((c) => c.gl), r = ct((c) => c.size), a = B({
614
631
  base: 0,
615
632
  user: 1,
@@ -649,7 +666,7 @@ function oa({ points: e, origin: t }) {
649
666
  const E = new Float64Array(c.a.length * 2);
650
667
  E.set(c.a), c.a = E;
651
668
  }
652
- dt.set(o - c.tgt.x, u - c.tgt.y, S - c.tgt.z).applyMatrix4(Gn);
669
+ dt.set(o - c.tgt.x, u - c.tgt.y, S - c.tgt.z).applyMatrix4(Nn);
653
670
  const T = c.n * Ne;
654
671
  c.a[T] = dt.x, c.a[T + 1] = dt.y, c.a[T + 2] = dt.z, c.a[T + 3] = A, c.a[T + 4] = m, c.a[T + 5] = b, c.a[T + 6] = v, c.a[T + 7] = N, c.n++;
655
672
  };
@@ -667,12 +684,12 @@ function oa({ points: e, origin: t }) {
667
684
  const M = () => {
668
685
  a.current.lastMeasure = -1e9, a.current.hudMoved = !0;
669
686
  };
670
- return c.addEventListener(Yt, M), () => c.removeEventListener(Yt, M);
687
+ return c.addEventListener($t, M), () => c.removeEventListener($t, M);
671
688
  }, [i]), $(() => {
672
689
  if (!s) return;
673
690
  const c = a.current, M = () => c.userActive = !0, o = () => {
674
- c.userActive = !1, c.userUntil = performance.now() + ra, c.want = c.from = c.cur, c.dur = 0;
675
- const u = s.target ?? Pn.set(0, 0, 0), S = n.position.distanceTo(u);
691
+ c.userActive = !1, c.userUntil = performance.now() + aa, c.want = c.from = c.cur, c.dur = 0;
692
+ const u = s.target ?? In.set(0, 0, 0), S = n.position.distanceTo(u);
676
693
  c.cur > 0 && (c.user = y.MathUtils.clamp(S / c.cur, 0.35, 3));
677
694
  };
678
695
  return s.addEventListener("start", M), s.addEventListener("end", o), () => {
@@ -681,31 +698,31 @@ function oa({ points: e, origin: t }) {
681
698
  }, [s, n]), ve((c, M) => {
682
699
  var Ce;
683
700
  const o = a.current, u = l.current;
684
- zs = u, _t = { camera: n, points: e, origin: t, canvas: i.domElement };
701
+ Gs = u, en = { camera: n, points: e, origin: t, canvas: i.domElement };
685
702
  const S = Math.min(0.1, M), A = performance.now(), m = Math.max(1, r.width), b = Math.max(1, r.height);
686
703
  if (A - o.lastMeasure > 700) {
687
704
  o.lastMeasure = A;
688
705
  const U = C.insets;
689
- C.insets = _r(i.domElement, o.aspect), o.hudMoved && (Math.max(Math.abs(U.top - C.insets.top), Math.abs(U.right - C.insets.right), Math.abs(U.bottom - C.insets.bottom), Math.abs(U.left - C.insets.left)) > 12 && (o.refit = !0), o.hudMoved = !1);
706
+ C.insets = $r(i.domElement, o.aspect), o.hudMoved && (Math.max(Math.abs(U.top - C.insets.top), Math.abs(U.right - C.insets.right), Math.abs(U.bottom - C.insets.bottom), Math.abs(U.left - C.insets.left)) > 12 && (o.refit = !0), o.hudMoved = !1);
690
707
  }
691
708
  const v = C.insets, N = Math.max(m * 0.3, m - v.left - v.right), T = Math.max(b * 0.3, b - v.top - v.bottom);
692
709
  C.aspect = N / T;
693
- const E = (s == null ? void 0 : s.target) ?? Pn.set(0, 0, 0);
710
+ const E = (s == null ? void 0 : s.target) ?? In.set(0, 0, 0);
694
711
  o.base || (o.base = n.position.distanceTo(E) || 20), o.dir.subVectors(n.position, E);
695
712
  const P = o.dir.length() || 1;
696
- o.dir.divideScalar(P), Gn.extractRotation(n.matrixWorld).invert(), C.foreshorten = y.MathUtils.clamp(g.plane === "xz" ? Math.abs(o.dir.y) : Math.sqrt(1 - o.dir.y * o.dir.y), 0.35, 1);
697
- const w = Math.tan(y.MathUtils.degToRad(n.fov) / 2), R = N / m * w * n.aspect, G = T / b * w;
698
- u.n = 0, u.tgt.copy(E), u.tpp = 2 * w / b, e(d), jr(A, f);
699
- const O = u.n, x = C.profile, D = x.minRadius / Math.min(R, G), F = x.maxRadius / Math.min(R, G);
713
+ o.dir.divideScalar(P), Nn.extractRotation(n.matrixWorld).invert(), C.foreshorten = y.MathUtils.clamp(g.plane === "xz" ? Math.abs(o.dir.y) : Math.sqrt(1 - o.dir.y * o.dir.y), 0.35, 1);
714
+ const w = Math.tan(y.MathUtils.degToRad(n.fov) / 2), V = N / m * w * n.aspect, G = T / b * w;
715
+ u.n = 0, u.tgt.copy(E), u.tpp = 2 * w / b, e(d), Xr(A, f);
716
+ const O = u.n, x = C.profile, D = x.minRadius / Math.min(V, G), F = x.maxRadius / Math.min(V, G);
700
717
  let q;
701
718
  if (!O) q = o.want || o.base;
702
719
  else {
703
720
  const U = x.margin;
704
- if (Dn(u.a, O, F, U, R, G)) {
721
+ if (Ln(u.a, O, F, U, V, G)) {
705
722
  let se = Math.max(0.5, Math.min(D, F) * 0.25), he = F;
706
723
  for (let je = 0; je < 22; je++) {
707
724
  const De = (se + he) / 2;
708
- Dn(u.a, O, De, U, R, G) ? he = De : se = De;
725
+ Ln(u.a, O, De, U, V, G) ? he = De : se = De;
709
726
  }
710
727
  q = y.MathUtils.clamp(he, D, F);
711
728
  } else q = F;
@@ -713,38 +730,38 @@ function oa({ points: e, origin: t }) {
713
730
  let X = !1;
714
731
  if (O) {
715
732
  vt(u.a, O, P);
716
- const U = R * Wn, se = G * Wn;
717
- X = J[0] < o.sx - U || J[1] > o.sx + U || J[2] < o.sy - se || J[3] > o.sy + se, o.aspect += (y.MathUtils.clamp((J[1] - J[0]) / Math.max(1e-4, J[3] - J[2]), 0.5, 4) - o.aspect) * 0.1, C.fill[0] = (J[1] - J[0]) / (2 * R), C.fill[1] = (J[3] - J[2]) / (2 * G);
733
+ const U = V * Fn, se = G * Fn;
734
+ X = J[0] < o.sx - U || J[1] > o.sx + U || J[2] < o.sy - se || J[3] > o.sy + se, o.aspect += (y.MathUtils.clamp((J[1] - J[0]) / Math.max(1e-4, J[3] - J[2]), 0.5, 4) - o.aspect) * 0.1, C.fill[0] = (J[1] - J[0]) / (2 * V), C.fill[1] = (J[3] - J[2]) / (2 * G);
718
735
  }
719
736
  (!o.lastDesired || Math.abs(q - o.lastDesired) / o.lastDesired > 5e-3) && (o.steadySince = A), o.lastDesired = q;
720
737
  const j = A - o.steadySince, K = o.userActive || A < o.userUntil;
721
738
  let L = -1, k = 0, I = !1;
722
739
  if (!o.want || o.refit)
723
- L = q, k = o.want ? aa : 0, o.refit = !1;
740
+ L = q, k = o.want ? oa : 0, o.refit = !1;
724
741
  else if (o.phase2) {
725
- if (A >= o.phase2 && (j >= qn || A - o.phase2 >= In)) {
742
+ if (A >= o.phase2 && (j >= Dn || A - o.phase2 >= qn)) {
726
743
  o.phase2 = 0;
727
744
  const U = q / o.want;
728
745
  (U > 1.02 || U < 1 / 1.02) && (L = q, k = o.phase2Ms);
729
746
  }
730
747
  } else if (!K) {
731
- const U = q / o.want, se = A - Math.max(st.activityAt, p.spawnHintAt), he = X && o.user >= 0.99 && (o.dur <= 0 || A - o.t0 >= o.dur);
732
- U > ea || he ? (o.inSince = 0, o.outSince ? o.outMax = Math.max(o.outMax, q) : (o.outSince = A, o.outMax = q), (se >= $r && j >= qn || A - o.outSince >= In) && (L = Math.max(o.outMax, q, he ? o.want : 0), k = ta, I = !0)) : (o.outSince = 0, U < 1 / na ? (o.inSince || (o.inSince = A), A - o.inSince >= Nn && se >= Nn && (L = q, k = sa, I = !0)) : o.inSince = 0);
748
+ const U = q / o.want, se = A - Math.max(st.activityAt, h.spawnHintAt), he = X && o.user >= 0.99 && (o.dur <= 0 || A - o.t0 >= o.dur);
749
+ U > ta || he ? (o.inSince = 0, o.outSince ? o.outMax = Math.max(o.outMax, q) : (o.outSince = A, o.outMax = q), (se >= ea && j >= Dn || A - o.outSince >= qn) && (L = Math.max(o.outMax, q, he ? o.want : 0), k = na, I = !0)) : (o.outSince = 0, U < 1 / sa ? (o.inSince || (o.inSince = A), A - o.inSince >= Wn && se >= Wn && (L = q, k = ra, I = !0)) : o.inSince = 0);
733
750
  }
734
751
  if (L >= 0)
735
- if (o.outSince = o.inSince = 0, I && Yr() && !tt)
736
- zn(A, k * 0.8), o.phase2 = A + k * 0.8 + 250, o.phase2Ms = k;
752
+ if (o.outSince = o.inSince = 0, I && _r() && !tt)
753
+ Gn(A, k * 0.8), o.phase2 = A + k * 0.8 + 250, o.phase2Ms = k;
737
754
  else {
738
755
  const U = tt ? 0 : k;
739
- o.from = o.cur || L, o.want = L, o.t0 = A, o.dur = U, o.fx = o.sx, o.fy = o.sy, O && (vt(u.a, O, L * o.user), o.tx = y.MathUtils.clamp((J[0] + J[1]) / 2, -R * Me, R * Me), o.ty = y.MathUtils.clamp((J[2] + J[3]) / 2, -G * Me, G * Me)), zn(A, U);
756
+ o.from = o.cur || L, o.want = L, o.t0 = A, o.dur = U, o.fx = o.sx, o.fy = o.sy, O && (vt(u.a, O, L * o.user), o.tx = y.MathUtils.clamp((J[0] + J[1]) / 2, -V * Me, V * Me), o.ty = y.MathUtils.clamp((J[2] + J[3]) / 2, -G * Me, G * Me)), Gn(A, U);
740
757
  }
741
758
  const H = 2 * w * o.want * o.user / b;
742
759
  Math.abs(H - C.wpp) / C.wpp > 0.1 && (C.wpp = H);
743
- const Q = o.dur > 0 ? Math.min(1, (A - o.t0) / o.dur) : 1, W = Cs(Q);
760
+ const Q = o.dur > 0 ? Math.min(1, (A - o.t0) / o.dur) : 1, W = zs(Q);
744
761
  if (o.cur = o.from + (o.want - o.from) * W, K && O) {
745
762
  vt(u.a, O, P);
746
763
  const U = 1 - Math.exp(-S / 0.3);
747
- o.tx = y.MathUtils.clamp((J[0] + J[1]) / 2, -R * Me, R * Me), o.ty = y.MathUtils.clamp((J[2] + J[3]) / 2, -G * Me, G * Me), o.sx += (o.tx - o.sx) * U, o.sy += (o.ty - o.sy) * U, o.fx = o.sx, o.fy = o.sy;
764
+ o.tx = y.MathUtils.clamp((J[0] + J[1]) / 2, -V * Me, V * Me), o.ty = y.MathUtils.clamp((J[2] + J[3]) / 2, -G * Me, G * Me), o.sx += (o.tx - o.sx) * U, o.sy += (o.ty - o.sy) * U, o.fx = o.sx, o.fy = o.sy;
748
765
  } else
749
766
  o.sx = o.fx + (o.tx - o.fx) * W, o.sy = o.fy + (o.ty - o.fy) * W;
750
767
  C.cam.want = o.want, C.cam.fit = q, C.cam.dist = P, C.cam.user = o.user, C.cam.points = O;
@@ -763,17 +780,17 @@ function vt(e, t, n) {
763
780
  }
764
781
  J[0] = s, J[1] = i, J[2] = r, J[3] = a;
765
782
  }
766
- function Dn(e, t, n, s, i, r) {
783
+ function Ln(e, t, n, s, i, r) {
767
784
  for (let c = 0; c < t; c++) if (n - e[c * Ne + 2] - e[c * Ne + 3] <= 0.05) return !1;
768
785
  vt(e, t, n);
769
786
  const a = (J[0] + J[1]) / 2, l = (J[2] + J[3]) / 2, d = Math.max(0, Math.abs(a) - i * Me), f = Math.max(0, Math.abs(l) - r * Me);
770
787
  return ((J[1] - J[0]) / 2 + d) * s <= i && ((J[3] - J[2]) / 2 + f) * s <= r;
771
788
  }
772
- let zs = null, _t = null;
773
- function ia() {
774
- if (!_t) return null;
775
- const { camera: e, points: t, origin: n, canvas: s } = _t, i = s.getBoundingClientRect(), r = i.width, a = i.height, l = s.closest(".scene-root") ?? document, d = [];
776
- for (const A of Ts) {
789
+ let Gs = null, en = null;
790
+ function ca() {
791
+ if (!en) return null;
792
+ const { camera: e, points: t, origin: n, canvas: s } = en, i = s.getBoundingClientRect(), r = i.width, a = i.height, l = s.closest(".scene-root") ?? document, d = [];
793
+ for (const A of Ps) {
777
794
  const m = l.querySelector(A);
778
795
  if (!m || m.offsetParent === null) continue;
779
796
  const b = m.getBoundingClientRect();
@@ -799,8 +816,8 @@ function ia() {
799
816
  const S = c.filter((A) => A.hits.length);
800
817
  return { W: r, H: a, huds: d, insets: C.insets, total: c.length, clipped: S.length, items: S };
801
818
  }
802
- function ca() {
803
- const e = zs;
819
+ function la() {
820
+ const e = Gs;
804
821
  if (!e) return [];
805
822
  const t = [];
806
823
  for (let n = 0; n < e.n; n++) {
@@ -809,57 +826,57 @@ function ca() {
809
826
  }
810
827
  return t;
811
828
  }
812
- typeof window < "u" && (window.__agentglowFit = Object.assign(C, { framedPoints: ca, clipReport: ia }));
813
- const be = Math.PI, Ps = be * 2, We = 2.2, Gs = (e) => ({
829
+ typeof window < "u" && (window.__agentglowFit = Object.assign(C, { framedPoints: la, clipReport: ca }));
830
+ const be = Math.PI, Is = be * 2, We = 2.2, Ns = (e) => ({
814
831
  sx: e > 1 ? Math.min(1.7, Math.pow(e, 0.6)) : 1,
815
832
  sy: e < 1 ? Math.min(1.7, Math.pow(1 / e, 0.6)) : 1
816
833
  });
817
- function fn(e, t, n, s, i) {
834
+ function pn(e, t, n, s, i) {
818
835
  const r = t.n;
819
836
  if (r <= 1) {
820
837
  n.a = 0, n.b = 0, n.angle = -be / 2;
821
838
  return;
822
839
  }
823
- const l = (r === 2 ? 0 : r === 4 ? be / 4 : be / 2) - e * Ps / r, f = (Math.max(t.hu, t.hv) + i / 2) / Math.sin(be / r), { sx: c, sy: M } = s ? Gs(t.aspect) : { sx: 1, sy: 1 };
840
+ const l = (r === 2 ? 0 : r === 4 ? be / 4 : be / 2) - e * Is / r, f = (Math.max(t.hu, t.hv) + i / 2) / Math.sin(be / r), { sx: c, sy: M } = s ? Ns(t.aspect) : { sx: 1, sy: 1 };
824
841
  n.a = Math.cos(l) * f * c, n.b = Math.sin(l) * f * M, n.angle = Math.atan2(n.b, n.a);
825
842
  }
826
- const la = 186, ua = 46, da = 34, Wt = { w: 7, h: 6.5 };
827
- function Is(e = 0) {
843
+ const ua = 186, da = 46, fa = 34, Dt = { w: 7, h: 6.5 };
844
+ function qs(e = 0) {
828
845
  const t = Z.pxk, n = Math.max(120, C.w - C.insets.left - C.insets.right), s = Math.max(100, C.h - C.insets.top - C.insets.bottom);
829
- let i = (Z.badge.w || la * t) * 1.12;
846
+ let i = (Z.badge.w || ua * t) * 1.12;
830
847
  i = e > 1 ? Math.min(i, 0.85 * Math.min(n, s * 1.3) / (1 / Math.sin(be / e) + 1)) : Math.min(i, 0.85 * n / 2);
831
- const r = Math.min((Z.badge.h || ua * t) * 1.15, 0.22 * s);
832
- return Wt.w = Math.max(7, i * C.wpp), Wt.h = Math.max(6.5, 5 + r * C.wpp), Wt;
848
+ const r = Math.min((Z.badge.h || da * t) * 1.15, 0.22 * s);
849
+ return Dt.w = Math.max(7, i * C.wpp), Dt.h = Math.max(6.5, 5 + r * C.wpp), Dt;
833
850
  }
834
- function Ns(e, t, n, s, i) {
835
- const r = Is(), a = Math.min(t, Math.max(2, Math.floor(Math.max(2 * n.hw + r.w * 0.6, r.w * 2) / r.w))), l = Math.floor(e / a), d = Math.min(a, t - l * a), f = Math.min(1.7, 1 / Math.max(0.35, C.foreshorten));
851
+ function Ws(e, t, n, s, i) {
852
+ const r = qs(), a = Math.min(t, Math.max(2, Math.floor(Math.max(2 * n.hw + r.w * 0.6, r.w * 2) / r.w))), l = Math.floor(e / a), d = Math.min(a, t - l * a), f = Math.min(1.7, 1 / Math.max(0.35, C.foreshorten));
836
853
  i.a = (e % a - (d - 1) / 2) * r.w, i.b = s - l * r.h * f;
837
854
  }
838
- function hn(e, t, n, s, i) {
839
- const r = Is(t), a = be / 2 + be / Math.max(1, t) - e * Ps / Math.max(1, t), l = Math.max(n.hw, n.hh) + da * C.wpp * Z.pxk, d = Math.max(l + 3.6, t > 1 ? r.w / (2 * Math.sin(be / t)) : 0), { sx: f, sy: c } = i ? Gs(n.aspect) : { sx: 1, sy: 1 };
855
+ function mn(e, t, n, s, i) {
856
+ const r = qs(t), a = be / 2 + be / Math.max(1, t) - e * Is / Math.max(1, t), l = Math.max(n.hw, n.hh) + fa * C.wpp * Z.pxk, d = Math.max(l + 3.6, t > 1 ? r.w / (2 * Math.sin(be / t)) : 0), { sx: f, sy: c } = i ? Ns(n.aspect) : { sx: 1, sy: 1 };
840
857
  s.a = Math.cos(a) * d * f, s.b = Math.sin(a) * d * c;
841
858
  }
842
- const qs = {
859
+ const Ds = {
843
860
  name: "radial",
844
861
  local: { topGap: 3.6, fanLen: 3.4, subGap: 2.7, fan: "spread", stackGap: 2, pad: 1.3 },
845
- run: (e, t, n) => fn(e, t, n, !0, We),
846
- cluster: (e, t, n, s, i) => hn(t, n, s, i, !0),
862
+ run: (e, t, n) => pn(e, t, n, !0, We),
863
+ cluster: (e, t, n, s, i) => mn(t, n, s, i, !0),
847
864
  periphery: "sides"
848
- }, fa = {
865
+ }, ha = {
849
866
  name: "radar",
850
867
  local: { topGap: 3.2, fanLen: 3, subGap: 2.5, fan: "spread", stackGap: 2, pad: 1.2 },
851
- run: (e, t, n) => fn(e, t, n, !1, We),
852
- cluster: (e, t, n, s, i) => hn(t, n, s, i, !1),
868
+ run: (e, t, n) => pn(e, t, n, !1, We),
869
+ cluster: (e, t, n, s, i) => mn(t, n, s, i, !1),
853
870
  periphery: "rim",
854
871
  round: !0
855
- }, ha = {
872
+ }, pa = {
856
873
  name: "drift",
857
874
  local: { topGap: 4, fanLen: 3.8, subGap: 3, fan: "spread", stackGap: 2.2, pad: 1.5 },
858
- run: (e, t, n) => fn(e, t, n, !0, We * 1.6),
859
- cluster: (e, t, n, s, i) => hn(t, n, s, i, !0),
875
+ run: (e, t, n) => pn(e, t, n, !0, We * 1.6),
876
+ cluster: (e, t, n, s, i) => mn(t, n, s, i, !0),
860
877
  periphery: "sides"
861
878
  };
862
- function Ws(e, t, n, s) {
879
+ function Fs(e, t, n, s) {
863
880
  let i = 1, r = 1 / 0;
864
881
  for (let a = 1; a <= e; a++) {
865
882
  const l = Math.ceil(e / a), d = Math.abs(Math.log(a * t / (l * n) / s));
@@ -867,29 +884,29 @@ function Ws(e, t, n, s) {
867
884
  }
868
885
  return i;
869
886
  }
870
- const Fn = 2.4, pa = {
887
+ const Bn = 2.4, ma = {
871
888
  name: "lanes",
872
889
  local: { topGap: 4.6, fanLen: 2, subGap: 1.6, fan: "stack", stackGap: 1.5, pad: 1.2, subShift: 2.8 },
873
890
  run(e, t, n) {
874
- const s = t.n, i = 2 * t.hu + We * 2.5, r = 2 * t.hv + We + Fn, a = Ws(s, i, r, t.aspect), l = Math.ceil(s / a), d = e % a, f = Math.floor(e / a), c = Math.min(a, s - f * a);
875
- n.a = (d - (c - 1) / 2) * i, n.b = ((l - 1) / 2 - f) * r - Fn / 2, n.angle = -be / 2;
891
+ const s = t.n, i = 2 * t.hu + We * 2.5, r = 2 * t.hv + We + Bn, a = Fs(s, i, r, t.aspect), l = Math.ceil(s / a), d = e % a, f = Math.floor(e / a), c = Math.min(a, s - f * a);
892
+ n.a = (d - (c - 1) / 2) * i, n.b = ((l - 1) / 2 - f) * r - Bn / 2, n.angle = -be / 2;
876
893
  },
877
894
  cluster(e, t, n, s, i) {
878
- Ns(t, n, s, -(s.hh + 4), i);
895
+ Ws(t, n, s, -(s.hh + 4), i);
879
896
  },
880
897
  periphery: "sides"
881
- }, ma = {
898
+ }, ga = {
882
899
  name: "grid",
883
900
  local: { topGap: 3.4, fanLen: 3, subGap: 2.4, fan: "spread", stackGap: 2, pad: 1.3 },
884
901
  run(e, t, n) {
885
- const s = t.n, i = 2 * t.hu + We, r = 2 * t.hv + We, a = Ws(s, i, r, t.aspect), l = Math.ceil(s / a), d = e % a, f = Math.floor(e / a), c = Math.min(a, s - f * a);
902
+ const s = t.n, i = 2 * t.hu + We, r = 2 * t.hv + We, a = Fs(s, i, r, t.aspect), l = Math.ceil(s / a), d = e % a, f = Math.floor(e / a), c = Math.min(a, s - f * a);
886
903
  n.a = (d - (c - 1) / 2) * i, n.b = ((l - 1) / 2 - f) * r, n.angle = -be / 2;
887
904
  },
888
905
  cluster(e, t, n, s, i) {
889
- Ns(t, n, s, -(s.hh + 4), i);
906
+ Ws(t, n, s, -(s.hh + 4), i);
890
907
  },
891
908
  periphery: "sides"
892
- }, ga = { radial: qs, radar: fa, drift: ha, lanes: pa, grid: ma }, re = 6, Ds = 12, Aa = 9, ba = 10, va = 12, Ma = 6, ya = 8e3, xa = 250, wa = 1500, ka = 300, Sa = ["planner", "researcher", "graph_scout", "records_scout", "data_scout", "writer"], Oa = (e) => ({
909
+ }, Aa = { radial: Ds, radar: ha, drift: pa, lanes: ma, grid: ga }, re = 6, Ls = 12, ba = 9, va = 10, Ma = 12, ya = 6, xa = 8e3, wa = 250, ka = 1500, Sa = 300, Oa = ["planner", "researcher", "graph_scout", "records_scout", "data_scout", "writer"], Ea = (e) => ({
893
910
  lane: e,
894
911
  active: !1,
895
912
  runs: 0,
@@ -917,82 +934,82 @@ const Fn = 2.4, pa = {
917
934
  expandedRuns: 0,
918
935
  collapsedRuns: 0,
919
936
  activeClusters: 0,
920
- clusters: Array.from({ length: re }, (e, t) => Oa(t))
921
- }, ue = /* @__PURE__ */ new Set(), Ue = /* @__PURE__ */ new Map(), Oe = /* @__PURE__ */ new Set(), Ye = /* @__PURE__ */ new Map(), Ea = 0.25, ft = /* @__PURE__ */ new Map(), Fe = [], Ee = /* @__PURE__ */ new Map(), St = /* @__PURE__ */ new Map(), Pe = [], Dt = new Uint16Array(re), ht = /* @__PURE__ */ new Map();
922
- let Ln = -1e9, Bn = -1, Ge = !0, Un = null, Zn = -1;
923
- const $t = /* @__PURE__ */ new Set();
924
- let Fs = 0;
937
+ clusters: Array.from({ length: re }, (e, t) => Ea(t))
938
+ }, ue = /* @__PURE__ */ new Set(), Ue = /* @__PURE__ */ new Map(), Oe = /* @__PURE__ */ new Set(), Ye = /* @__PURE__ */ new Map(), Ra = 0.25, ft = /* @__PURE__ */ new Map(), Fe = [], Ee = /* @__PURE__ */ new Map(), St = /* @__PURE__ */ new Map(), Pe = [], Ft = new Uint16Array(re), ht = /* @__PURE__ */ new Map();
939
+ let Un = -1e9, Zn = -1, Ge = !0, Jn = null, Hn = -1;
940
+ const tn = /* @__PURE__ */ new Set();
941
+ let Bs = 0;
925
942
  const He = () => {
926
- Fs++, $t.forEach((e) => e());
927
- }, pn = (e) => (e % re + re) % re;
943
+ Bs++, tn.forEach((e) => e());
944
+ }, gn = (e) => (e % re + re) % re;
928
945
  function Mt(e) {
929
- const t = p.runs.get(e);
930
- return t ? pn(t.slot) : Math.floor(ln(e, 77) * re) % re;
946
+ const t = h.runs.get(e);
947
+ return t ? gn(t.slot) : Math.floor(dn(e, 77) * re) % re;
931
948
  }
932
949
  const Va = (e) => Mt(e.run);
933
- function Ft(e) {
950
+ function Lt(e) {
934
951
  if (!z.grouped) return !0;
935
- const t = typeof e == "string" ? p.instances.get(e) : e;
952
+ const t = typeof e == "string" ? h.instances.get(e) : e;
936
953
  return t ? ue.has(t.run) : !1;
937
954
  }
938
- function Jn(e) {
955
+ function jn(e) {
939
956
  return !z.grouped || ue.has(e);
940
957
  }
941
- function lc(e) {
942
- return z.grouped ? e === p.selected || Oe.has(e) : !0;
958
+ function uc(e) {
959
+ return z.grouped ? e === h.selected || Oe.has(e) : !0;
943
960
  }
944
- const en = (e) => z.clusters[pn(e)];
945
- function Ra(e) {
946
- z.expandedLane = pn(e), z.showAll = !1, Ue.clear(), Ge = !0, He();
961
+ const nn = (e) => z.clusters[gn(e)];
962
+ function Ca(e) {
963
+ z.expandedLane = gn(e), z.showAll = !1, Ue.clear(), Ge = !0, He();
947
964
  }
948
- function Ca() {
965
+ function Ta() {
949
966
  z.expandedLane = -1, Ue.clear(), Ge = !0, He();
950
967
  }
951
- function Hn(e) {
968
+ function Xn(e) {
952
969
  z.showAll = e, e && (z.expandedLane = -1), Ge = !0, He();
953
970
  }
954
- function Ta() {
971
+ function za() {
955
972
  return Ct(
956
- (e) => ($t.add(e), () => $t.delete(e)),
957
- () => Fs
973
+ (e) => (tn.add(e), () => tn.delete(e)),
974
+ () => Bs
958
975
  ), z;
959
976
  }
960
- const za = (e, t) => Ee.get(e) - Ee.get(t) || St.get(t) - St.get(e);
961
- function Pa(e) {
977
+ const Pa = (e, t) => Ee.get(e) - Ee.get(t) || St.get(t) - St.get(e);
978
+ function Ga(e) {
962
979
  Ye.clear(), ft.clear();
963
980
  let t = 0;
964
- for (const u of p.instances.values())
965
- Ye.set(u.run, (Ye.get(u.run) ?? 0) + (u.doneAt && !u.exitAt ? Ea : 1)), te(u) && (t++, ft.set(u.run, (ft.get(u.run) ?? 0) + 1));
981
+ for (const u of h.instances.values())
982
+ Ye.set(u.run, (Ye.get(u.run) ?? 0) + (u.doneAt && !u.exitAt ? Ra : 1)), te(u) && (t++, ft.set(u.run, (ft.get(u.run) ?? 0) + 1));
966
983
  z.alive = t;
967
984
  const n = z.crowded;
968
- !z.crowded && t > Ds ? z.crowded = !0 : z.crowded && t < Aa && (z.crowded = !1), !z.crowded && n && (z.showAll = !1, z.expandedLane = -1);
985
+ !z.crowded && t > Ls ? z.crowded = !0 : z.crowded && t < ba && (z.crowded = !1), !z.crowded && n && (z.showAll = !1, z.expandedLane = -1);
969
986
  const s = z.crowded && !z.showAll;
970
987
  let i = s !== z.grouped;
971
988
  if (z.grouped = s, !s) {
972
- (ue.size || Oe.size) && (i = !0), ue.clear(), Ue.clear(), Oe.clear(), z.expandedAgents = t, z.expandedRuns = p.runs.size, z.collapsedRuns = 0, z.activeClusters = 0;
989
+ (ue.size || Oe.size) && (i = !0), ue.clear(), Ue.clear(), Oe.clear(), z.expandedAgents = t, z.expandedRuns = h.runs.size, z.collapsedRuns = 0, z.activeClusters = 0;
973
990
  for (const u of z.clusters) u.active && (u.active = !1, u.runIds.length = 0, u.version++);
974
991
  i && z.version++, (i || n !== z.crowded) && He();
975
992
  return;
976
993
  }
977
- const r = p.selected ? p.instances.get(p.selected) : void 0, a = (r == null ? void 0 : r.run) ?? null;
994
+ const r = h.selected ? h.instances.get(h.selected) : void 0, a = (r == null ? void 0 : r.run) ?? null;
978
995
  Fe.length = 0, Ee.clear(), St.clear();
979
996
  for (const [u, S] of Ye) {
980
997
  if (S <= 0) continue;
981
- const A = p.runs.get(u), m = Mt(u), b = ue.has(u) && e - (Ue.get(u) ?? 0) < ya, v = u === a ? 0 : z.expandedLane === m ? 1 : b ? 2 : (ft.get(u) ?? 0) > 0 ? 3 : 4;
998
+ const A = h.runs.get(u), m = Mt(u), b = ue.has(u) && e - (Ue.get(u) ?? 0) < xa, v = u === a ? 0 : z.expandedLane === m ? 1 : b ? 2 : (ft.get(u) ?? 0) > 0 ? 3 : 4;
982
999
  Ee.set(u, v), St.set(u, (A == null ? void 0 : A.startedAt) ?? 0), Fe.push(u);
983
1000
  }
984
- Fe.sort(za);
985
- const l = z.expandedLane >= 0 ? va : ba;
1001
+ Fe.sort(Pa);
1002
+ const l = z.expandedLane >= 0 ? Ma : va;
986
1003
  let d = 0, f = 0;
987
- Dt.fill(0);
1004
+ Ft.fill(0);
988
1005
  for (let u = 0; u < 2; u++)
989
1006
  for (const S of Fe) {
990
1007
  const A = Ee.get(S);
991
1008
  if (A === -1) continue;
992
1009
  const m = Mt(S);
993
- if (u === 0 && A >= 2 && Dt[m]) continue;
1010
+ if (u === 0 && A >= 2 && Ft[m]) continue;
994
1011
  const b = Ye.get(S);
995
- (A === 0 || d === 0 || d + b <= l) && (d += b, f++, Dt[m]++, Ee.set(S, -1));
1012
+ (A === 0 || d === 0 || d + b <= l) && (d += b, f++, Ft[m]++, Ee.set(S, -1));
996
1013
  }
997
1014
  for (const u of ue)
998
1015
  Ee.get(u) !== -1 && (ue.delete(u), Ue.delete(u), i = !0);
@@ -1004,13 +1021,13 @@ function Pa(e) {
1004
1021
  for (const u of Fe)
1005
1022
  ue.has(u) || (z.clusters[Mt(u)].runIds.push(u), c++);
1006
1023
  z.collapsedRuns = c, Pe.length = 0, ht.clear();
1007
- for (const u of p.instances.values()) {
1024
+ for (const u of h.instances.values()) {
1008
1025
  if (!te(u) || !ue.has(u.run)) continue;
1009
1026
  const S = kt(u, e) + (u.status === "thinking" ? 0.6 : 0) + (Oe.has(u.id) ? 0.4 : 0) + (e - u.bornAt < 3e3 ? 1 : 0) + (u.subagent ? 0 : 0.2);
1010
1027
  ht.set(u.id, S), Pe.push(u);
1011
1028
  }
1012
1029
  Pe.sort((u, S) => ht.get(S.id) - ht.get(u.id));
1013
- const M = Math.min(Ma, Pe.length);
1030
+ const M = Math.min(ya, Pe.length);
1014
1031
  let o = Oe.size !== M;
1015
1032
  if (!o)
1016
1033
  for (let u = 0; u < M; u++) Oe.has(Pe[u].id) || (o = !0);
@@ -1021,23 +1038,23 @@ function Pa(e) {
1021
1038
  }
1022
1039
  Pe.length = 0, i && (z.version++, He());
1023
1040
  }
1024
- function Ga() {
1025
- const e = performance.now(), t = z.clusters, n = Ia;
1041
+ function Ia() {
1042
+ const e = performance.now(), t = z.clusters, n = Na;
1026
1043
  for (let r = 0; r < re; r++) {
1027
1044
  const a = t[r];
1028
1045
  n[r * 3] = a.agents, n[r * 3 + 1] = a.thinking, n[r * 3 + 2] = a.runs, a.agents = a.thinking = a.tokens = 0;
1029
- for (const l of Sa) a.types[l] = 0;
1030
- Lt[r] = 0;
1046
+ for (const l of Oa) a.types[l] = 0;
1047
+ Bt[r] = 0;
1031
1048
  }
1032
1049
  let s = 0;
1033
- for (const r of p.instances.values()) {
1050
+ for (const r of h.instances.values()) {
1034
1051
  if (ue.has(r.run)) {
1035
1052
  te(r) && s++;
1036
1053
  continue;
1037
1054
  }
1038
1055
  if (!te(r)) continue;
1039
1056
  const a = t[Va(r)];
1040
- a.agents++, a.tokens += r.tokens, a.types[r.type]++, r.status === "thinking" && a.thinking++, Lt[a.lane] += kt(r, e);
1057
+ a.agents++, a.tokens += r.tokens, a.types[r.type]++, r.status === "thinking" && a.thinking++, Bt[a.lane] += kt(r, e);
1041
1058
  }
1042
1059
  z.expandedAgents = s;
1043
1060
  let i = 0;
@@ -1046,32 +1063,32 @@ function Ga() {
1046
1063
  a.runs = a.runIds.length;
1047
1064
  const l = a.runs > 0;
1048
1065
  l && i++;
1049
- const d = a.agents ? Math.min(1, Lt[r] / a.agents * 0.9 + a.thinking / a.agents * 0.35) : 0;
1066
+ const d = a.agents ? Math.min(1, Bt[r] / a.agents * 0.9 + a.thinking / a.agents * 0.35) : 0;
1050
1067
  a.energy += (d - a.energy) * 0.08, (l !== a.active || n[r * 3] !== a.agents || n[r * 3 + 1] !== a.thinking || n[r * 3 + 2] !== a.runs) && a.version++, a.active = l;
1051
1068
  }
1052
1069
  i !== z.activeClusters && (z.activeClusters = i, He());
1053
1070
  }
1054
- const Ia = new Float64Array(re * 3), Lt = new Float64Array(re);
1055
- function Na(e = performance.now()) {
1056
- if (e === Bn) return;
1057
- Bn = e, p.selected !== Un && (Un = p.selected, Ge = !0);
1058
- const t = p.instances.size;
1059
- t !== Zn && (!z.grouped || t < Ds + 4) && (Ge = !0), Zn = t, (Ge || e - Ln > xa) && (Ge = !1, Ln = e, Pa(e)), z.grouped && Ga();
1060
- }
1061
- Tt.fadeMs = (e) => z.crowded ? ue.has(e.run) || !z.grouped ? wa : ka : ws;
1062
- const uc = (e) => e === "graph_scout" || e === "records_scout" || e === "data_scout", _e = (e, t) => ln(e, t) - 0.5, qa = (e) => e === 0 ? 0 : e % 2 ? (e + 1) / 2 : -e / 2, le = { preset: qs, graphNatural: 1, graphRadius: 2.6, peripheryGap: 3.6 }, Ls = { planner: -1, researcher: 0, writer: 1, graph_scout: 0, records_scout: 0, data_scout: 0 };
1063
- function dc(e) {
1064
- return Ls[e] * le.preset.local.topGap * C.spread;
1065
- }
1066
- const Ot = new y.Vector3(), Et = new y.Vector3(), Bt = new y.Vector3(), pt = { a: 0, b: 0, angle: 0 }, $e = { a: 0, b: 0 }, Ve = { n: 0, aspect: 1.6, hu: 2, hv: 2, hw: 2, hh: 2 }, Re = [];
1067
- let Ut = -1;
1068
- const Wa = (e, t) => 1 - Math.exp(-e / t);
1069
- function Da(e, t, n) {
1071
+ const Na = new Float64Array(re * 3), Bt = new Float64Array(re);
1072
+ function qa(e = performance.now()) {
1073
+ if (e === Zn) return;
1074
+ Zn = e, h.selected !== Jn && (Jn = h.selected, Ge = !0);
1075
+ const t = h.instances.size;
1076
+ t !== Hn && (!z.grouped || t < Ls + 4) && (Ge = !0), Hn = t, (Ge || e - Un > wa) && (Ge = !1, Un = e, Ga(e)), z.grouped && Ia();
1077
+ }
1078
+ Tt.fadeMs = (e) => z.crowded ? ue.has(e.run) || !z.grouped ? ka : Sa : Ss;
1079
+ const dc = (e) => e === "graph_scout" || e === "records_scout" || e === "data_scout", _e = (e, t) => dn(e, t) - 0.5, Wa = (e) => e === 0 ? 0 : e % 2 ? (e + 1) / 2 : -e / 2, le = { preset: Ds, graphNatural: 1, graphRadius: 2.6, peripheryGap: 3.6 }, Us = { planner: -1, researcher: 0, writer: 1, graph_scout: 0, records_scout: 0, data_scout: 0 };
1080
+ function fc(e) {
1081
+ return Us[e] * le.preset.local.topGap * C.spread;
1082
+ }
1083
+ const Ot = new y.Vector3(), Et = new y.Vector3(), Ut = new y.Vector3(), pt = { a: 0, b: 0, angle: 0 }, $e = { a: 0, b: 0 }, Re = { n: 0, aspect: 1.6, hu: 2, hv: 2, hw: 2, hh: 2 }, Ve = [];
1084
+ let Zt = -1;
1085
+ const Da = (e, t) => 1 - Math.exp(-e / t);
1086
+ function Fa(e, t, n) {
1070
1087
  let s = (t - e) % (Math.PI * 2);
1071
1088
  return s > Math.PI && (s -= Math.PI * 2), s < -Math.PI && (s += Math.PI * 2), e + s * n;
1072
1089
  }
1073
- function Bs(e) {
1074
- const t = p.runs.get(e);
1090
+ function Zs(e) {
1091
+ const t = h.runs.get(e);
1075
1092
  return {
1076
1093
  uid: xt(),
1077
1094
  id: e,
@@ -1099,7 +1116,7 @@ function Bs(e) {
1099
1116
  v1: 0
1100
1117
  };
1101
1118
  }
1102
- function jn(e) {
1119
+ function Kn(e) {
1103
1120
  let t = 0;
1104
1121
  for (let n = !0; n; ) {
1105
1122
  n = !1;
@@ -1111,12 +1128,12 @@ function jn(e) {
1111
1128
  }
1112
1129
  return t;
1113
1130
  }
1114
- function Fa(e) {
1131
+ function La(e) {
1115
1132
  let t = g.runs.get(e.run);
1116
- t || (t = Bs(e.run), g.runs.set(e.run, t), g.runsVersion++);
1133
+ t || (t = Zs(e.run), g.runs.set(e.run, t), g.runsVersion++);
1117
1134
  const n = e.parent ? g.agents.get(e.parent) : void 0, s = e.subagent ? n ? n.depth + 1 : 1 : 0;
1118
1135
  let i;
1119
- return s === 0 ? i = jn((r) => r.depth === 0 && r.inst.run === e.run && r.inst.type === e.type) : i = jn((r) => r.depth > 0 && r.inst.parent === e.parent), n && s > 0 && (n.kidsMax = Math.max(n.kidsMax, i + 1)), {
1136
+ return s === 0 ? i = Kn((r) => r.depth === 0 && r.inst.run === e.run && r.inst.type === e.type) : i = Kn((r) => r.depth > 0 && r.inst.parent === e.parent), n && s > 0 && (n.kidsMax = Math.max(n.kidsMax, i + 1)), {
1120
1137
  uid: xt(),
1121
1138
  id: e.id,
1122
1139
  inst: e,
@@ -1128,38 +1145,38 @@ function Fa(e) {
1128
1145
  target: new y.Vector3(),
1129
1146
  pos: new y.Vector3(),
1130
1147
  live: new y.Vector3(),
1131
- scale: Os(e) * C.scale,
1148
+ scale: Rs(e) * C.scale,
1132
1149
  depth: s,
1133
1150
  sib: i,
1134
1151
  sibs: 1,
1135
1152
  kidsMax: 0,
1136
1153
  fresh: !0,
1137
- dim: cn(e) ? 1 : 0
1154
+ dim: un(e) ? 1 : 0
1138
1155
  };
1139
1156
  }
1140
- const La = 0.6, Ba = 16;
1141
- function Ua() {
1157
+ const Ba = 0.6, Ua = 16;
1158
+ function Za() {
1142
1159
  let e = 0;
1143
- for (const n of p.instances.values()) {
1144
- if (g.agents.has(n.id) || n.exitAt || !Ft(n)) continue;
1145
- if (e >= Ba) break;
1146
- const s = n.parent ? p.instances.get(n.parent) : void 0;
1147
- s && !s.exitAt && !g.agents.has(s.id) && Ft(s) || (g.agents.set(n.id, Fa(n)), g.agentsVersion++, e++);
1160
+ for (const n of h.instances.values()) {
1161
+ if (g.agents.has(n.id) || n.exitAt || !Lt(n)) continue;
1162
+ if (e >= Ua) break;
1163
+ const s = n.parent ? h.instances.get(n.parent) : void 0;
1164
+ s && !s.exitAt && !g.agents.has(s.id) && Lt(s) || (g.agents.set(n.id, La(n)), g.agentsVersion++, e++);
1148
1165
  }
1149
1166
  for (const [n, s] of g.agents)
1150
- (!p.instances.has(n) || !Ft(s.inst)) && (g.agents.delete(n), g.agentsVersion++);
1167
+ (!h.instances.has(n) || !Lt(s.inst)) && (g.agents.delete(n), g.agentsVersion++);
1151
1168
  for (const n of g.runs.values()) n.members = 0;
1152
1169
  for (const n of g.agents.values()) n.run.members++;
1153
- for (const n of p.runs.values())
1154
- g.runs.has(n.id) || n.endedAt || !Jn(n.id) || (g.runs.set(n.id, Bs(n.id)), g.runsVersion++);
1170
+ for (const n of h.runs.values())
1171
+ g.runs.has(n.id) || n.endedAt || !jn(n.id) || (g.runs.set(n.id, Zs(n.id)), g.runsVersion++);
1155
1172
  for (const [n, s] of g.runs) {
1156
- const i = p.runs.get(n);
1157
- i && !s.run && (s.run = i, s.color = i.color), !(s.members > 0) && (i && !i.endedAt && Jn(n) || (g.runs.delete(n), g.runsVersion++));
1173
+ const i = h.runs.get(n);
1174
+ i && !s.run && (s.run = i, s.color = i.color), !(s.members > 0) && (i && !i.endedAt && jn(n) || (g.runs.delete(n), g.runsVersion++));
1158
1175
  }
1159
1176
  const t = performance.now();
1160
- for (const n of p.mcpServers.values()) {
1177
+ for (const n of h.mcpServers.values()) {
1161
1178
  let s = g.mcp.get(n.name);
1162
- const i = Pr(n, t);
1179
+ const i = Gr(n, t);
1163
1180
  if (s && (s.wanted = i), !(!i && !s) && (s || (s = { uid: xt(), name: n.name, srv: n, out: new y.Vector3(1, 0, 0), target: new y.Vector3(), pos: new y.Vector3(), backends: /* @__PURE__ */ new Map(), fresh: !0, wanted: !0, mix: 0 }, g.mcp.set(n.name, s), g.mcpVersion++), s.backends.size !== n.resources.size)) {
1164
1181
  for (const r of n.resources.values())
1165
1182
  s.backends.has(r.name) || s.backends.set(r.name, { uid: xt(), res: r, k: 0, n: 0, target: new y.Vector3(), pos: new y.Vector3(), fresh: !0, mix: 0 });
@@ -1167,17 +1184,17 @@ function Ua() {
1167
1184
  }
1168
1185
  }
1169
1186
  }
1170
- let Xn = -1;
1171
- function Za() {
1172
- Xn === g.runsVersion && g.runOrder.length === g.runs.size || (Xn = g.runsVersion, g.runOrder = [...g.runs.values()].sort((e, t) => {
1187
+ let Qn = -1;
1188
+ function Ja() {
1189
+ Qn === g.runsVersion && g.runOrder.length === g.runs.size || (Qn = g.runsVersion, g.runOrder = [...g.runs.values()].sort((e, t) => {
1173
1190
  var n, s;
1174
1191
  return (((n = e.run) == null ? void 0 : n.startedAt) ?? 0) - (((s = t.run) == null ? void 0 : s.startedAt) ?? 0) || (e.id < t.id ? -1 : 1);
1175
1192
  }));
1176
1193
  }
1177
- function Ja(e) {
1194
+ function Ha(e) {
1178
1195
  const t = le.preset.local, n = C.spread, s = e.inst;
1179
1196
  if (e.depth === 0) {
1180
- let l = Ls[s.type] * t.topGap, d = 0;
1197
+ let l = Us[s.type] * t.topGap, d = 0;
1181
1198
  e.sib && (l += (e.sib % 2 ? 1 : -1) * t.topGap * 0.5, d -= Math.ceil(e.sib / 2) * t.fanLen * 0.55), e.u = (l + _e(e.id, 31) * 0.5) * n, e.v = (d + _e(e.id, 32) * 0.4) * n;
1182
1199
  return;
1183
1200
  }
@@ -1186,15 +1203,15 @@ function Ja(e) {
1186
1203
  e.sibs = Math.max(1, i.kidsMax);
1187
1204
  const r = e.depth > 1 ? 0.75 : 1, a = (t.subShift ?? 0) * r;
1188
1205
  if (t.fan === "stack")
1189
- e.u = i.u + (a + qa(e.sib) * 0.35 + _e(e.id, 31) * 0.4) * n, e.v = i.v + (t.fanLen + e.sib * t.stackGap) * r * n;
1206
+ e.u = i.u + (a + Wa(e.sib) * 0.35 + _e(e.id, 31) * 0.4) * n, e.v = i.v + (t.fanLen + e.sib * t.stackGap) * r * n;
1190
1207
  else {
1191
1208
  const l = e.sib - (e.sibs - 1) / 2;
1192
1209
  e.u = i.u + (a + l * t.subGap * r + _e(e.id, 31) * 0.45) * n, e.v = i.v + (t.fanLen * r + Math.abs(l) * 0.3 + _e(e.id, 32) * 0.45) * n;
1193
1210
  }
1194
1211
  }
1195
- function Ha() {
1212
+ function ja() {
1196
1213
  var n;
1197
- for (let s = 0; s < 6; s++) for (const i of g.agents.values()) (i.depth === s || s === 5 && i.depth >= 5) && Ja(i);
1214
+ for (let s = 0; s < 6; s++) for (const i of g.agents.values()) (i.depth === s || s === 5 && i.depth >= 5) && Ha(i);
1198
1215
  const e = le.preset.local.pad;
1199
1216
  for (const s of g.runs.values()) s.u0 = 1 / 0;
1200
1217
  for (const s of g.agents.values()) {
@@ -1212,56 +1229,56 @@ function Ha() {
1212
1229
  s.tcu = (s.u0 + s.u1) / 2, s.tcv = (s.v0 + s.v1) / 2, s.hu = (s.u1 - s.u0) / 2, s.hv = (s.v1 - s.v0) / 2;
1213
1230
  }
1214
1231
  }
1215
- function mn(e, t, n) {
1232
+ function An(e, t, n) {
1216
1233
  const s = Math.cos(e), i = Math.sin(e);
1217
1234
  ce(s, i, t);
1218
1235
  let r = -i, a = s;
1219
1236
  r < -1e-3 && (r = -r, a = -a), ce(r, a, n);
1220
1237
  }
1221
- function ja(e, t, n, s) {
1222
- return mn(e.targetAngle, Ot, Et), s.copy(e.target).addScaledVector(Et, t - e.tcu).addScaledVector(Ot, n - e.tcv);
1238
+ function Xa(e, t, n, s) {
1239
+ return An(e.targetAngle, Ot, Et), s.copy(e.target).addScaledVector(Et, t - e.tcu).addScaledVector(Ot, n - e.tcv);
1223
1240
  }
1224
- const tn = (e) => e.x, et = (e) => g.plane === "xy" ? e.y : -e.z;
1225
- function Xa() {
1241
+ const sn = (e) => e.x, et = (e) => g.plane === "xy" ? e.y : -e.z;
1242
+ function Ka() {
1226
1243
  const e = le.preset, t = g.runOrder;
1227
1244
  let n = 0, s = 0;
1228
1245
  for (const i of t)
1229
1246
  n = Math.max(n, i.hu), s = Math.max(s, i.hv);
1230
- Ve.n = t.length, Ve.aspect = C.aspect * (e.periphery === "sides" ? 0.72 : 1), Ve.hu = n, Ve.hv = s;
1247
+ Re.n = t.length, Re.aspect = C.aspect * (e.periphery === "sides" ? 0.72 : 1), Re.hu = n, Re.hv = s;
1231
1248
  for (let i = 0; i < t.length; i++) {
1232
1249
  const r = t[i];
1233
- r.index = i, r.count = t.length, e.run(i, Ve, pt), ce(pt.a, pt.b, r.target), r.targetAngle = pt.angle;
1250
+ r.index = i, r.count = t.length, e.run(i, Re, pt), ce(pt.a, pt.b, r.target), r.targetAngle = pt.angle;
1234
1251
  }
1235
1252
  }
1236
1253
  let yt = 1;
1237
- function Ka() {
1254
+ function Qa() {
1238
1255
  const e = le.preset, t = Math.min(1.7, 1 / Math.max(0.35, C.foreshorten));
1239
1256
  Math.abs(t - yt) / yt > 0.1 && (yt = t);
1240
1257
  let n = 0, s = 0;
1241
1258
  for (const c of g.agents.values()) {
1242
1259
  const M = le.preset.local.pad * Math.max(0.7, c.scale);
1243
- n = Math.max(n, Math.abs(tn(c.target)) + M), s = Math.max(s, Math.abs(et(c.target)) + M);
1260
+ n = Math.max(n, Math.abs(sn(c.target)) + M), s = Math.max(s, Math.abs(et(c.target)) + M);
1244
1261
  }
1245
1262
  for (const c of g.runs.values())
1246
- c.members || (n = Math.max(n, Math.abs(tn(c.target)) + c.hu), s = Math.max(s, Math.abs(et(c.target)) + c.hv));
1247
- if (Ve.hw = n, Ve.hh = s, Re.length = 0, z.grouped)
1248
- for (let c = 0; c < re; c++) en(c).active && Re.push(c);
1249
- for (let c = 0; c < Re.length; c++) {
1250
- const M = Re[c];
1251
- e.cluster(M, c, Re.length, Ve, $e), ce($e.a, $e.b, g.clusterTarget[M]), n = Math.max(n, Math.abs($e.a) + 2.4), s = Math.max(s, Math.abs($e.b) + 2.4);
1263
+ c.members || (n = Math.max(n, Math.abs(sn(c.target)) + c.hu), s = Math.max(s, Math.abs(et(c.target)) + c.hv));
1264
+ if (Re.hw = n, Re.hh = s, Ve.length = 0, z.grouped)
1265
+ for (let c = 0; c < re; c++) nn(c).active && Ve.push(c);
1266
+ for (let c = 0; c < Ve.length; c++) {
1267
+ const M = Ve[c];
1268
+ e.cluster(M, c, Ve.length, Re, $e), ce($e.a, $e.b, g.clusterTarget[M]), n = Math.max(n, Math.abs($e.a) + 2.4), s = Math.max(s, Math.abs($e.b) + 2.4);
1252
1269
  }
1253
1270
  e.round && (n = s = Math.max(n, s));
1254
1271
  const i = g.core;
1255
1272
  (Math.abs(n - i.thw) / Math.max(1, i.thw) > 0.08 || n < i.thw * 0.75) && (i.thw = n), (Math.abs(s - i.thh) / Math.max(1, i.thh) > 0.08 || s < i.thh * 0.75) && (i.thh = s), n = Math.max(2.5, i.thw), s = Math.max(2.5, i.thh);
1256
- const r = le.peripheryGap, a = g.graph, l = g.graphWanted && p.hasGraph, d = le.graphRadius;
1273
+ const r = le.peripheryGap, a = g.graph, l = g.graphWanted && zt(), d = le.graphRadius;
1257
1274
  a.radius = d;
1258
- const f = Qa;
1275
+ const f = Ya;
1259
1276
  f.length = 0;
1260
1277
  for (const c of g.mcp.values()) c.wanted && f.push(c);
1261
- if (f.sort(Ya), e.periphery === "rim") {
1278
+ if (f.sort(_a), e.periphery === "rim") {
1262
1279
  const c = Math.max(n, s) + r;
1263
1280
  l && ce(-(c + d), 0, a.target);
1264
- const M = l ? _a : $a;
1281
+ const M = l ? $a : eo;
1265
1282
  for (let o = 0; o < f.length; o++) {
1266
1283
  const u = f[o], S = Math.floor(o / M.length), A = M[o % M.length] + S * 0.18, m = c + 1 + S * 2.6;
1267
1284
  ce(Math.cos(A), Math.sin(A), u.out), ce(Math.cos(A) * m, Math.sin(A) * m, u.target);
@@ -1275,15 +1292,15 @@ function Ka() {
1275
1292
  }
1276
1293
  } else {
1277
1294
  const c = C.aspect >= 0.85;
1278
- l && (c ? ce(-(n + r + d), 0, a.target) : ce(0, -(s + r + d), a.target)), Zt.length = 0, Jt.length = 0;
1295
+ l && (c ? ce(-(n + r + d), 0, a.target) : ce(0, -(s + r + d), a.target)), Jt.length = 0, Ht.length = 0;
1279
1296
  for (let M = 0; M < f.length; M++)
1280
- ((l ? M < Math.max(3, Math.ceil(f.length * 0.6)) : M % 2 === 0) ? Jt : Zt).push(f[M]);
1281
- Kn(Jt, 1, n + r, 0), Kn(Zt, -1, n + r, l && c ? d * 2 + 3.5 : 0);
1297
+ ((l ? M < Math.max(3, Math.ceil(f.length * 0.6)) : M % 2 === 0) ? Ht : Jt).push(f[M]);
1298
+ Yn(Ht, 1, n + r, 0), Yn(Jt, -1, n + r, l && c ? d * 2 + 3.5 : 0);
1282
1299
  }
1283
1300
  l && a.target.lengthSq() > 1e-6 && a.out.copy(a.target).normalize();
1284
1301
  }
1285
- const Qa = [], Zt = [], Jt = [], Ya = (e, t) => e.srv.slot - t.srv.slot, Us = Math.PI / 180, _a = [0, 35, -35, 70, -70, 110, -110, 145, -145].map((e) => e * Us), $a = [0, 180, 35, -145, -35, 145, 70, -110, -70, 110].map((e) => e * Us);
1286
- function Kn(e, t, n, s) {
1302
+ const Ya = [], Jt = [], Ht = [], _a = (e, t) => e.srv.slot - t.srv.slot, Js = Math.PI / 180, $a = [0, 35, -35, 70, -70, 110, -110, 145, -145].map((e) => e * Js), eo = [0, 180, 35, -145, -35, 145, 70, -110, -70, 110].map((e) => e * Js);
1303
+ function Yn(e, t, n, s) {
1287
1304
  if (!e.length) return;
1288
1305
  const i = yt, r = (d) => Math.max(3, d.backends.size * 2.1 + 0.6) * i, a = s > 0 ? Math.ceil(e.length / 2) : e.length;
1289
1306
  let l = 0;
@@ -1302,60 +1319,60 @@ function Kn(e, t, n, s) {
1302
1319
  l -= c;
1303
1320
  }
1304
1321
  }
1305
- function eo(e = performance.now()) {
1306
- const t = Ut < 0 ? 0.016 : Math.min(0.1, (e - Ut) / 1e3);
1307
- if (Ut = e, !g.clusterPos.length)
1322
+ function to(e = performance.now()) {
1323
+ const t = Zt < 0 ? 0.016 : Math.min(0.1, (e - Zt) / 1e3);
1324
+ if (Zt = e, !g.clusterPos.length)
1308
1325
  for (let o = 0; o < re; o++)
1309
1326
  g.clusterPos.push(new y.Vector3()), g.clusterTarget.push(new y.Vector3()), g.clusterFresh.push(!0);
1310
- Ua(), Za();
1327
+ Za(), Ja();
1311
1328
  let n = 0, s = 0;
1312
1329
  for (const o of g.agents.values())
1313
1330
  n += o.inst.subagent ? 0.5 : 1, o.inst.exitAt || s++;
1314
1331
  let i = 0;
1315
1332
  if (z.grouped)
1316
- for (let o = 0; o < re; o++) en(o).active && i++;
1333
+ for (let o = 0; o < re; o++) nn(o).active && i++;
1317
1334
  let r = 0;
1318
1335
  for (const o of g.mcp.values()) o.wanted && r++;
1319
- Qr(e, n + i * 1.5, g.agents.size + s * 1e3 + i * 1e6 + g.runs.size * 1e8 + r * 1e10 + (g.graphWanted ? 1e13 : 0));
1320
- for (const o of g.agents.values()) o.scale = Os(o.inst) * C.scale;
1321
- Ha(), Xa();
1322
- for (const o of g.agents.values()) ja(o.run, o.u, o.v, o.target);
1323
- Ka();
1324
- const a = Wa(t, 0.2);
1336
+ Yr(e, n + i * 1.5, g.agents.size + s * 1e3 + i * 1e6 + g.runs.size * 1e8 + r * 1e10 + (g.graphWanted ? 1e13 : 0));
1337
+ for (const o of g.agents.values()) o.scale = Rs(o.inst) * C.scale;
1338
+ ja(), Ka();
1339
+ for (const o of g.agents.values()) Xa(o.run, o.u, o.v, o.target);
1340
+ Qa();
1341
+ const a = Da(t, 0.2);
1325
1342
  for (const o of g.runs.values())
1326
- o.fresh ? (o.origin.copy(o.target), o.angle = o.targetAngle, o.cu = o.tcu, o.cv = o.tcv, o.fresh = !1) : (o.origin.lerp(o.target, a), o.angle = Da(o.angle, o.targetAngle, a), o.cu += (o.tcu - o.cu) * a, o.cv += (o.tcv - o.cv) * a), mn(o.angle, o.axis, o.side);
1343
+ o.fresh ? (o.origin.copy(o.target), o.angle = o.targetAngle, o.cu = o.tcu, o.cv = o.tcv, o.fresh = !1) : (o.origin.lerp(o.target, a), o.angle = Fa(o.angle, o.targetAngle, a), o.cu += (o.tcu - o.cu) * a, o.cv += (o.tcv - o.cv) * a), An(o.angle, o.axis, o.side);
1327
1344
  for (const o of g.agents.values()) {
1328
1345
  o.fresh ? (o.eu = o.u, o.ev = o.v, o.fresh = !1) : (o.eu += (o.u - o.eu) * a, o.ev += (o.v - o.ev) * a);
1329
1346
  const u = o.run;
1330
1347
  o.pos.copy(u.origin).addScaledVector(u.side, o.eu - u.cu).addScaledVector(u.axis, o.ev - u.cv), o.live.copy(o.pos);
1331
- const S = cn(o.inst) ? 1 : 0;
1332
- o.dim = tt ? S : o.dim + (S - o.dim) * Math.min(1, t / La);
1348
+ const S = un(o.inst) ? 1 : 0;
1349
+ o.dim = tt ? S : o.dim + (S - o.dim) * Math.min(1, t / Ba);
1333
1350
  }
1334
- for (const o of Re)
1351
+ for (const o of Ve)
1335
1352
  g.clusterFresh[o] ? (g.clusterPos[o].copy(g.clusterTarget[o]), g.clusterFresh[o] = !1) : g.clusterPos[o].lerp(g.clusterTarget[o], a);
1336
- for (let o = 0; o < re; o++) en(o).active || (g.clusterFresh[o] = !0);
1353
+ for (let o = 0; o < re; o++) nn(o).active || (g.clusterFresh[o] = !0);
1337
1354
  const l = g.core;
1338
1355
  l.hw += (Math.max(2.5, l.thw) - l.hw) * a, l.hh += (Math.max(2.5, l.thh) - l.hh) * a, l.r = Math.max(l.hw, l.hh);
1339
- const d = Math.min(1, t / to);
1356
+ const d = Math.min(1, t / no);
1340
1357
  for (const o of g.mcp.values()) {
1341
1358
  o.fresh ? (o.pos.copy(o.target), o.fresh = !1) : o.pos.lerp(o.target, a), o.mix = o.wanted ? Math.min(1, o.mix + d) : Math.max(0, o.mix - d);
1342
1359
  for (const u of o.backends.values())
1343
1360
  u.fresh ? (u.pos.copy(u.target), u.fresh = !1) : u.pos.lerp(u.target, a), u.mix = o.wanted ? Math.min(1, u.mix + d) : Math.min(u.mix, o.mix);
1344
1361
  !o.wanted && o.mix <= 0 && (g.mcp.delete(o.name), g.mcpVersion++);
1345
1362
  }
1346
- const f = g.graph, c = g.graphWanted && p.hasGraph, M = c ? Ir(e) : 0;
1363
+ const f = g.graph, c = g.graphWanted && zt(e), M = c ? Nr(e) : 0;
1347
1364
  f.mix += (M - f.mix) * (c ? 1 : a), f.fresh || f.mix < 0.01 ? (f.pos.copy(f.target), f.fresh = !c) : f.pos.lerp(f.target, a), f.natural = le.graphNatural, f.scale = f.radius / Math.max(1e-3, f.natural) * Math.max(1e-3, f.mix);
1348
1365
  }
1349
- const to = 0.9;
1350
- function no(e, t, n = 0) {
1366
+ const no = 0.9;
1367
+ function so(e, t, n = 0) {
1351
1368
  const s = g.plane === "xz" && n > 0;
1352
1369
  for (const r of g.agents.values())
1353
- e(r.target, t * r.scale), s && e(Bt.copy(r.target).setY(r.target.y + n * r.scale), t * r.scale * 0.6);
1354
- for (const r of Re) e(g.clusterTarget[r], 2.4);
1370
+ e(r.target, t * r.scale), s && e(Ut.copy(r.target).setY(r.target.y + n * r.scale), t * r.scale * 0.6);
1371
+ for (const r of Ve) e(g.clusterTarget[r], 2.4);
1355
1372
  for (const r of g.runs.values()) {
1356
- r.members || e(r.target, r.hu), mn(r.targetAngle, Ot, Et);
1373
+ r.members || e(r.target, r.hu), An(r.targetAngle, Ot, Et);
1357
1374
  const a = Math.abs(et(Et)) * r.hu + Math.abs(et(Ot)) * r.hv;
1358
- ce(tn(r.target), et(r.target) + a + 1.4, Bt), e(Bt, 1.2);
1375
+ ce(sn(r.target), et(r.target) + a + 1.4, Ut), e(Ut, 1.2);
1359
1376
  }
1360
1377
  for (const r of g.mcp.values())
1361
1378
  if (r.wanted) {
@@ -1363,9 +1380,9 @@ function no(e, t, n = 0) {
1363
1380
  for (const a of r.backends.values()) e(a.target, 1.4);
1364
1381
  }
1365
1382
  const i = g.graph;
1366
- g.graphWanted && p.hasGraph && e(i.target, i.radius + 0.8);
1383
+ g.graphWanted && zt() && e(i.target, i.radius + 0.8);
1367
1384
  }
1368
- const fc = () => Re, so = "data:font/woff;base64,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", ro = "data:font/woff;base64,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", ao = { kitNoDim: !0 }, Qn = { sans: so, mono: ro }, Yn = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~·›…—–ו", oo = [
1385
+ const hc = () => Ve, ro = "data:font/woff;base64,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", ao = "data:font/woff;base64,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", oo = { kitNoDim: !0 }, _n = { sans: ro, mono: ao }, $n = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~·›…—–ו", io = [
1369
1386
  [32, 126],
1370
1387
  [160, 255],
1371
1388
  [305, 305],
@@ -1381,35 +1398,35 @@ const fc = () => Re, so = "data:font/woff;base64,d09GRgABAAAAAHo0AA8AAAABCagAAQA
1381
1398
  [8595, 8595],
1382
1399
  [8722, 8722],
1383
1400
  [8725, 8725]
1384
- ], io = (e) => {
1385
- for (const [t, n] of oo) if (e >= t && e <= n) return !0;
1401
+ ], co = (e) => {
1402
+ for (const [t, n] of io) if (e >= t && e <= n) return !0;
1386
1403
  return !1;
1387
- }, co = { "▶": "›", "▸": "›", "→": "›", "⟶": "›", "←": "‹", "✓": "·", "✔": "·", "✕": "×", "✗": "×", "✖": "×", "⋯": "…" };
1388
- function Zs(e) {
1404
+ }, lo = { "▶": "›", "▸": "›", "→": "›", "⟶": "›", "←": "‹", "✓": "·", "✔": "·", "✕": "×", "✗": "×", "✖": "×", "⋯": "…" };
1405
+ function Hs(e) {
1389
1406
  let t = "";
1390
1407
  for (const n of e) {
1391
- const s = co[n];
1392
- s !== void 0 ? t += s : io(n.codePointAt(0)) && (t += n);
1408
+ const s = lo[n];
1409
+ s !== void 0 ? t += s : co(n.codePointAt(0)) && (t += n);
1393
1410
  }
1394
1411
  return t;
1395
1412
  }
1396
1413
  const mt = /* @__PURE__ */ new Map();
1397
- function lo(e) {
1414
+ function uo(e) {
1398
1415
  const t = mt.get(e);
1399
1416
  if (t !== void 0) return t;
1400
- const n = Zs(e).replace(/\s+/g, " ").replace(/^[\s·›]+|[\s·›]+$/g, "");
1417
+ const n = Hs(e).replace(/\s+/g, " ").replace(/^[\s·›]+|[\s·›]+$/g, "");
1401
1418
  return mt.size > 2e3 && mt.clear(), mt.set(e, n), n;
1402
1419
  }
1403
- const _n = (e, t) => t > 0 && e.length > t ? e.slice(0, Math.max(1, t - 1)).trimEnd() + "…" : e, $n = new y.PlaneGeometry(1, 1), gt = () => {
1404
- }, es = {
1420
+ const es = (e, t) => t > 0 && e.length > t ? e.slice(0, Math.max(1, t - 1)).trimEnd() + "…" : e, ts = new y.PlaneGeometry(1, 1), gt = () => {
1421
+ }, ns = {
1405
1422
  top: new y.MeshBasicMaterial({ color: 16777215, transparent: !0, depthTest: !1, depthWrite: !1, toneMapped: !1, fog: !1, side: y.DoubleSide }),
1406
1423
  depth: new y.MeshBasicMaterial({ color: 16777215, transparent: !0, depthTest: !0, depthWrite: !1, toneMapped: !1, fog: !1, side: y.DoubleSide })
1407
- }, uo = (
1424
+ }, fo = (
1408
1425
  /* glsl */
1409
1426
  `
1410
1427
  varying vec2 vUv;
1411
1428
  void main() { vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`
1412
- ), fo = (
1429
+ ), ho = (
1413
1430
  /* glsl */
1414
1431
  `
1415
1432
  uniform vec2 uSize; uniform float uRadius; uniform float uBorder; uniform float uBar; uniform float uUnder;
@@ -1430,49 +1447,49 @@ void main() {
1430
1447
  if (a < 0.002) discard;
1431
1448
  gl_FragColor = vec4(col, a);
1432
1449
  }`
1433
- ), ts = {
1450
+ ), ss = {
1434
1451
  // border / bar / under in × font size; round in × plate height (0.5 = pill)
1435
1452
  pill: { fillA: 0.52, edgeA: 0.6, border: 0.055, bar: 0, under: 0, round: 0.5 },
1436
1453
  box: { fillA: 0.62, edgeA: 0.55, border: 0.055, bar: 0, under: 0, round: 0.14 },
1437
1454
  bar: { fillA: 0.66, edgeA: 0.95, border: 0, bar: 0.14, under: 0, round: 0.06 },
1438
1455
  underline: { fillA: 0.52, edgeA: 0.8, border: 0, bar: 0, under: 0.07, round: 0.06 },
1439
1456
  none: { fillA: 0, edgeA: 0, border: 0, bar: 0, under: 0, round: 0 }
1440
- }, Js = new y.Color("#03050b"), Ht = new y.Color("#eef2f8"), ns = new y.Color("#94a3b8");
1457
+ }, js = new y.Color("#03050b"), jt = new y.Color("#eef2f8"), rs = new y.Color("#94a3b8");
1441
1458
  function At(e, t, n) {
1442
1459
  if (e == null) return { text: "", ranges: null, key: "" };
1443
1460
  if (typeof e == "string") {
1444
- const a = lo(t ? e.toUpperCase() : e);
1461
+ const a = uo(t ? e.toUpperCase() : e);
1445
1462
  return { text: a, ranges: null, key: a };
1446
1463
  }
1447
1464
  let s = "", i = "";
1448
1465
  const r = {};
1449
1466
  for (const a of e) {
1450
- let l = Zs(t ? a.text.toUpperCase() : a.text);
1467
+ let l = Hs(t ? a.text.toUpperCase() : a.text);
1451
1468
  if (s || (l = l.trimStart()), !l) continue;
1452
1469
  const d = a.color != null ? n.set(a.color).getHex() : -1;
1453
1470
  d >= 0 && (r[s.length] = d), i += `${l}${d}`, s += l;
1454
1471
  }
1455
1472
  return { text: s.trimEnd(), ranges: r, key: i };
1456
1473
  }
1457
- function hc(e, t, n = ["working…", "done"]) {
1474
+ function pc(e, t, n = ["working…", "done"]) {
1458
1475
  const s = e.status !== "started";
1459
1476
  if (!e.hasSteps) return [{ text: s ? e.status === "failed" ? n[2] ?? "failed" : n[1] : n[0], color: t.base }];
1460
1477
  const i = [{ text: "hatchet · ", color: t.base }];
1461
- return on.forEach((r, a) => {
1478
+ return ln.forEach((r, a) => {
1462
1479
  a && i.push({ text: " › ", color: t.base });
1463
1480
  const l = e.steps[r];
1464
- i.push({ text: r, color: l === "running" ? t.current : l === "done" ? t.done : l === "failed" ? "#ff5d5d" : t.queued ?? po(t.base) });
1481
+ i.push({ text: r, color: l === "running" ? t.current : l === "done" ? t.done : l === "failed" ? "#ff5d5d" : t.queued ?? mo(t.base) });
1465
1482
  }), i;
1466
1483
  }
1467
- const ho = new y.Color(), po = (e) => "#" + ho.set(e).lerp(Js, 0.45).getHexString();
1468
- function pc({ prefix: e = "", suffix: t = "", ...n }) {
1484
+ const po = new y.Color(), mo = (e) => "#" + po.set(e).lerp(js, 0.45).getHexString();
1485
+ function mc({ prefix: e = "", suffix: t = "", ...n }) {
1469
1486
  const s = ot();
1470
- return /* @__PURE__ */ h(gn, { declutter: "resource", ...n, text: e + s.graphLabel + t });
1487
+ return /* @__PURE__ */ p(bn, { declutter: "resource", ...n, text: e + s.graphLabel + t });
1471
1488
  }
1472
- function gn(e) {
1473
- return /* @__PURE__ */ h(dr, { fallback: null, children: /* @__PURE__ */ h(go, { ...e }) });
1489
+ function bn(e) {
1490
+ return /* @__PURE__ */ p(hr, { fallback: null, children: /* @__PURE__ */ p(Ao, { ...e }) });
1474
1491
  }
1475
- const mo = {
1492
+ const go = {
1476
1493
  color: "#818cf8",
1477
1494
  size: 0.24,
1478
1495
  opacity: 1,
@@ -1494,9 +1511,9 @@ const mo = {
1494
1511
  leader: !1,
1495
1512
  fit: !1
1496
1513
  };
1497
- function go(e) {
1514
+ function Ao(e) {
1498
1515
  var N, T;
1499
- const t = { ...mo, ...Ao(e) }, n = B(t);
1516
+ const t = { ...go, ...bo(e) }, n = B(t);
1500
1517
  n.current = t;
1501
1518
  const s = B(null), i = B(null), r = B(null), a = B(null), l = B(null), d = B(null), f = B(null), c = ne(
1502
1519
  () => ({
@@ -1504,8 +1521,8 @@ function go(e) {
1504
1521
  cur: t.opacity,
1505
1522
  emph: !1,
1506
1523
  accent: new y.Color(t.color),
1507
- textCol: new y.Color(t.textColor ?? Ht),
1508
- subCol: new y.Color(t.secondaryColor ?? ns),
1524
+ textCol: new y.Color(t.textColor ?? jt),
1525
+ subCol: new y.Color(t.secondaryColor ?? rs),
1509
1526
  mainColor: new y.Color(),
1510
1527
  subColor: new y.Color(),
1511
1528
  tmp: new y.Color(),
@@ -1532,8 +1549,8 @@ function go(e) {
1532
1549
  ), M = ne(
1533
1550
  () => ({
1534
1551
  plate: new y.ShaderMaterial({
1535
- vertexShader: uo,
1536
- fragmentShader: fo,
1552
+ vertexShader: fo,
1553
+ fragmentShader: ho,
1537
1554
  transparent: !0,
1538
1555
  depthWrite: !1,
1539
1556
  toneMapped: !1,
@@ -1543,7 +1560,7 @@ function go(e) {
1543
1560
  uBorder: { value: 0 },
1544
1561
  uBar: { value: 0 },
1545
1562
  uUnder: { value: 0 },
1546
- uFill: { value: Js.clone() },
1563
+ uFill: { value: js.clone() },
1547
1564
  uFillA: { value: 0.5 },
1548
1565
  uEdge: { value: new y.Color() },
1549
1566
  uEdgeA: { value: 0.5 },
@@ -1561,19 +1578,19 @@ function go(e) {
1561
1578
  return O.maxWidth > 0 ? Math.max(4, Math.floor(O.maxWidth / (O.size * (O.font === "mono" ? 0.62 : 0.56) * (1 + O.letterSpacing)))) : 0;
1562
1579
  };
1563
1580
  return { applyColors: () => {
1564
- const O = n.current, x = M.plate.uniforms, D = ts[O.plate];
1565
- x.uEdge.value.copy(c.accent).lerp(Ht, c.emph ? 0.3 : 0), x.uEdgeA.value = Math.min(1, D.edgeA * (c.emph ? 1.45 : 1)), x.uFillA.value = D.fillA, M.leader.color.copy(c.accent).multiplyScalar(0.85);
1581
+ const O = n.current, x = M.plate.uniforms, D = ss[O.plate];
1582
+ x.uEdge.value.copy(c.accent).lerp(jt, c.emph ? 0.3 : 0), x.uEdgeA.value = Math.min(1, D.edgeA * (c.emph ? 1.45 : 1)), x.uFillA.value = D.fillA, M.leader.color.copy(c.accent).multiplyScalar(0.85);
1566
1583
  const F = O.glow * (c.emph ? 1.12 : 0.95);
1567
1584
  c.mainColor.copy(c.textCol).multiplyScalar(F), c.subColor.copy(c.subCol).multiplyScalar(F);
1568
1585
  }, layout: () => {
1569
- var he, je, De, bn, vn;
1586
+ var he, je, De, Mn, yn;
1570
1587
  const O = d.current;
1571
1588
  if (!O || !a.current || !r.current) return;
1572
- const x = n.current, D = x.size, F = (he = O.textRenderInfo) == null ? void 0 : he.blockBounds, q = c.hasSub ? (De = (je = f.current) == null ? void 0 : je.textRenderInfo) == null ? void 0 : De.blockBounds : void 0, X = F && O.text ? F[2] - F[0] : 0, j = q ? q[2] - q[0] : 0, K = D * 1.16, L = ts[x.plate], k = L.bar * D, I = x.plate === "none", H = I ? 0 : D * 0.28, Q = ((bn = x.offset) == null ? void 0 : bn[0]) ?? 0, W = ((vn = x.offset) == null ? void 0 : vn[1]) ?? 0;
1589
+ const x = n.current, D = x.size, F = (he = O.textRenderInfo) == null ? void 0 : he.blockBounds, q = c.hasSub ? (De = (je = f.current) == null ? void 0 : je.textRenderInfo) == null ? void 0 : De.blockBounds : void 0, X = F && O.text ? F[2] - F[0] : 0, j = q ? q[2] - q[0] : 0, K = D * 1.16, L = ss[x.plate], k = L.bar * D, I = x.plate === "none", H = I ? 0 : D * 0.28, Q = ((Mn = x.offset) == null ? void 0 : Mn[0]) ?? 0, W = ((yn = x.offset) == null ? void 0 : yn[1]) ?? 0;
1573
1590
  let Y = 0, ee = 0, ge = 0, ke = 0, ae = 0;
1574
1591
  for (let Se = 0; Se < 2; Se++) {
1575
- const it = Se === 0 && c.hasSub, or = I ? 0 : D * (x.plate === "pill" && !it ? 0.6 : 0.5), Mn = it ? Math.max(X, j) : X, yn = it ? E() * 1.2 : 0, xn = it ? D * 0.1 : 0, Xe = Mn + or * 2 + k, Ke = K + xn + yn + H * 2, wn = Q + (x.anchorX === "left" ? Xe / 2 : x.anchorX === "right" ? -Xe / 2 : 0), kn = W + (x.anchorY === "bottom" ? Ke / 2 : x.anchorY === "top" ? -Ke / 2 : 0);
1576
- Se === 0 ? (c.W = Xe, c.H = Ke, c.bx = wn, c.by = kn) : (c.W1 = c.hasSub ? Xe : 0, c.H1 = Ke, c.bx1 = wn, c.by1 = kn), Se === 0 == !(c.hasSub && c.subOff) && (Y = Xe, ee = Ke, ge = Mn, ke = yn, ae = xn);
1592
+ const it = Se === 0 && c.hasSub, cr = I ? 0 : D * (x.plate === "pill" && !it ? 0.6 : 0.5), xn = it ? Math.max(X, j) : X, wn = it ? E() * 1.2 : 0, kn = it ? D * 0.1 : 0, Xe = xn + cr * 2 + k, Ke = K + kn + wn + H * 2, Sn = Q + (x.anchorX === "left" ? Xe / 2 : x.anchorX === "right" ? -Xe / 2 : 0), On = W + (x.anchorY === "bottom" ? Ke / 2 : x.anchorY === "top" ? -Ke / 2 : 0);
1593
+ Se === 0 ? (c.W = Xe, c.H = Ke, c.bx = Sn, c.by = On) : (c.W1 = c.hasSub ? Xe : 0, c.H1 = Ke, c.bx1 = Sn, c.by1 = On), Se === 0 == !(c.hasSub && c.subOff) && (Y = Xe, ee = Ke, ge = xn, ke = wn, ae = kn);
1577
1594
  }
1578
1595
  const ie = M.plate.uniforms;
1579
1596
  ie.uSize.value.set(Y, ee), ie.uRadius.value = Math.min(ee * L.round, ee * 0.5), ie.uBorder.value = L.border * D, ie.uBar.value = k, ie.uUnder.value = L.under * D, a.current.scale.set(Math.max(Y, 1e-4), Math.max(ee, 1e-4), 1), a.current.visible = !I && ge > 0;
@@ -1588,9 +1605,9 @@ function go(e) {
1588
1605
  const D = d.current, F = f.current;
1589
1606
  if (!D) return;
1590
1607
  const q = n.current, X = P(), j = At(O, q.uppercase, c.tmp), K = At(x, q.uppercase, c.tmp), L = `${j.key}|${X}`, k = `${K.key}|${X}`;
1591
- if (L !== c.keyM && (c.keyM = L, D.text = _n(j.text, X), D.colorRanges = j.ranges, D.sync()), F && k !== c.keyS) {
1608
+ if (L !== c.keyM && (c.keyM = L, D.text = es(j.text, X), D.colorRanges = j.ranges, D.sync()), F && k !== c.keyS) {
1592
1609
  c.keyS = k;
1593
- const I = _n(K.text, X ? Math.round(X * q.size / E()) : 0);
1610
+ const I = es(K.text, X ? Math.round(X * q.size / E()) : 0);
1594
1611
  c.hasSub = !!I, F.visible = c.hasSub && !c.subOff, F.text = I, F.colorRanges = K.ranges, F.sync();
1595
1612
  }
1596
1613
  } };
@@ -1604,8 +1621,8 @@ function go(e) {
1604
1621
  }, [o]);
1605
1622
  const u = At(t.text, t.uppercase, c.tmp).key, S = At(t.secondary, t.uppercase, c.tmp).key;
1606
1623
  $(() => o.setLines(n.current.text, n.current.secondary), [o, u, S, t.uppercase, t.maxWidth, t.size]), $(() => {
1607
- c.accent.set(n.current.color), c.textCol.set(n.current.textColor ?? Ht), c.subCol.set(n.current.secondaryColor ?? ns), o.applyColors();
1608
- }, [o, c, t.color, t.textColor, t.secondaryColor, t.glow, t.plate]), $(() => void (c.target = t.opacity), [c, t.opacity]), $(() => o.layout(), [o, t.size, t.plate, t.anchorX, t.anchorY, t.textAlign, (N = t.offset) == null ? void 0 : N[0], (T = t.offset) == null ? void 0 : T[1]]), fr(
1624
+ c.accent.set(n.current.color), c.textCol.set(n.current.textColor ?? jt), c.subCol.set(n.current.secondaryColor ?? rs), o.applyColors();
1625
+ }, [o, c, t.color, t.textColor, t.secondaryColor, t.glow, t.plate]), $(() => void (c.target = t.opacity), [c, t.opacity]), $(() => o.layout(), [o, t.size, t.plate, t.anchorX, t.anchorY, t.textAlign, (N = t.offset) == null ? void 0 : N[0], (T = t.offset) == null ? void 0 : T[1]]), pr(
1609
1626
  t.ref,
1610
1627
  () => ({
1611
1628
  get object() {
@@ -1626,16 +1643,16 @@ function go(e) {
1626
1643
  }),
1627
1644
  [o, c]
1628
1645
  );
1629
- const A = gs(qe), m = ne(
1630
- () => t.declutter === !1 ? null : qr(t.declutter ?? A.kind, A.agent, t.size),
1646
+ const A = bs(qe), m = ne(
1647
+ () => t.declutter === !1 ? null : Wr(t.declutter ?? A.kind, A.agent, t.size),
1631
1648
  [t.declutter, A, t.size]
1632
1649
  );
1633
1650
  $(() => {
1634
1651
  if (m)
1635
- return Wr(m), () => Dr(m);
1652
+ return Dr(m), () => Fr(m);
1636
1653
  }, [m]), ve(({ camera: E, size: P }, w) => {
1637
- const R = s.current, G = i.current;
1638
- if (!R || !G) return;
1654
+ const V = s.current, G = i.current;
1655
+ if (!V || !G) return;
1639
1656
  const O = n.current;
1640
1657
  c.cur !== c.target && (O.fadeMs <= 0 ? c.cur = c.target : (c.cur += (c.target - c.cur) * Math.min(1, w * 1e3 / O.fadeMs), Math.abs(c.target - c.cur) < 4e-3 && (c.cur = c.target)));
1641
1658
  const x = m;
@@ -1645,11 +1662,11 @@ function go(e) {
1645
1662
  const H = Z.active ? x.subOff : !1;
1646
1663
  H !== c.subOff && c.hasSub && (c.subOff = H, o.layout()), x.live = !1;
1647
1664
  }
1648
- if (x && (x.drawn = !1), c.cur <= 4e-3 || !R.visible) {
1665
+ if (x && (x.drawn = !1), c.cur <= 4e-3 || !V.visible) {
1649
1666
  G.visible = !1;
1650
1667
  return;
1651
1668
  }
1652
- R.getWorldPosition(c.wp), R.getWorldQuaternion(c.q);
1669
+ V.getWorldPosition(c.wp), V.getWorldQuaternion(c.q);
1653
1670
  const D = c.wp.distanceTo(E.position), F = O.fit ? C.label : 1;
1654
1671
  let q = F;
1655
1672
  const X = E, j = E, K = X.isPerspectiveCamera ? 2 * D * Math.tan(y.MathUtils.degToRad(X.fov) / 2) / (X.zoom * P.height) : (j.top - j.bottom) / (j.zoom * P.height);
@@ -1657,7 +1674,7 @@ function go(e) {
1657
1674
  const I = O.size * F / Math.max(K, 1e-6), H = Z.pxk;
1658
1675
  q = y.MathUtils.clamp(I, O.pxRange[0] * H, O.pxRange[1] * H) / I * F;
1659
1676
  }
1660
- if (x && Z.due && ss(R) && (c.ndc.copy(c.wp).project(E), c.ndc.z < 1 && c.ndc.z > -1)) {
1677
+ if (x && Z.due && as(V) && (c.ndc.copy(c.wp).project(E), c.ndc.z < 1 && c.ndc.z > -1)) {
1661
1678
  const I = q / Math.max(K, 1e-6), H = (c.ndc.x + 1) / 2 * P.width, Q = (1 - c.ndc.y) / 2 * P.height;
1662
1679
  x.x = H + c.bx * I, x.y = Q - c.by * I, x.w = c.W * I, x.h = c.H * I, x.x1 = H + c.bx1 * I, x.y1 = Q - c.by1 * I, x.w1 = c.W1 * I, x.h1 = c.H1 * I, x.live = x.w > 1 && x.x + x.w / 2 > 0 && x.x - x.w / 2 < P.width && x.y + x.h / 2 > 0 && x.y - x.h / 2 < P.height, x.clip = x.x - x.w / 2 < -2 || x.x + x.w / 2 > P.width + 2 || x.y - x.h / 2 < -2 || x.y + x.h / 2 > P.height + 2, x.ax = c.wp.x, x.ay = c.wp.y, x.az = c.wp.z, x.ox0 = x.x - x.w / 2 - H, x.ox1 = x.x + x.w / 2 - H, x.oy0 = x.y - x.h / 2 - Q, x.oy1 = x.y + x.h / 2 - Q, x.w > 1 && (x.seen = performance.now());
1663
1680
  }
@@ -1666,17 +1683,17 @@ function go(e) {
1666
1683
  G.visible = !1;
1667
1684
  return;
1668
1685
  }
1669
- G.visible = !0, x && (x.drawn = k > 0.05 && ss(R.parent)), G.quaternion.copy(c.q.invert()).multiply(E.quaternion), G.scale.setScalar(q / (R.matrixWorld.getMaxScaleOnAxis() || 1)), M.plate.uniforms.uOpacity.value = k, M.leader.opacity = k * 0.65, d.current && (d.current.fillOpacity = k), f.current && (f.current.fillOpacity = k * 0.92);
1686
+ G.visible = !0, x && (x.drawn = k > 0.05 && as(V.parent)), G.quaternion.copy(c.q.invert()).multiply(E.quaternion), G.scale.setScalar(q / (V.matrixWorld.getMaxScaleOnAxis() || 1)), M.plate.uniforms.uOpacity.value = k, M.leader.opacity = k * 0.65, d.current && (d.current.fillOpacity = k), f.current && (f.current.fillOpacity = k * 0.92);
1670
1687
  });
1671
- const b = t.depthTest ? es.depth : es.top, v = !!t.onClick;
1672
- return /* @__PURE__ */ h("group", { ref: s, position: t.position, visible: t.visible ?? !0, userData: ao, children: /* @__PURE__ */ V("group", { ref: i, visible: !1, children: [
1673
- t.leader && /* @__PURE__ */ h("mesh", { ref: l, geometry: $n, material: M.leader, renderOrder: t.renderOrder, raycast: gt }),
1674
- /* @__PURE__ */ V("group", { ref: r, children: [
1675
- /* @__PURE__ */ h(
1688
+ const b = t.depthTest ? ns.depth : ns.top, v = !!t.onClick;
1689
+ return /* @__PURE__ */ p("group", { ref: s, position: t.position, visible: t.visible ?? !0, userData: oo, children: /* @__PURE__ */ R("group", { ref: i, visible: !1, children: [
1690
+ t.leader && /* @__PURE__ */ p("mesh", { ref: l, geometry: ts, material: M.leader, renderOrder: t.renderOrder, raycast: gt }),
1691
+ /* @__PURE__ */ R("group", { ref: r, children: [
1692
+ /* @__PURE__ */ p(
1676
1693
  "mesh",
1677
1694
  {
1678
1695
  ref: a,
1679
- geometry: $n,
1696
+ geometry: ts,
1680
1697
  material: M.plate,
1681
1698
  renderOrder: t.renderOrder,
1682
1699
  raycast: v ? y.Mesh.prototype.raycast : gt,
@@ -1691,12 +1708,12 @@ function go(e) {
1691
1708
  } : void 0
1692
1709
  }
1693
1710
  ),
1694
- /* @__PURE__ */ h(
1695
- Sn,
1711
+ /* @__PURE__ */ p(
1712
+ En,
1696
1713
  {
1697
1714
  ref: d,
1698
- font: Qn[t.font],
1699
- characters: Yn,
1715
+ font: _n[t.font],
1716
+ characters: $n,
1700
1717
  fontSize: t.size,
1701
1718
  letterSpacing: t.letterSpacing,
1702
1719
  anchorX: t.textAlign,
@@ -1708,12 +1725,12 @@ function go(e) {
1708
1725
  children: ""
1709
1726
  }
1710
1727
  ),
1711
- /* @__PURE__ */ h(
1712
- Sn,
1728
+ /* @__PURE__ */ p(
1729
+ En,
1713
1730
  {
1714
1731
  ref: f,
1715
- font: Qn[t.font],
1716
- characters: Yn,
1732
+ font: _n[t.font],
1733
+ characters: $n,
1717
1734
  fontSize: t.secondarySize ?? t.size * 0.78,
1718
1735
  letterSpacing: t.letterSpacing,
1719
1736
  anchorX: t.textAlign,
@@ -1730,25 +1747,25 @@ function go(e) {
1730
1747
  ] })
1731
1748
  ] }) });
1732
1749
  }
1733
- function ss(e) {
1750
+ function as(e) {
1734
1751
  for (; e; e = e.parent) if (!e.visible) return !1;
1735
1752
  return !0;
1736
1753
  }
1737
- function Ao(e) {
1754
+ function bo(e) {
1738
1755
  const t = {};
1739
1756
  for (const n in e) e[n] !== void 0 && (t[n] = e[n]);
1740
1757
  return t;
1741
1758
  }
1742
- const Le = 220, Hs = ["planner", "researcher", "writer", "graph_scout", "records_scout", "data_scout"], bo = Object.fromEntries(Hs.map((e) => [e, new y.Color(Ie[e])]));
1759
+ const Le = 220, Xs = ["planner", "researcher", "writer", "graph_scout", "records_scout", "data_scout"], vo = Object.fromEntries(Xs.map((e) => [e, new y.Color(Ie[e])]));
1743
1760
  let bt = null;
1744
- function vo() {
1761
+ function Mo() {
1745
1762
  if (bt) return bt;
1746
1763
  const e = document.createElement("canvas");
1747
1764
  e.width = e.height = 128;
1748
1765
  const t = e.getContext("2d"), n = t.createRadialGradient(64, 64, 0, 64, 64, 64);
1749
1766
  return n.addColorStop(0, "rgba(255,255,255,1)"), n.addColorStop(0.18, "rgba(255,255,255,0.55)"), n.addColorStop(0.5, "rgba(255,255,255,0.12)"), n.addColorStop(1, "rgba(255,255,255,0)"), t.fillStyle = n, t.fillRect(0, 0, 128, 128), bt = new y.CanvasTexture(e), bt;
1750
1767
  }
1751
- const Mo = (
1768
+ const yo = (
1752
1769
  /* glsl */
1753
1770
  `
1754
1771
  attribute vec4 aSeed; // theta, phi(cos), radius 0..1, speed
@@ -1773,7 +1790,7 @@ const Mo = (
1773
1790
  vA = tw;
1774
1791
  }
1775
1792
  `
1776
- ), yo = (
1793
+ ), xo = (
1777
1794
  /* glsl */
1778
1795
  `
1779
1796
  uniform float uOpacity;
@@ -1788,17 +1805,17 @@ const Mo = (
1788
1805
  }
1789
1806
  `
1790
1807
  );
1791
- function xo() {
1808
+ function wo() {
1792
1809
  const e = new y.BufferGeometry(), t = new Float32Array(Le * 3), n = new Float32Array(Le * 4);
1793
1810
  for (let s = 0; s < Le; s++)
1794
1811
  n[s * 4] = s * 2.39996 + Math.random() * 0.3, n[s * 4 + 1] = 1 - 2 * (s * 0.618034 % 1), n[s * 4 + 2] = Math.pow(Math.random(), 0.45), n[s * 4 + 3] = (0.25 + Math.random() * 0.6) * (Math.random() < 0.5 ? -1 : 1);
1795
1812
  return e.setAttribute("position", new y.BufferAttribute(t, 3)), e.setAttribute("aSeed", new y.BufferAttribute(n, 4)), e.setAttribute("aColor", new y.BufferAttribute(new Float32Array(Le * 3), 3)), e.setAttribute("aBright", new y.BufferAttribute(new Float32Array(Le), 1)), e.setDrawRange(0, 0), e.boundingSphere = new y.Sphere(new y.Vector3(), 50), e;
1796
1813
  }
1797
- function wo({ cluster: e, position: t, place: n, color: s, radius: i = 1.4, variant: r = "orb", pointSize: a = 1, labelBelow: l = 1.25, glowGain: d = 1, onClick: f }) {
1798
- const c = B(null), M = B(null), o = B(null), u = B(null), S = B(null), A = B(null), m = B(null), b = ne(() => new y.Color(s ?? e.color), [s, e.color]), v = ne(() => ({ l1: "", l2: "", seen: -1, vis: 0, hover: 0, over: !1, r: i, pos: new y.Vector3(), c: new y.Color(), tokSeen: -1, thSeen: -1, fresh: !0 }), [i]), N = ne(xo, []), T = ne(() => {
1799
- const w = (G) => new y.SpriteMaterial({ map: vo(), color: "#000", blending: y.AdditiveBlending, depthWrite: !1, transparent: !0, toneMapped: !1, opacity: G }), R = new y.ShaderMaterial({
1800
- vertexShader: Mo,
1801
- fragmentShader: yo,
1814
+ function ko({ cluster: e, position: t, place: n, color: s, radius: i = 1.4, variant: r = "orb", pointSize: a = 1, labelBelow: l = 1.25, glowGain: d = 1, onClick: f }) {
1815
+ const c = B(null), M = B(null), o = B(null), u = B(null), S = B(null), A = B(null), m = B(null), b = ne(() => new y.Color(s ?? e.color), [s, e.color]), v = ne(() => ({ l1: "", l2: "", seen: -1, vis: 0, hover: 0, over: !1, r: i, pos: new y.Vector3(), c: new y.Color(), tokSeen: -1, thSeen: -1, fresh: !0 }), [i]), N = ne(wo, []), T = ne(() => {
1816
+ const w = (G) => new y.SpriteMaterial({ map: Mo(), color: "#000", blending: y.AdditiveBlending, depthWrite: !1, transparent: !0, toneMapped: !1, opacity: G }), V = new y.ShaderMaterial({
1817
+ vertexShader: yo,
1818
+ fragmentShader: xo,
1802
1819
  transparent: !0,
1803
1820
  depthWrite: !1,
1804
1821
  blending: y.AdditiveBlending,
@@ -1814,9 +1831,9 @@ function wo({ cluster: e, position: t, place: n, color: s, radius: i = 1.4, vari
1814
1831
  uOpacity: { value: 0 }
1815
1832
  }
1816
1833
  });
1817
- return { core: w(1), hot: w(1), halo: w(1), points: R, hit: new y.MeshBasicMaterial({ visible: !1 }) };
1834
+ return { core: w(1), hot: w(1), halo: w(1), points: V, hit: new y.MeshBasicMaterial({ visible: !1 }) };
1818
1835
  }, [i, a, r]);
1819
- ve(({ clock: w, gl: R, camera: G }) => {
1836
+ ve(({ clock: w, gl: V, camera: G }) => {
1820
1837
  var W, Y;
1821
1838
  const O = e, x = w.elapsedTime, D = O.active && z.grouped ? 1 : 0;
1822
1839
  v.vis += (D - v.vis) * (D ? 0.06 : 0.12), v.vis < 3e-3 && (v.vis = 0);
@@ -1831,17 +1848,17 @@ function wo({ cluster: e, position: t, place: n, color: s, radius: i = 1.4, vari
1831
1848
  const j = i * Math.min(1.7, X) * (0.6 + 0.4 * v.vis) * (1 + v.hover * 0.08), K = Math.sin(x * (1.1 + q * 2.6) + O.lane), L = 1 + K * (0.04 + q * 0.1), k = T.points.uniforms;
1832
1849
  k.uTime.value = x, k.uRadius.value = j, k.uEnergy.value = q;
1833
1850
  const I = G.fov ?? 50;
1834
- k.uPix.value = R.domElement.height / (2 * Math.tan(I * Math.PI / 360)), k.uOpacity.value = v.vis;
1851
+ k.uPix.value = V.domElement.height / (2 * Math.tan(I * Math.PI / 360)), k.uOpacity.value = v.vis;
1835
1852
  const H = d * v.vis;
1836
- if (M.current && (M.current.scale.setScalar(j * 2.4 * L), T.core.color.copy(b).multiplyScalar((0.32 + q * 0.45 + v.hover * 0.2) * H)), o.current && (o.current.scale.setScalar(j * 0.9 * L), T.hot.color.copy(b).lerp(ko, 0.55).multiplyScalar((0.35 + q * 0.6) * H)), u.current && (u.current.scale.setScalar(j * 5.5 * (1 + K * 0.03)), T.halo.color.copy(b).multiplyScalar((0.07 + q * 0.08) * H)), (W = S.current) == null || W.scale.setScalar(j * 1.15), (Y = A.current) == null || Y.position.set(0, -j * l - 0.35, 0), O.version !== v.seen) {
1853
+ if (M.current && (M.current.scale.setScalar(j * 2.4 * L), T.core.color.copy(b).multiplyScalar((0.32 + q * 0.45 + v.hover * 0.2) * H)), o.current && (o.current.scale.setScalar(j * 0.9 * L), T.hot.color.copy(b).lerp(So, 0.55).multiplyScalar((0.35 + q * 0.6) * H)), u.current && (u.current.scale.setScalar(j * 5.5 * (1 + K * 0.03)), T.halo.color.copy(b).multiplyScalar((0.07 + q * 0.08) * H)), (W = S.current) == null || W.scale.setScalar(j * 1.15), (Y = A.current) == null || Y.position.set(0, -j * l - 0.35, 0), O.version !== v.seen) {
1837
1854
  v.seen = O.version;
1838
1855
  const ee = Math.min(Le, Math.max(18, O.agents * 2)), ge = N.getAttribute("aColor"), ke = N.getAttribute("aBright");
1839
1856
  let ae = 0;
1840
1857
  const ie = O.agents ? ee / O.agents : 1;
1841
- for (const U of Hs) {
1858
+ for (const U of Xs) {
1842
1859
  const se = Math.round(O.types[U] * ie);
1843
1860
  for (let he = 0; he < se && ae < ee; he++, ae++)
1844
- v.c.copy(bo[U]).lerp(b, 0.25), ge.setXYZ(ae, v.c.r, v.c.g, v.c.b);
1861
+ v.c.copy(vo[U]).lerp(b, 0.25), ge.setXYZ(ae, v.c.r, v.c.g, v.c.b);
1845
1862
  }
1846
1863
  for (; ae < ee; ae++) ge.setXYZ(ae, b.r, b.g, b.b);
1847
1864
  const Ce = O.agents ? O.thinking / O.agents : 0;
@@ -1852,19 +1869,19 @@ function wo({ cluster: e, position: t, place: n, color: s, radius: i = 1.4, vari
1852
1869
  (Q !== v.tokSeen || O.thinking !== v.thSeen) && (v.tokSeen = Q, v.thSeen = O.thinking, v.l2 = `${O.thinking} thinking · ${Q >= 1e3 ? `${(Q / 1e3).toFixed(1)}M` : `${Q}k`} tok`), m.current && (m.current.setText(v.l1, v.l2), m.current.setEmphasis(v.over), D && m.current.setOpacity(Math.min(1, v.vis * 1.2), !0));
1853
1870
  });
1854
1871
  const E = (w) => {
1855
- var R;
1856
- (R = w == null ? void 0 : w.stopPropagation) == null || R.call(w), (f ?? Ra)(e.lane);
1872
+ var V;
1873
+ (V = w == null ? void 0 : w.stopPropagation) == null || V.call(w), (f ?? Ca)(e.lane);
1857
1874
  }, P = (w) => {
1858
1875
  v.over = w, document.body.style.cursor = w ? "pointer" : "";
1859
1876
  };
1860
- return /* @__PURE__ */ V("group", { ref: c, visible: !1, children: [
1861
- /* @__PURE__ */ h("sprite", { ref: u, material: T.halo }),
1862
- /* @__PURE__ */ h("sprite", { ref: M, material: T.core }),
1863
- /* @__PURE__ */ h("sprite", { ref: o, material: T.hot }),
1864
- /* @__PURE__ */ h("points", { geometry: N, material: T.points, frustumCulled: !1 }),
1865
- /* @__PURE__ */ h("mesh", { ref: S, material: T.hit, onClick: E, onPointerOver: () => P(!0), onPointerOut: () => P(!1), children: /* @__PURE__ */ h("sphereGeometry", { args: [1, 12, 8] }) }),
1866
- /* @__PURE__ */ h("group", { ref: A, children: /* @__PURE__ */ h(
1867
- gn,
1877
+ return /* @__PURE__ */ R("group", { ref: c, visible: !1, children: [
1878
+ /* @__PURE__ */ p("sprite", { ref: u, material: T.halo }),
1879
+ /* @__PURE__ */ p("sprite", { ref: M, material: T.core }),
1880
+ /* @__PURE__ */ p("sprite", { ref: o, material: T.hot }),
1881
+ /* @__PURE__ */ p("points", { geometry: N, material: T.points, frustumCulled: !1 }),
1882
+ /* @__PURE__ */ p("mesh", { ref: S, material: T.hit, onClick: E, onPointerOver: () => P(!0), onPointerOut: () => P(!1), children: /* @__PURE__ */ p("sphereGeometry", { args: [1, 12, 8] }) }),
1883
+ /* @__PURE__ */ p("group", { ref: A, children: /* @__PURE__ */ p(
1884
+ bn,
1868
1885
  {
1869
1886
  ref: m,
1870
1887
  text: "",
@@ -1881,11 +1898,11 @@ function wo({ cluster: e, position: t, place: n, color: s, radius: i = 1.4, vari
1881
1898
  ) })
1882
1899
  ] });
1883
1900
  }
1884
- const ko = new y.Color("#ffffff"), So = Array.from({ length: re }, (e, t) => t);
1885
- function Oo({ place: e, color: t, ...n }) {
1886
- return /* @__PURE__ */ h(ye, { children: So.map((s) => /* @__PURE__ */ h(wo, { cluster: z.clusters[s], place: e, color: typeof t == "function" ? t(s) : t, ...n }, s)) });
1901
+ const So = new y.Color("#ffffff"), Oo = Array.from({ length: re }, (e, t) => t);
1902
+ function Eo({ place: e, color: t, ...n }) {
1903
+ return /* @__PURE__ */ p(ye, { children: Oo.map((s) => /* @__PURE__ */ p(ko, { cluster: z.clusters[s], place: e, color: typeof t == "function" ? t(s) : t, ...n }, s)) });
1887
1904
  }
1888
- const Eo = 3, Vo = [
1905
+ const Ro = 3, Vo = [
1889
1906
  "Why is churn rising for Acme Corp?",
1890
1907
  "Root cause of payment latency incidents",
1891
1908
  "Which region has the most incidents?",
@@ -1894,7 +1911,7 @@ const Eo = 3, Vo = [
1894
1911
  "Which customers are at risk of downgrading?",
1895
1912
  "Why did checkout conversion drop last week?",
1896
1913
  "Compare onboarding time across regions"
1897
- ], jt = [
1914
+ ], Xt = [
1898
1915
  ["Acme Corp", "Enterprise Plan", "Churn Q3"],
1899
1916
  ["Payments API", "Incident #4821", "p99 Latency"],
1900
1917
  ["EMEA", "Incident #4790", "On-call Team"],
@@ -1903,22 +1920,22 @@ const Eo = 3, Vo = [
1903
1920
  ["Umbrella Co", "Seat Downgrade", "Renewal 2026"],
1904
1921
  ["Checkout Funnel", "Conversion Rate", "Release 4.12"],
1905
1922
  ["APAC", "Onboarding Time", "Customer Success"]
1906
- ], Ro = {
1923
+ ], Co = {
1907
1924
  analytics: [["Metrics API", "api"], ["Postgres", "db"]],
1908
1925
  warehouse: [["Snowflake", "warehouse"], ["Spark cluster", "spark"]],
1909
1926
  github: [["GitHub API", "api"]],
1910
1927
  "google-drive": [["Drive storage", "storage"]],
1911
1928
  slack: [["Slack API", "api"], ["Kafka events", "queue"]]
1912
- }, Ae = (e) => e[Math.floor(Math.random() * e.length)], Co = () => Math.random().toString(36).slice(2, 7);
1913
- function To(e) {
1914
- const t = `run-${Co()}`, n = Ae(Vo), s = () => Date.now();
1929
+ }, Ae = (e) => e[Math.floor(Math.random() * e.length)], To = () => Math.random().toString(36).slice(2, 7);
1930
+ function zo(e) {
1931
+ const t = `run-${To()}`, n = Ae(Vo), s = () => Date.now();
1915
1932
  let i = 0;
1916
- const r = (w, R) => {
1917
- i += w, e(i, R);
1918
- }, a = (w, R, G) => r(250, () => ({ type: "spawn", run_id: t, id: w, agent: R, parent_id: G, ts: s() })), l = (w) => r(150, () => ({ type: "agent", run_id: t, id: w, status: "thinking", ts: s() })), d = (w, R = 120) => r(R, () => ({ type: "agent", run_id: t, id: w, status: "waiting", ts: s() })), f = (w, R) => r(R, () => ({ type: "llm", run_id: t, id: w, tokens_in: 1200 + Math.round(Math.random() * 3e3), tokens_out: 150 + Math.round(Math.random() * 700), latency_ms: 700 + Math.random() * 1800, ts: s() })), c = (w, R = 250) => r(R, () => ({ type: "exit", run_id: t, id: w, status: "done", ts: s() })), M = (w, R, G, O = 120) => r(O, () => ({ type: "message", run_id: t, from_id: w, to_id: R, text: G, ts: s() })), o = (w, R, G = 120) => r(G, () => [
1919
- { type: "tool", run_id: t, id: w, tool: "Skill", args_preview: R, ts: s() },
1920
- { type: "skill", run_id: t, id: w, name: R, status: "start", ts: s() }
1921
- ]), u = (w, R, G = 120) => r(G, () => ({ type: "skill", run_id: t, id: w, name: R, status: "end", ts: s() })), S = (w, R, G = 120) => r(G, () => ({ type: "step", run_id: t, step: w, status: R, ts: s() }));
1933
+ const r = (w, V) => {
1934
+ i += w, e(i, V);
1935
+ }, a = (w, V, G) => r(250, () => ({ type: "spawn", run_id: t, id: w, agent: V, parent_id: G, ts: s() })), l = (w) => r(150, () => ({ type: "agent", run_id: t, id: w, status: "thinking", ts: s() })), d = (w, V = 120) => r(V, () => ({ type: "agent", run_id: t, id: w, status: "waiting", ts: s() })), f = (w, V) => r(V, () => ({ type: "llm", run_id: t, id: w, tokens_in: 1200 + Math.round(Math.random() * 3e3), tokens_out: 150 + Math.round(Math.random() * 700), latency_ms: 700 + Math.random() * 1800, ts: s() })), c = (w, V = 250) => r(V, () => ({ type: "exit", run_id: t, id: w, status: "done", ts: s() })), M = (w, V, G, O = 120) => r(O, () => ({ type: "message", run_id: t, from_id: w, to_id: V, text: G, ts: s() })), o = (w, V, G = 120) => r(G, () => [
1936
+ { type: "tool", run_id: t, id: w, tool: "Skill", args_preview: V, ts: s() },
1937
+ { type: "skill", run_id: t, id: w, name: V, status: "start", ts: s() }
1938
+ ]), u = (w, V, G = 120) => r(G, () => ({ type: "skill", run_id: t, id: w, name: V, status: "end", ts: s() })), S = (w, V, G = 120) => r(G, () => ({ type: "step", run_id: t, step: w, status: V, ts: s() }));
1922
1939
  r(0, () => ({ type: "run", run_id: t, status: "started", topic: n, workflow: "research_brief", ts: s() })), S("plan", "running", 300);
1923
1940
  const A = `${t}:planner`;
1924
1941
  a(A, "planner", null), l(A), f(A, 1500), f(A, 900), S("plan", "done", 300);
@@ -1928,57 +1945,57 @@ function To(e) {
1928
1945
  b && o(m, b, 200), f(m, 1200), b && u(m, b, 400);
1929
1946
  const v = 2 + Math.floor(Math.random() * 3), N = [];
1930
1947
  for (let w = 0; w < v; w++) {
1931
- const R = w % 2 === 0 ? "graph_scout" : "records_scout", G = `${t}:${R}:${w}`;
1932
- N.push(G), r(200, () => ({ type: "tool", run_id: t, id: m, tool: "task", args_preview: `${R}: angle ${w + 1} of "${n}"`, ts: s() })), a(G, R, m), M(m, G, `Investigate angle ${w + 1}`, 80);
1948
+ const V = w % 2 === 0 ? "graph_scout" : "records_scout", G = `${t}:${V}:${w}`;
1949
+ N.push(G), r(200, () => ({ type: "tool", run_id: t, id: m, tool: "task", args_preview: `${V}: angle ${w + 1} of "${n}"`, ts: s() })), a(G, V, m), M(m, G, `Investigate angle ${w + 1}`, 80);
1933
1950
  }
1934
1951
  d(m, 200);
1935
1952
  const T = i;
1936
- N.forEach((w, R) => {
1937
- let G = T + 200 + R * 220;
1953
+ N.forEach((w, V) => {
1954
+ let G = T + 200 + V * 220;
1938
1955
  const O = (k, I) => {
1939
1956
  G += k, e(G, I);
1940
- }, x = Ae(jt), D = w.includes("graph_scout");
1957
+ }, x = Ae(Xt), D = w.includes("graph_scout");
1941
1958
  O(0, () => ({ type: "agent", run_id: t, id: w, status: "thinking", ts: s() }));
1942
1959
  const F = Math.random() < 0.45 ? Ae(D ? ["graph-query", "dataviz"] : ["xlsx", "pdf"]) : "";
1943
1960
  F && (O(250, () => ({ type: "tool", run_id: t, id: w, tool: "Skill", args_preview: F, ts: s() })), O(0, () => ({ type: "skill", run_id: t, id: w, name: F, status: "start", ts: s() }))), O(500 + Math.random() * 500, () => ({ type: "tool", run_id: t, id: w, tool: D ? "graph_neighbors" : "search_records", args_preview: `"${x[0]}"`, ts: s() })), O(600, () => ({ type: "graph", run_id: t, id: w, op: "read", nodes: x, ts: s() })), O(700 + Math.random() * 900, () => ({ type: "llm", run_id: t, id: w, tokens_in: 1500 + Math.round(Math.random() * 2e3), tokens_out: 200 + Math.round(Math.random() * 400), latency_ms: 900 + Math.random() * 1200, ts: s() }));
1944
- const [q, X] = Ae(D ? [["analytics", "query_metrics"], ["github", "search_code"]] : [["warehouse", "run_sql"], ["analytics", "list_incidents"], ["google-drive", "read_doc"]]), j = 600 + Math.random() * 1400, [K, L] = Ae(Ro[q]);
1945
- O(400, () => ({ type: "mcp", run_id: t, id: w, server: q, tool: X, phase: "call", resource: K, resource_kind: L, ts: s() })), O(j, () => ({ type: "mcp", run_id: t, id: w, server: q, tool: X, phase: "result", latency_ms: j, resource: K, resource_kind: L, ts: s() })), Math.random() < 0.7 && O(500, () => ({ type: "graph", run_id: t, id: w, op: "read", nodes: Ae(jt), ts: s() })), F && O(300, () => ({ type: "skill", run_id: t, id: w, name: F, status: "end", ts: s() })), O(800 + Math.random() * 1200, () => ({ type: "message", run_id: t, from_id: w, to_id: m, text: `Found ${2 + Math.floor(Math.random() * 6)} linked records`, ts: s() })), O(200, () => ({ type: "exit", run_id: t, id: w, status: "done", ts: s() })), i = Math.max(i, G);
1961
+ const [q, X] = Ae(D ? [["analytics", "query_metrics"], ["github", "search_code"]] : [["warehouse", "run_sql"], ["analytics", "list_incidents"], ["google-drive", "read_doc"]]), j = 600 + Math.random() * 1400, [K, L] = Ae(Co[q]);
1962
+ O(400, () => ({ type: "mcp", run_id: t, id: w, server: q, tool: X, phase: "call", resource: K, resource_kind: L, ts: s() })), O(j, () => ({ type: "mcp", run_id: t, id: w, server: q, tool: X, phase: "result", latency_ms: j, resource: K, resource_kind: L, ts: s() })), Math.random() < 0.7 && O(500, () => ({ type: "graph", run_id: t, id: w, op: "read", nodes: Ae(Xt), ts: s() })), F && O(300, () => ({ type: "skill", run_id: t, id: w, name: F, status: "end", ts: s() })), O(800 + Math.random() * 1200, () => ({ type: "message", run_id: t, from_id: w, to_id: m, text: `Found ${2 + Math.floor(Math.random() * 6)} linked records`, ts: s() })), O(200, () => ({ type: "exit", run_id: t, id: w, status: "done", ts: s() })), i = Math.max(i, G);
1946
1963
  }), l(m), f(m, 1300), S("research", "done", 300);
1947
1964
  const E = `${t}:writer`;
1948
1965
  S("write", "running", 200), a(E, "writer", m), M(m, E, "Findings merged - draft the brief", 120), c(m, 200), l(E);
1949
1966
  const P = [Ae(["pptx", "docx", "pdf"]), "dataviz", "haiku"].slice(0, 2 + Math.floor(Math.random() * 2));
1950
- return P.forEach((w, R) => o(E, w, R ? 500 : 150)), f(E, 1800), r(400, () => ({ type: "graph", run_id: t, id: E, op: "write", nodes: [`Brief: ${n}`, ...Ae(jt).slice(0, 2)], ts: s() })), r(300, () => ({ type: "mcp", run_id: t, id: E, server: "slack", tool: "post_message", phase: "call", resource: "Slack API", resource_kind: "api", ts: s() })), r(700, () => ({ type: "mcp", run_id: t, id: E, server: "slack", tool: "post_message", phase: "result", latency_ms: 700, resource: "Slack API", resource_kind: "api", ts: s() })), P.forEach((w, R) => u(E, w, R ? 900 : 300)), S("write", "done", 400), r(150, () => ({ type: "final", run_id: t, text: `Brief on "${n}": linked accounts, incidents and metrics summarized with sources.`, ts: s() })), c(E, 100), r(200, () => ({ type: "run", run_id: t, status: "completed", topic: n, workflow: "research_brief", ts: s() })), i;
1967
+ return P.forEach((w, V) => o(E, w, V ? 500 : 150)), f(E, 1800), r(400, () => ({ type: "graph", run_id: t, id: E, op: "write", nodes: [`Brief: ${n}`, ...Ae(Xt).slice(0, 2)], ts: s() })), r(300, () => ({ type: "mcp", run_id: t, id: E, server: "slack", tool: "post_message", phase: "call", resource: "Slack API", resource_kind: "api", ts: s() })), r(700, () => ({ type: "mcp", run_id: t, id: E, server: "slack", tool: "post_message", phase: "result", latency_ms: 700, resource: "Slack API", resource_kind: "api", ts: s() })), P.forEach((w, V) => u(E, w, V ? 900 : 300)), S("write", "done", 400), r(150, () => ({ type: "final", run_id: t, text: `Brief on "${n}": linked accounts, incidents and metrics summarized with sources.`, ts: s() })), c(E, 100), r(200, () => ({ type: "run", run_id: t, status: "completed", topic: n, workflow: "research_brief", ts: s() })), i;
1951
1968
  }
1952
- function zo() {
1953
- Vn(!0);
1969
+ function Po() {
1970
+ Cn(!0);
1954
1971
  let e = !1;
1955
1972
  const t = [];
1956
1973
  let n = 0;
1957
1974
  const s = () => {
1958
1975
  if (e) return;
1959
1976
  n++;
1960
- const a = To((l, d) => {
1977
+ const a = zo((l, d) => {
1961
1978
  t.push(
1962
1979
  window.setTimeout(() => {
1963
1980
  if (e) return;
1964
1981
  const f = d(performance.now());
1965
- (Array.isArray(f) ? f : [f]).forEach(Ss);
1982
+ (Array.isArray(f) ? f : [f]).forEach(Es);
1966
1983
  }, l)
1967
1984
  );
1968
1985
  });
1969
1986
  t.push(window.setTimeout(() => (n--, i()), a + 300));
1970
1987
  }, i = () => {
1971
1988
  if (!e)
1972
- for (; n < Eo; ) {
1989
+ for (; n < Ro; ) {
1973
1990
  const r = 1500 + Math.random() * 3500;
1974
1991
  n++, t.push(window.setTimeout(() => (n--, s()), r));
1975
1992
  }
1976
1993
  };
1977
1994
  return s(), t.push(window.setTimeout(i, 2500)), () => {
1978
- e = !0, t.forEach(clearTimeout), Vn(!1);
1995
+ e = !0, t.forEach(clearTimeout), Cn(!1);
1979
1996
  };
1980
1997
  }
1981
- const Ze = ["Customer", "Account", "Incident", "Ticket", "Product", "Region", "Metric", "Team"], rs = [0.24, 0.24, 0.22, 0.12, 0.06, 0.03, 0.05, 0.04], Xt = [
1998
+ const Ze = ["Customer", "Account", "Incident", "Ticket", "Product", "Region", "Metric", "Team"], os = [0.24, 0.24, 0.22, 0.12, 0.06, 0.03, 0.05, 0.04], Kt = [
1982
1999
  "Acme Corp",
1983
2000
  "Globex",
1984
2001
  "Initech",
@@ -2002,17 +2019,17 @@ const Ze = ["Customer", "Account", "Incident", "Ticket", "Product", "Region", "M
2002
2019
  "Release 4.12",
2003
2020
  "Renewal 2026"
2004
2021
  ];
2005
- function js(e = 320) {
2022
+ function Ks(e = 320) {
2006
2023
  const t = Array.from({ length: e }, (s, i) => {
2007
- if (i < Xt.length) return { id: Xt[i], name: Xt[i], kind: Ze[i % Ze.length] };
2024
+ if (i < Kt.length) return { id: Kt[i], name: Kt[i], kind: Ze[i % Ze.length] };
2008
2025
  let r = Math.random(), a = 0;
2009
- for (; a < rs.length - 1 && (r -= rs[a]) > 0; ) a++;
2026
+ for (; a < os.length - 1 && (r -= os[a]) > 0; ) a++;
2010
2027
  return { id: `n${i}`, name: `${Ze[a]} ${i}`, kind: Ze[a] };
2011
2028
  }), n = Array.from({ length: e }, () => ({ source: t[Math.floor(Math.random() * e)].id, target: t[Math.floor(Math.random() * e)].id }));
2012
2029
  return { nodes: t, links: n };
2013
2030
  }
2014
- const nn = { nodes: [], links: [] }, Po = 400;
2015
- class Go {
2031
+ const rn = { nodes: [], links: [] }, Go = 400;
2032
+ class Io {
2016
2033
  constructor() {
2017
2034
  Qe(this, "nodes", []);
2018
2035
  Qe(this, "links", []);
@@ -2027,7 +2044,7 @@ class Go {
2027
2044
  const r = String(i).trim();
2028
2045
  if (!r) continue;
2029
2046
  const a = r.toLowerCase();
2030
- s.push(a), !(this.seen.has(a) || this.nodes.length >= Po) && (this.seen.add(a), this.nodes.push({ id: a, name: r, kind: Ze[Math.floor(ln(a, 3) * Ze.length)] }), n = !0);
2047
+ s.push(a), !(this.seen.has(a) || this.nodes.length >= Go) && (this.seen.add(a), this.nodes.push({ id: a, name: r, kind: Ze[Math.floor(dn(a, 3) * Ze.length)] }), n = !0);
2031
2048
  }
2032
2049
  for (let i = 1; i < s.length; i++) {
2033
2050
  const r = s[i - 1], a = s[i];
@@ -2041,15 +2058,15 @@ class Go {
2041
2058
  return { nodes: [...this.nodes], links: [...this.links] };
2042
2059
  }
2043
2060
  }
2044
- function zt(e) {
2061
+ function Pt(e) {
2045
2062
  const t = {};
2046
2063
  return e.token && (t.authorization = `Bearer ${e.token}`), e.scope && (t["x-agentglow-scope"] = e.scope), e.run && (t["x-agentglow-run"] = e.run), t;
2047
2064
  }
2048
- const Io = (e, t) => new Promise((n) => {
2065
+ const No = (e, t) => new Promise((n) => {
2049
2066
  const s = window.setTimeout(n, e);
2050
2067
  t.addEventListener("abort", () => (window.clearTimeout(s), n()), { once: !0 });
2051
2068
  });
2052
- function No(e, t, n, s) {
2069
+ function qo(e, t, n, s) {
2053
2070
  const i = new AbortController(), { signal: r } = i;
2054
2071
  let a = 2e3, l = 0;
2055
2072
  return (async () => {
@@ -2083,42 +2100,42 @@ function No(e, t, n, s) {
2083
2100
  if (r.aborted) return;
2084
2101
  }
2085
2102
  const d = Math.min(a * 2 ** l, 3e4) * (0.75 + Math.random() * 0.5);
2086
- l = Math.min(l + 1, 6), await Io(d, r);
2103
+ l = Math.min(l + 1, 6), await No(d, r);
2087
2104
  }
2088
2105
  })(), () => i.abort();
2089
2106
  }
2090
- let _ = null, sn = !1;
2107
+ let _ = null, an = !1;
2091
2108
  const rt = /* @__PURE__ */ new Set(), Be = () => rt.forEach((e) => e());
2092
- function Vt(e) {
2093
- sn !== e && (sn = e, Be());
2109
+ function Rt(e) {
2110
+ an !== e && (an = e, Be());
2094
2111
  }
2095
- function qo() {
2112
+ function Wo() {
2096
2113
  return Ct(
2097
2114
  (e) => (rt.add(e), () => rt.delete(e)),
2098
- () => sn,
2115
+ () => an,
2099
2116
  () => !1
2100
2117
  );
2101
2118
  }
2102
- const Xs = "unauthorized";
2103
- async function Wo(e, t) {
2119
+ const Qs = "unauthorized";
2120
+ async function Do(e, t) {
2104
2121
  try {
2105
- const n = await fetch(`${e}/live/health`, { headers: zt(t), signal: AbortSignal.timeout(2500) });
2106
- return n.status === 401 || n.status === 403 ? Xs : n.ok ? await n.json().catch(() => ({})) ?? {} : null;
2122
+ const n = await fetch(`${e}/live/health`, { headers: Pt(t), signal: AbortSignal.timeout(2500) });
2123
+ return n.status === 401 || n.status === 403 ? Qs : n.ok ? await n.json().catch(() => ({})) ?? {} : null;
2107
2124
  } catch {
2108
2125
  return null;
2109
2126
  }
2110
2127
  }
2111
- async function Do(e, t, n) {
2128
+ async function Fo(e, t, n) {
2112
2129
  if (typeof n.run == "boolean") return n.run;
2113
2130
  try {
2114
- return (await fetch(`${e}/live/run`, { headers: { ...zt(t), accept: "application/json" }, signal: AbortSignal.timeout(2500) })).status === 405;
2131
+ return (await fetch(`${e}/live/run`, { headers: { ...Pt(t), accept: "application/json" }, signal: AbortSignal.timeout(2500) })).status === 405;
2115
2132
  } catch {
2116
2133
  return !1;
2117
2134
  }
2118
2135
  }
2119
- function Fo(e, t) {
2136
+ function Lo(e, t) {
2120
2137
  const n = () => {
2121
- e.dead || (Rn("sim"), e.stop = zo(), Be());
2138
+ e.dead || (Tn("sim"), e.stop = Po(), Be());
2122
2139
  };
2123
2140
  if (t) return n();
2124
2141
  const s = (i) => {
@@ -2133,77 +2150,77 @@ function Fo(e, t) {
2133
2150
  }
2134
2151
  };
2135
2152
  (async () => {
2136
- const i = await Wo(e.source, e.auth);
2153
+ const i = await Do(e.source, e.auth);
2137
2154
  if (e.dead) return;
2138
2155
  const r = () => {
2139
- e.dead || (Es(!0), Vt(!1));
2156
+ e.dead || (Vs(!0), Rt(!1));
2140
2157
  };
2141
- if (i === Xs) return r();
2158
+ if (i === Qs) return r();
2142
2159
  if (!i)
2143
- return e.galaxy = js(), n();
2144
- Rn("live");
2145
- const a = zt(e.auth);
2146
- Do(e.source, e.auth, i).then((l) => !e.dead && Vt(l)), fetch(`${e.source}/live/graph`, { headers: a }).then((l) => l.status === 401 || l.status === 403 ? (r(), null) : l.ok ? l.json() : null).then((l) => {
2160
+ return e.galaxy = Ks(), n();
2161
+ Tn("live");
2162
+ const a = Pt(e.auth);
2163
+ Fo(e.source, e.auth, i).then((l) => !e.dead && Rt(l)), fetch(`${e.source}/live/graph`, { headers: a }).then((l) => l.status === 401 || l.status === 403 ? (r(), null) : l.ok ? l.json() : null).then((l) => {
2147
2164
  var d;
2148
- !e.dead && ((d = l == null ? void 0 : l.nodes) != null && d.length) && (e.galaxy = l, e.served = !0, Cr(l.label ?? "FalkorDB · knowledge graph"), Be());
2165
+ !e.dead && ((d = l == null ? void 0 : l.nodes) != null && d.length) && (e.galaxy = l, e.served = !0, Tr(l.label ?? "FalkorDB · knowledge graph"), Be());
2149
2166
  }).catch(() => {
2150
- }), e.stop = No(`${e.source}/live/stream`, a, (l) => {
2167
+ }), e.stop = qo(`${e.source}/live/stream`, a, (l) => {
2151
2168
  try {
2152
- const d = JSON.parse(l), f = p.hasGraph;
2153
- Ss(d), d.type === "graph" && Array.isArray(d.nodes) && (s(d.nodes), !f && p.hasGraph && Be());
2169
+ const d = JSON.parse(l), f = h.hasGraph;
2170
+ Es(d), d.type === "graph" && Array.isArray(d.nodes) && (s(d.nodes), !f && h.hasGraph && Be());
2154
2171
  } catch {
2155
2172
  }
2156
2173
  }, r);
2157
2174
  })();
2158
2175
  }
2159
- function Ks(e) {
2176
+ function Ys(e) {
2160
2177
  var t;
2161
- e.dead = !0, (t = e.stop) == null || t.call(e), e.growTimer && window.clearTimeout(e.growTimer), _ === e && (_ = null, Vt(!1));
2178
+ e.dead = !0, (t = e.stop) == null || t.call(e), e.growTimer && window.clearTimeout(e.growTimer), _ === e && (_ = null, Rt(!1));
2162
2179
  }
2163
- function Lo(e, t, n) {
2180
+ function Bo(e, t, n) {
2164
2181
  const s = t ? "sim" : `live:${e}|${n.scope ?? ""}|${n.run ?? ""}|${n.token ?? ""}`;
2165
2182
  if (_ && _.key === s && !_.dead)
2166
2183
  return _.refs++, _;
2167
- _ && ((_.source !== e || _.key === "sim" || s === "sim") && console.warn(`[agentglow] one data source per page: switching from "${_.source || _.key}" to "${e || s}"`), Ks(_)), Tr();
2168
- const i = { key: s, source: e, auth: n, refs: 1, dead: !1, galaxy: t ? js() : nn, served: !1, events: new Go(), growTimer: 0 };
2169
- return _ = i, Fo(i, t), i;
2184
+ _ && ((_.source !== e || _.key === "sim" || s === "sim") && console.warn(`[agentglow] one data source per page: switching from "${_.source || _.key}" to "${e || s}"`), Ys(_)), zr();
2185
+ const i = { key: s, source: e, auth: n, refs: 1, dead: !1, galaxy: t ? Ks() : rn, served: !1, events: new Io(), growTimer: 0 };
2186
+ return _ = i, Lo(i, t), i;
2170
2187
  }
2171
- function Bo(e) {
2188
+ function Uo(e) {
2172
2189
  window.setTimeout(() => {
2173
- --e.refs <= 0 && Ks(e);
2190
+ --e.refs <= 0 && Ys(e);
2174
2191
  }, 0);
2175
2192
  }
2176
- async function Uo(e) {
2177
- const t = (_ == null ? void 0 : _.source) ?? "", n = (_ == null ? void 0 : _.auth) ?? {}, s = n.scope ? { topic: e, scope: n.scope } : { topic: e }, i = await fetch(`${t}/live/run`, { method: "POST", headers: { ...zt(n), "content-type": "application/json" }, body: JSON.stringify(s) });
2178
- return (i.status === 404 || i.status === 405) && Vt(!1), (i.status === 401 || i.status === 403) && Es(!0), i.ok ? (await i.json().catch(() => ({}))).run_id ?? "started" : null;
2193
+ async function Zo(e) {
2194
+ const t = (_ == null ? void 0 : _.source) ?? "", n = (_ == null ? void 0 : _.auth) ?? {}, s = n.scope ? { topic: e, scope: n.scope } : { topic: e }, i = await fetch(`${t}/live/run`, { method: "POST", headers: { ...Pt(n), "content-type": "application/json" }, body: JSON.stringify(s) });
2195
+ return (i.status === 404 || i.status === 405) && Rt(!1), (i.status === 401 || i.status === 403) && Vs(!0), i.ok ? (await i.json().catch(() => ({}))).run_id ?? "started" : null;
2179
2196
  }
2180
- function Zo() {
2181
- const { source: e, sim: t, scope: n, run: s, token: i } = an(), [r, a] = fe(nn);
2197
+ function Jo() {
2198
+ const { source: e, sim: t, scope: n, run: s, token: i } = cn(), [r, a] = fe(rn);
2182
2199
  return $(() => {
2183
- const l = Lo(e, t, { scope: n || void 0, run: s || void 0, token: i || void 0 }), d = () => a(p.hasGraph ? l.galaxy : nn);
2200
+ const l = Bo(e, t, { scope: n || void 0, run: s || void 0, token: i || void 0 }), d = () => a(h.hasGraph ? l.galaxy : rn);
2184
2201
  return d(), rt.add(d), () => {
2185
- rt.delete(d), Bo(l);
2202
+ rt.delete(d), Uo(l);
2186
2203
  };
2187
2204
  }, [e, t, n, s, i]), r;
2188
2205
  }
2189
- function mc(e, t) {
2206
+ function gc(e, t) {
2190
2207
  const n = e.nodes.findIndex((i) => i.name.toLowerCase() === t.toLowerCase());
2191
2208
  if (n >= 0) return n;
2192
2209
  let s = 7;
2193
2210
  for (const i of t.toLowerCase()) s = s * 31 + i.charCodeAt(0) >>> 0;
2194
2211
  return e.nodes.length ? s % e.nodes.length : 0;
2195
2212
  }
2196
- const Jo = mr;
2213
+ const Ho = Ar;
2197
2214
  function at(e) {
2198
2215
  return e.replace("run-", "").slice(0, 6);
2199
2216
  }
2200
2217
  function oe(e) {
2201
- const t = p.instances.get(e) ?? p.archive.get(e);
2218
+ const t = h.instances.get(e) ?? h.archive.get(e);
2202
2219
  if (t) return `${t.name} · ${at(t.run)}`;
2203
2220
  const [n, s, i] = e.split(":");
2204
2221
  return `${s ?? e.slice(0, 6)}${i !== void 0 ? `#${Number(i) + 1}` : ""} · ${at(n)}`;
2205
2222
  }
2206
- function Qs(e) {
2223
+ function _s(e) {
2207
2224
  switch (e.type) {
2208
2225
  case "run":
2209
2226
  return `run ${e.status} · ${e.topic}`;
@@ -2234,47 +2251,47 @@ function Qs(e) {
2234
2251
  return `final answer · ${at(e.run_id)}`;
2235
2252
  }
2236
2253
  }
2237
- const Ho = "#f5b83d";
2238
- function jo(e) {
2254
+ const jo = "#f5b83d";
2255
+ function Xo(e) {
2239
2256
  var s;
2240
- if (e.type === "skill") return Ho;
2241
- const t = "id" in e ? e.id : e.type === "message" ? e.from_id : null, n = t ? p.instances.get(t) : null;
2242
- return n ? Ie[n.type] : e.type === "graph" ? "#c7d2fe" : e.type === "mcp" ? ((s = p.mcpServers.get(e.server)) == null ? void 0 : s.color) ?? "#94a3b8" : e.type === "run" || e.type === "step" ? "#fde68a" : "#c7d2fe";
2257
+ if (e.type === "skill") return jo;
2258
+ const t = "id" in e ? e.id : e.type === "message" ? e.from_id : null, n = t ? h.instances.get(t) : null;
2259
+ return n ? Ie[n.type] : e.type === "graph" ? "#c7d2fe" : e.type === "mcp" ? ((s = h.mcpServers.get(e.server)) == null ? void 0 : s.color) ?? "#94a3b8" : e.type === "run" || e.type === "step" ? "#fde68a" : "#c7d2fe";
2243
2260
  }
2244
- function Xo(e) {
2245
- const { hud: t } = an();
2261
+ function Ko(e) {
2262
+ const { hud: t } = cn();
2246
2263
  return $(() => {
2247
2264
  e.selected && Je(e.selected);
2248
- }, [e.selected]), t ? /* @__PURE__ */ h($o, { ...e }) : /* @__PURE__ */ h(ye, { children: e.children });
2265
+ }, [e.selected]), t ? /* @__PURE__ */ p(ei, { ...e }) : /* @__PURE__ */ p(ye, { children: e.children });
2249
2266
  }
2250
- const rn = ["agents", "events", "selected"], Kt = { agents: "Agents", events: "Events", selected: "Selected" }, Ko = 720, Ys = "agentglow.hud.sidebar";
2251
- function Qo() {
2267
+ const on = ["agents", "events", "selected"], Qt = { agents: "Agents", events: "Events", selected: "Selected" }, Qo = 720, $s = "agentglow.hud.sidebar";
2268
+ function Yo() {
2252
2269
  try {
2253
- const e = JSON.parse(localStorage.getItem(Ys) ?? "null");
2254
- if (e && rn.includes(e.tab)) return { collapsed: !!e.collapsed, tab: e.tab === "selected" ? "agents" : e.tab };
2270
+ const e = JSON.parse(localStorage.getItem($s) ?? "null");
2271
+ if (e && on.includes(e.tab)) return { collapsed: !!e.collapsed, tab: e.tab === "selected" ? "agents" : e.tab };
2255
2272
  } catch {
2256
2273
  }
2257
2274
  return { collapsed: !1, tab: "agents" };
2258
2275
  }
2259
- function Yo(e) {
2276
+ function _o(e) {
2260
2277
  try {
2261
- localStorage.setItem(Ys, JSON.stringify(e));
2278
+ localStorage.setItem($s, JSON.stringify(e));
2262
2279
  } catch {
2263
2280
  }
2264
2281
  }
2265
- const _o = (e) => e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : `${e}`;
2266
- function $o({ title: e, subtitle: t, onClose: n, inset: s, children: i }) {
2267
- const { embedded: r, scope: a, run: l } = an(), d = qo(), f = ot(), [, c] = fe(0), [M, o] = fe(!1), [u, S] = fe(Qo), A = B(null), m = B(!1), b = B(null), v = B(null), N = B(null), T = B({ t0: performance.now(), head: null, at: performance.now(), done: !1 });
2282
+ const $o = (e) => e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : `${e}`;
2283
+ function ei({ title: e, subtitle: t, onClose: n, inset: s, children: i }) {
2284
+ const { embedded: r, scope: a, run: l } = cn(), d = Wo(), f = ot(), [, c] = fe(0), [M, o] = fe(!1), [u, S] = fe(Yo), A = B(null), m = B(!1), b = B(null), v = B(null), N = B(null), T = B({ t0: performance.now(), head: null, at: performance.now(), done: !1 });
2268
2285
  $(() => {
2269
2286
  const k = window.setInterval(() => c((I) => I + 1), 500);
2270
2287
  return () => clearInterval(k);
2271
- }, []), hr(() => {
2288
+ }, []), mr(() => {
2272
2289
  var I;
2273
2290
  const k = (I = v.current) == null ? void 0 : I.closest(".scene-root");
2274
- k && k.clientWidth < Ko && (m.current = !0, S((H) => ({ ...H, collapsed: !0 })));
2291
+ k && k.clientWidth < Qo && (m.current = !0, S((H) => ({ ...H, collapsed: !0 })));
2275
2292
  }, []);
2276
2293
  const E = (k) => {
2277
- S(k), m.current || Yo(k);
2294
+ S(k), m.current || _o(k);
2278
2295
  }, P = f.selected;
2279
2296
  $(() => {
2280
2297
  P && S((k) => (k.tab !== "selected" && (A.current = k), { collapsed: !1, tab: "selected" }));
@@ -2284,7 +2301,7 @@ function $o({ title: e, subtitle: t, onClose: n, inset: s, children: i }) {
2284
2301
  if (!k || typeof ResizeObserver > "u") return;
2285
2302
  let I = 0;
2286
2303
  const H = new ResizeObserver(() => {
2287
- cancelAnimationFrame(I), I = requestAnimationFrame(() => k.dispatchEvent(new Event(Yt)));
2304
+ cancelAnimationFrame(I), I = requestAnimationFrame(() => k.dispatchEvent(new Event($t)));
2288
2305
  });
2289
2306
  return b.current && H.observe(b.current), v.current && H.observe(v.current), () => {
2290
2307
  cancelAnimationFrame(I), H.disconnect();
@@ -2296,186 +2313,186 @@ function $o({ title: e, subtitle: t, onClose: n, inset: s, children: i }) {
2296
2313
  I !== w.head && (w.head = I, w.at = k), I && k - w.at > 1e3 || k - w.t0 > 4e3 ? w.done = !0 : N.current = I;
2297
2314
  }
2298
2315
  u.tab === "events" && !u.collapsed && (N.current = f.ticker[0] ?? null);
2299
- const R = N.current ? f.ticker.indexOf(N.current) : -1, G = u.tab === "events" && !u.collapsed ? 0 : R >= 0 ? R : f.ticker.length, O = [...f.instances.values()].filter(te), x = [...f.runs.values()].filter((k) => k.status === "started"), D = f.stats.graphReads + f.stats.graphWrites, F = () => {
2316
+ const V = N.current ? f.ticker.indexOf(N.current) : -1, G = u.tab === "events" && !u.collapsed ? 0 : V >= 0 ? V : f.ticker.length, O = [...f.instances.values()].filter(te), x = [...f.runs.values()].filter((k) => k.status === "started"), D = f.stats.graphReads + f.stats.graphWrites, F = () => {
2300
2317
  Je(null), n == null || n();
2301
2318
  const k = A.current ?? { collapsed: u.collapsed, tab: "agents" };
2302
2319
  A.current = null, E(k);
2303
- }, q = (k) => E({ collapsed: !1, tab: k }), X = r ? "" : location.pathname.replace(/\/$/, "").slice(1), j = r ? "" : location.search, K = un(f.selected), L = { agents: O.length ? `${O.length}` : "", events: G ? G >= 60 ? "60+" : `${G}` : "", selected: K ? "1" : "" };
2304
- return /* @__PURE__ */ V(ye, { children: [
2305
- /* @__PURE__ */ V("div", { ref: b, className: `hud-topwrap${u.collapsed ? " is-rail" : ""}`, children: [
2306
- /* @__PURE__ */ V("header", { className: "hud hud-top", children: [
2307
- /* @__PURE__ */ V("div", { className: "hud-bar", children: [
2308
- /* @__PURE__ */ V("div", { className: "hud-title", children: [
2309
- /* @__PURE__ */ h("span", { className: "hud-dot" }),
2320
+ }, q = (k) => E({ collapsed: !1, tab: k }), X = r ? "" : location.pathname.replace(/\/$/, "").slice(1), j = r ? "" : location.search, K = fn(f.selected), L = { agents: O.length ? `${O.length}` : "", events: G ? G >= 60 ? "60+" : `${G}` : "", selected: K ? "1" : "" };
2321
+ return /* @__PURE__ */ R(ye, { children: [
2322
+ /* @__PURE__ */ R("div", { ref: b, className: `hud-topwrap${u.collapsed ? " is-rail" : ""}`, children: [
2323
+ /* @__PURE__ */ R("header", { className: "hud hud-top", children: [
2324
+ /* @__PURE__ */ R("div", { className: "hud-bar", children: [
2325
+ /* @__PURE__ */ R("div", { className: "hud-title", children: [
2326
+ /* @__PURE__ */ p("span", { className: "hud-dot" }),
2310
2327
  e
2311
2328
  ] }),
2312
- f.mode === "sim" && /* @__PURE__ */ h("span", { className: "hud-badge", children: "sim" }),
2313
- f.mode === "live" && !f.unauthorized && /* @__PURE__ */ h("span", { className: "hud-badge hud-badge--live", children: "live" }),
2314
- a && /* @__PURE__ */ h(os, { label: "scope", value: a }),
2315
- l && /* @__PURE__ */ h(os, { label: "run", value: l }),
2316
- f.unauthorized && /* @__PURE__ */ h("span", { className: "hud-badge hud-badge--denied", role: "status", title: "The server answered 401: this token / scope is not allowed to watch these agents", children: "not authorized for this scope" }),
2317
- /* @__PURE__ */ h("button", { className: `hud-info${M ? " on" : ""}`, onClick: () => o((k) => !k), "aria-label": "What am I looking at?", "aria-expanded": M, title: "What am I looking at?", children: "i" }),
2318
- f.mode === "live" && d && /* @__PURE__ */ h(ai, {}),
2319
- !r && /* @__PURE__ */ V("select", { className: "hud-theme", value: X, "aria-label": "Theme", onChange: (k) => location.href = `/${k.target.value}${j}`, children: [
2320
- /* @__PURE__ */ h("option", { value: "", children: "all themes" }),
2321
- Jo.map((k) => /* @__PURE__ */ h("option", { value: k, children: k }, k))
2329
+ f.mode === "sim" && /* @__PURE__ */ p("span", { className: "hud-badge", children: "sim" }),
2330
+ f.mode === "live" && !f.unauthorized && /* @__PURE__ */ p("span", { className: "hud-badge hud-badge--live", children: "live" }),
2331
+ a && /* @__PURE__ */ p(cs, { label: "scope", value: a }),
2332
+ l && /* @__PURE__ */ p(cs, { label: "run", value: l }),
2333
+ f.unauthorized && /* @__PURE__ */ p("span", { className: "hud-badge hud-badge--denied", role: "status", title: "The server answered 401: this token / scope is not allowed to watch these agents", children: "not authorized for this scope" }),
2334
+ /* @__PURE__ */ p("button", { className: `hud-info${M ? " on" : ""}`, onClick: () => o((k) => !k), "aria-label": "What am I looking at?", "aria-expanded": M, title: "What am I looking at?", children: "i" }),
2335
+ f.mode === "live" && d && /* @__PURE__ */ p(oi, {}),
2336
+ !r && /* @__PURE__ */ R("select", { className: "hud-theme", value: X, "aria-label": "Theme", onChange: (k) => location.href = `/${k.target.value}${j}`, children: [
2337
+ /* @__PURE__ */ p("option", { value: "", children: "all themes" }),
2338
+ Ho.map((k) => /* @__PURE__ */ p("option", { value: k, children: k }, k))
2322
2339
  ] }),
2323
- /* @__PURE__ */ V("div", { className: "hud-stats", "aria-label": "Live totals", children: [
2324
- /* @__PURE__ */ V("span", { className: "hud-stat", title: "active runs", children: [
2325
- /* @__PURE__ */ h("b", { children: x.length }),
2340
+ /* @__PURE__ */ R("div", { className: "hud-stats", "aria-label": "Live totals", children: [
2341
+ /* @__PURE__ */ R("span", { className: "hud-stat", title: "active runs", children: [
2342
+ /* @__PURE__ */ p("b", { children: x.length }),
2326
2343
  " runs"
2327
2344
  ] }),
2328
- /* @__PURE__ */ V("span", { className: "hud-stat", title: "agents alive", children: [
2329
- /* @__PURE__ */ h("b", { children: O.length }),
2345
+ /* @__PURE__ */ R("span", { className: "hud-stat", title: "agents alive", children: [
2346
+ /* @__PURE__ */ p("b", { children: O.length }),
2330
2347
  " agents"
2331
2348
  ] }),
2332
- /* @__PURE__ */ V("span", { className: "hud-stat", title: "tokens", children: [
2333
- /* @__PURE__ */ h("b", { children: _o(f.stats.tokens) }),
2349
+ /* @__PURE__ */ R("span", { className: "hud-stat", title: "tokens", children: [
2350
+ /* @__PURE__ */ p("b", { children: $o(f.stats.tokens) }),
2334
2351
  " tok"
2335
2352
  ] }),
2336
- D > 0 && /* @__PURE__ */ V("span", { className: "hud-stat", title: `graph reads ${f.stats.graphReads} · writes ${f.stats.graphWrites}`, children: [
2337
- /* @__PURE__ */ h("b", { children: D }),
2353
+ D > 0 && /* @__PURE__ */ R("span", { className: "hud-stat", title: `graph reads ${f.stats.graphReads} · writes ${f.stats.graphWrites}`, children: [
2354
+ /* @__PURE__ */ p("b", { children: D }),
2338
2355
  " graph"
2339
2356
  ] }),
2340
- f.stats.mcpCalls > 0 && /* @__PURE__ */ V("span", { className: "hud-stat", title: "MCP calls", children: [
2341
- /* @__PURE__ */ h("b", { children: f.stats.mcpCalls }),
2357
+ f.stats.mcpCalls > 0 && /* @__PURE__ */ R("span", { className: "hud-stat", title: "MCP calls", children: [
2358
+ /* @__PURE__ */ p("b", { children: f.stats.mcpCalls }),
2342
2359
  " MCP"
2343
2360
  ] })
2344
2361
  ] })
2345
2362
  ] }),
2346
- M && /* @__PURE__ */ h("div", { className: "hud-sub", children: t })
2363
+ M && /* @__PURE__ */ p("div", { className: "hud-sub", children: t })
2347
2364
  ] }),
2348
- /* @__PURE__ */ V("div", { className: "hud-dock", children: [
2349
- /* @__PURE__ */ h(si, {}),
2365
+ /* @__PURE__ */ R("div", { className: "hud-dock", children: [
2366
+ /* @__PURE__ */ p(ri, {}),
2350
2367
  s
2351
2368
  ] })
2352
2369
  ] }),
2353
- /* @__PURE__ */ V("aside", { ref: v, className: `hud hud-side${u.collapsed ? " is-rail" : ""}`, "aria-label": "Agent sidebar", children: [
2354
- u.collapsed ? /* @__PURE__ */ V("nav", { className: "hs-rail", children: [
2355
- /* @__PURE__ */ h("button", { className: "hs-collapse", onClick: () => E({ ...u, collapsed: !1 }), "aria-label": "Expand sidebar", title: "Expand sidebar", children: "«" }),
2356
- rn.map((k) => /* @__PURE__ */ V("button", { className: `hs-icon${u.tab === k ? " on" : ""}`, onClick: () => q(k), "aria-label": `${Kt[k]}${L[k] ? ` (${L[k]})` : ""}`, title: Kt[k], children: [
2357
- /* @__PURE__ */ h(ei, { tab: k }),
2358
- L[k] && /* @__PURE__ */ h("em", { children: k === "selected" ? "" : L[k] })
2370
+ /* @__PURE__ */ R("aside", { ref: v, className: `hud hud-side${u.collapsed ? " is-rail" : ""}`, "aria-label": "Agent sidebar", children: [
2371
+ u.collapsed ? /* @__PURE__ */ R("nav", { className: "hs-rail", children: [
2372
+ /* @__PURE__ */ p("button", { className: "hs-collapse", onClick: () => E({ ...u, collapsed: !1 }), "aria-label": "Expand sidebar", title: "Expand sidebar", children: "«" }),
2373
+ on.map((k) => /* @__PURE__ */ R("button", { className: `hs-icon${u.tab === k ? " on" : ""}`, onClick: () => q(k), "aria-label": `${Qt[k]}${L[k] ? ` (${L[k]})` : ""}`, title: Qt[k], children: [
2374
+ /* @__PURE__ */ p(ti, { tab: k }),
2375
+ L[k] && /* @__PURE__ */ p("em", { children: k === "selected" ? "" : L[k] })
2359
2376
  ] }, k))
2360
- ] }) : /* @__PURE__ */ V("div", { className: "hs-head", role: "tablist", "aria-label": "Sidebar", children: [
2361
- rn.map((k) => /* @__PURE__ */ V("button", { role: "tab", "aria-selected": u.tab === k, className: u.tab === k ? "on" : "", onClick: () => q(k), children: [
2362
- Kt[k],
2363
- L[k] && k !== "selected" && /* @__PURE__ */ h("em", { children: L[k] })
2377
+ ] }) : /* @__PURE__ */ R("div", { className: "hs-head", role: "tablist", "aria-label": "Sidebar", children: [
2378
+ on.map((k) => /* @__PURE__ */ R("button", { role: "tab", "aria-selected": u.tab === k, className: u.tab === k ? "on" : "", onClick: () => q(k), children: [
2379
+ Qt[k],
2380
+ L[k] && k !== "selected" && /* @__PURE__ */ p("em", { children: L[k] })
2364
2381
  ] }, k)),
2365
- /* @__PURE__ */ h("button", { className: "hs-collapse", onClick: () => E({ ...u, collapsed: !0 }), "aria-label": "Collapse sidebar", title: "Collapse sidebar", children: "»" })
2382
+ /* @__PURE__ */ p("button", { className: "hs-collapse", onClick: () => E({ ...u, collapsed: !0 }), "aria-label": "Collapse sidebar", title: "Collapse sidebar", children: "»" })
2366
2383
  ] }),
2367
- /* @__PURE__ */ h("div", { className: "hs-body", hidden: u.collapsed || u.tab !== "agents", children: /* @__PURE__ */ h(ci, {}) }),
2368
- /* @__PURE__ */ h("div", { className: "hs-body", hidden: u.collapsed || u.tab !== "events", children: /* @__PURE__ */ h(ni, {}) }),
2369
- /* @__PURE__ */ h("div", { className: "hs-body", hidden: u.collapsed || u.tab !== "selected", children: K ? /* @__PURE__ */ V(ye, { children: [
2370
- /* @__PURE__ */ h("div", { className: "ap-head", children: /* @__PURE__ */ h("button", { className: "ap-link", onClick: F, "aria-label": "Close agent inspector", children: "← back" }) }),
2371
- /* @__PURE__ */ h(li, { i: K })
2372
- ] }) : /* @__PURE__ */ h("p", { className: "hs-empty", children: "Click an agent in the scene, the Agents list or the Events log to inspect it." }) })
2384
+ /* @__PURE__ */ p("div", { className: "hs-body", hidden: u.collapsed || u.tab !== "agents", children: /* @__PURE__ */ p(li, {}) }),
2385
+ /* @__PURE__ */ p("div", { className: "hs-body", hidden: u.collapsed || u.tab !== "events", children: /* @__PURE__ */ p(si, {}) }),
2386
+ /* @__PURE__ */ p("div", { className: "hs-body", hidden: u.collapsed || u.tab !== "selected", children: K ? /* @__PURE__ */ R(ye, { children: [
2387
+ /* @__PURE__ */ p("div", { className: "ap-head", children: /* @__PURE__ */ p("button", { className: "ap-link", onClick: F, "aria-label": "Close agent inspector", children: "← back" }) }),
2388
+ /* @__PURE__ */ p(ui, { i: K })
2389
+ ] }) : /* @__PURE__ */ p("p", { className: "hs-empty", children: "Click an agent in the scene, the Agents list or the Events log to inspect it." }) })
2373
2390
  ] }),
2374
2391
  i
2375
2392
  ] });
2376
2393
  }
2377
- function ei({ tab: e }) {
2394
+ function ti({ tab: e }) {
2378
2395
  const t = { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", "aria-hidden": !0 };
2379
- return e === "agents" ? /* @__PURE__ */ V("svg", { ...t, children: [
2380
- /* @__PURE__ */ h("circle", { cx: "5", cy: "5", r: "2.2" }),
2381
- /* @__PURE__ */ h("circle", { cx: "11.5", cy: "6.5", r: "1.8" }),
2382
- /* @__PURE__ */ h("circle", { cx: "6.5", cy: "11.5", r: "1.8" }),
2383
- /* @__PURE__ */ h("path", { d: "M6.8 6.3l3 0.6M5.4 7.2l0.7 2.4" })
2384
- ] }) : e === "events" ? /* @__PURE__ */ V("svg", { ...t, children: [
2385
- /* @__PURE__ */ h("path", { d: "M5.5 4h8M5.5 8h8M5.5 12h6" }),
2386
- /* @__PURE__ */ h("circle", { cx: "2.5", cy: "4", r: "0.6", fill: "currentColor" }),
2387
- /* @__PURE__ */ h("circle", { cx: "2.5", cy: "8", r: "0.6", fill: "currentColor" }),
2388
- /* @__PURE__ */ h("circle", { cx: "2.5", cy: "12", r: "0.6", fill: "currentColor" })
2389
- ] }) : /* @__PURE__ */ V("svg", { ...t, children: [
2390
- /* @__PURE__ */ h("circle", { cx: "8", cy: "8", r: "5" }),
2391
- /* @__PURE__ */ h("circle", { cx: "8", cy: "8", r: "1.6", fill: "currentColor" }),
2392
- /* @__PURE__ */ h("path", { d: "M8 1v2M8 13v2M1 8h2M13 8h2" })
2396
+ return e === "agents" ? /* @__PURE__ */ R("svg", { ...t, children: [
2397
+ /* @__PURE__ */ p("circle", { cx: "5", cy: "5", r: "2.2" }),
2398
+ /* @__PURE__ */ p("circle", { cx: "11.5", cy: "6.5", r: "1.8" }),
2399
+ /* @__PURE__ */ p("circle", { cx: "6.5", cy: "11.5", r: "1.8" }),
2400
+ /* @__PURE__ */ p("path", { d: "M6.8 6.3l3 0.6M5.4 7.2l0.7 2.4" })
2401
+ ] }) : e === "events" ? /* @__PURE__ */ R("svg", { ...t, children: [
2402
+ /* @__PURE__ */ p("path", { d: "M5.5 4h8M5.5 8h8M5.5 12h6" }),
2403
+ /* @__PURE__ */ p("circle", { cx: "2.5", cy: "4", r: "0.6", fill: "currentColor" }),
2404
+ /* @__PURE__ */ p("circle", { cx: "2.5", cy: "8", r: "0.6", fill: "currentColor" }),
2405
+ /* @__PURE__ */ p("circle", { cx: "2.5", cy: "12", r: "0.6", fill: "currentColor" })
2406
+ ] }) : /* @__PURE__ */ R("svg", { ...t, children: [
2407
+ /* @__PURE__ */ p("circle", { cx: "8", cy: "8", r: "5" }),
2408
+ /* @__PURE__ */ p("circle", { cx: "8", cy: "8", r: "1.6", fill: "currentColor" }),
2409
+ /* @__PURE__ */ p("path", { d: "M8 1v2M8 13v2M1 8h2M13 8h2" })
2393
2410
  ] });
2394
2411
  }
2395
- function ti(e) {
2412
+ function ni(e) {
2396
2413
  const t = "id" in e ? e.id : e.type === "message" ? e.from_id : null;
2397
- return t && un(t) ? t : null;
2414
+ return t && fn(t) ? t : null;
2398
2415
  }
2399
- function ni() {
2416
+ function si() {
2400
2417
  const e = ot();
2401
- return e.ticker.length ? /* @__PURE__ */ h("ul", { className: "hs-events", children: e.ticker.map((t, n) => {
2402
- const s = ti(t), i = /* @__PURE__ */ V(ye, { children: [
2403
- /* @__PURE__ */ h("i", {}),
2404
- t.type === "skill" && /* @__PURE__ */ h("b", { className: "hs-skill", children: t.status === "start" ? "skill" : "skill done" }),
2405
- /* @__PURE__ */ h("span", { children: Qs(t) })
2418
+ return e.ticker.length ? /* @__PURE__ */ p("ul", { className: "hs-events", children: e.ticker.map((t, n) => {
2419
+ const s = ni(t), i = /* @__PURE__ */ R(ye, { children: [
2420
+ /* @__PURE__ */ p("i", {}),
2421
+ t.type === "skill" && /* @__PURE__ */ p("b", { className: "hs-skill", children: t.status === "start" ? "skill" : "skill done" }),
2422
+ /* @__PURE__ */ p("span", { children: _s(t) })
2406
2423
  ] });
2407
- return /* @__PURE__ */ h("li", { className: t.type === "skill" ? "is-skill" : void 0, style: { "--c": jo(t) }, children: s ? /* @__PURE__ */ h("button", { onClick: () => Je(s), title: "Inspect agent", children: i }) : /* @__PURE__ */ h("div", { children: i }) }, `${t.ts}-${t.type}-${n}`);
2408
- }) }) : /* @__PURE__ */ h("p", { className: "hs-empty", children: "Waiting for events…" });
2409
- }
2410
- function si() {
2411
- const e = Ta();
2412
- return e.crowded ? e.showAll ? /* @__PURE__ */ V("div", { className: "hud hud-lod", children: [
2413
- /* @__PURE__ */ h("i", {}),
2414
- /* @__PURE__ */ V("span", { children: [
2424
+ return /* @__PURE__ */ p("li", { className: t.type === "skill" ? "is-skill" : void 0, style: { "--c": Xo(t) }, children: s ? /* @__PURE__ */ p("button", { onClick: () => Je(s), title: "Inspect agent", children: i }) : /* @__PURE__ */ p("div", { children: i }) }, `${t.ts}-${t.type}-${n}`);
2425
+ }) }) : /* @__PURE__ */ p("p", { className: "hs-empty", children: "Waiting for events…" });
2426
+ }
2427
+ function ri() {
2428
+ const e = za();
2429
+ return e.crowded ? e.showAll ? /* @__PURE__ */ R("div", { className: "hud hud-lod", children: [
2430
+ /* @__PURE__ */ p("i", {}),
2431
+ /* @__PURE__ */ R("span", { children: [
2415
2432
  "showing all ",
2416
- /* @__PURE__ */ h("b", { children: e.alive }),
2433
+ /* @__PURE__ */ p("b", { children: e.alive }),
2417
2434
  " agents"
2418
2435
  ] }),
2419
- /* @__PURE__ */ h("button", { onClick: () => Hn(!1), children: "group" })
2420
- ] }) : e.activeClusters ? /* @__PURE__ */ V("div", { className: "hud hud-lod", children: [
2421
- /* @__PURE__ */ h("i", {}),
2422
- /* @__PURE__ */ V("span", { children: [
2436
+ /* @__PURE__ */ p("button", { onClick: () => Xn(!1), children: "group" })
2437
+ ] }) : e.activeClusters ? /* @__PURE__ */ R("div", { className: "hud hud-lod", children: [
2438
+ /* @__PURE__ */ p("i", {}),
2439
+ /* @__PURE__ */ R("span", { children: [
2423
2440
  "grouped: ",
2424
- /* @__PURE__ */ h("b", { children: e.collapsedRuns }),
2441
+ /* @__PURE__ */ p("b", { children: e.collapsedRuns }),
2425
2442
  " run",
2426
2443
  e.collapsedRuns === 1 ? "" : "s",
2427
2444
  " in ",
2428
- /* @__PURE__ */ h("b", { children: e.activeClusters }),
2445
+ /* @__PURE__ */ p("b", { children: e.activeClusters }),
2429
2446
  " cluster",
2430
2447
  e.activeClusters === 1 ? "" : "s"
2431
2448
  ] }),
2432
- e.expandedLane >= 0 && /* @__PURE__ */ h("button", { onClick: Ca, children: "collapse" }),
2433
- /* @__PURE__ */ h("button", { onClick: () => Hn(!0), children: "show all" })
2449
+ e.expandedLane >= 0 && /* @__PURE__ */ p("button", { onClick: Ta, children: "collapse" }),
2450
+ /* @__PURE__ */ p("button", { onClick: () => Xn(!0), children: "show all" })
2434
2451
  ] }) : null : null;
2435
2452
  }
2436
- const as = ["Why is churn rising for Acme Corp?", "Root cause of payment latency incidents", "Which region has the most incidents?", "Is Fraud Shield worth expanding to Globex?"];
2437
- let ri = 0;
2438
- function os({ label: e, value: t }) {
2453
+ const is = ["Why is churn rising for Acme Corp?", "Root cause of payment latency incidents", "Which region has the most incidents?", "Is Fraud Shield worth expanding to Globex?"];
2454
+ let ai = 0;
2455
+ function cs({ label: e, value: t }) {
2439
2456
  const n = t.length > 18 ? `${t.slice(0, 16)}…` : t;
2440
- return /* @__PURE__ */ V("span", { className: "hud-badge hud-chip", title: `${e}: ${t}`, children: [
2457
+ return /* @__PURE__ */ R("span", { className: "hud-badge hud-chip", title: `${e}: ${t}`, children: [
2441
2458
  e,
2442
2459
  ": ",
2443
- /* @__PURE__ */ h("b", { children: n })
2460
+ /* @__PURE__ */ p("b", { children: n })
2444
2461
  ] });
2445
2462
  }
2446
- function ai() {
2463
+ function oi() {
2447
2464
  const [e, t] = fe(!1), [n, s] = fe("");
2448
- return /* @__PURE__ */ V("div", { className: "hud-run", children: [
2449
- /* @__PURE__ */ h("button", { onClick: async () => {
2450
- const r = as[ri++ % as.length];
2465
+ return /* @__PURE__ */ R("div", { className: "hud-run", children: [
2466
+ /* @__PURE__ */ p("button", { onClick: async () => {
2467
+ const r = is[ai++ % is.length];
2451
2468
  t(!0);
2452
2469
  try {
2453
- s(await Uo(r) ? `started · ${r}` : "failed to start"), window.setTimeout(() => s(""), 6e3);
2470
+ s(await Zo(r) ? `started · ${r}` : "failed to start"), window.setTimeout(() => s(""), 6e3);
2454
2471
  } finally {
2455
2472
  t(!1);
2456
2473
  }
2457
2474
  }, disabled: e, children: e ? "Starting…" : "▶ Run agents" }),
2458
- n && /* @__PURE__ */ h("span", { children: n })
2475
+ n && /* @__PURE__ */ p("span", { children: n })
2459
2476
  ] });
2460
2477
  }
2461
- const oi = ["all", "alive", "thinking", "waiting", "done"];
2462
- function ii(e, t) {
2478
+ const ii = ["all", "alive", "thinking", "waiting", "done"];
2479
+ function ci(e, t) {
2463
2480
  return t === "all" ? !0 : t === "alive" ? te(e) : t === "done" ? !te(e) : te(e) && e.status === t;
2464
2481
  }
2465
- function _s(e) {
2482
+ function er(e) {
2466
2483
  const t = ((e.doneAt || e.exitAt || performance.now()) - e.bornAt) / 1e3;
2467
2484
  return t < 60 ? `${t.toFixed(0)}s` : `${(t / 60).toFixed(1)}m`;
2468
2485
  }
2469
- function Qt(e) {
2486
+ function Yt(e) {
2470
2487
  return !te(e) || !e.skill || e.skillEndAt ? "" : e.skill;
2471
2488
  }
2472
- function ci() {
2489
+ function li() {
2473
2490
  const e = ot(), [t, n] = fe(""), [s, i] = fe(/* @__PURE__ */ new Set()), [r, a] = fe("alive"), [l, d] = fe(""), f = ne(() => [...e.instances.values(), ...[...e.archive.values()].reverse()], [e.instances.size, e.archive.size, e.ticker]), c = ne(() => {
2474
2491
  var b;
2475
2492
  const m = /* @__PURE__ */ new Map();
2476
2493
  for (const v of f) m.set(v.run, ((b = e.runs.get(v.run)) == null ? void 0 : b.topic) ?? v.run);
2477
2494
  return [...m];
2478
- }, [f]), M = t.trim().toLowerCase(), o = f.filter((m) => s.size ? s.has(m.name) : !0).filter((m) => ii(m, r)).filter((m) => l ? m.run === l : !0).filter((m) => {
2495
+ }, [f]), M = t.trim().toLowerCase(), o = f.filter((m) => s.size ? s.has(m.name) : !0).filter((m) => ci(m, r)).filter((m) => l ? m.run === l : !0).filter((m) => {
2479
2496
  var v;
2480
2497
  if (!M) return !0;
2481
2498
  const b = ((v = e.runs.get(m.run)) == null ? void 0 : v.topic) ?? "";
@@ -2491,153 +2508,153 @@ function ci() {
2491
2508
  const v = new Set(b);
2492
2509
  return v.has(m) ? v.delete(m) : v.add(m), v;
2493
2510
  });
2494
- return /* @__PURE__ */ V(ye, { children: [
2495
- /* @__PURE__ */ V("div", { className: "ap-searchrow", children: [
2496
- /* @__PURE__ */ h("input", { className: "ap-search", value: t, onChange: (m) => n(m.target.value), placeholder: "Search agent or run topic…", "aria-label": "Search agents" }),
2497
- /* @__PURE__ */ V("span", { className: "ap-count", title: "matching / all agents", children: [
2511
+ return /* @__PURE__ */ R(ye, { children: [
2512
+ /* @__PURE__ */ R("div", { className: "ap-searchrow", children: [
2513
+ /* @__PURE__ */ p("input", { className: "ap-search", value: t, onChange: (m) => n(m.target.value), placeholder: "Search agent or run topic…", "aria-label": "Search agents" }),
2514
+ /* @__PURE__ */ R("span", { className: "ap-count", title: "matching / all agents", children: [
2498
2515
  o.length,
2499
2516
  o.length !== f.length ? ` / ${f.length}` : ""
2500
2517
  ] })
2501
2518
  ] }),
2502
- /* @__PURE__ */ h("div", { className: "ap-chips", children: S.map(([m, b]) => /* @__PURE__ */ V("button", { className: s.has(m) ? "on" : "", "aria-pressed": s.has(m), style: { "--c": b.color }, onClick: () => A(m), children: [
2503
- /* @__PURE__ */ h("i", {}),
2519
+ /* @__PURE__ */ p("div", { className: "ap-chips", children: S.map(([m, b]) => /* @__PURE__ */ R("button", { className: s.has(m) ? "on" : "", "aria-pressed": s.has(m), style: { "--c": b.color }, onClick: () => A(m), children: [
2520
+ /* @__PURE__ */ p("i", {}),
2504
2521
  m,
2505
- /* @__PURE__ */ h("em", { children: b.alive || "" })
2522
+ /* @__PURE__ */ p("em", { children: b.alive || "" })
2506
2523
  ] }, m)) }),
2507
- /* @__PURE__ */ V("div", { className: "ap-row-filters", children: [
2508
- /* @__PURE__ */ h("div", { className: "ap-seg", children: oi.map((m) => /* @__PURE__ */ h("button", { className: r === m ? "on" : "", "aria-pressed": r === m, onClick: () => a(m), children: m }, m)) }),
2509
- /* @__PURE__ */ V("select", { value: l, "aria-label": "Filter by run", onChange: (m) => d(m.target.value), children: [
2510
- /* @__PURE__ */ h("option", { value: "", children: "all runs" }),
2511
- c.map(([m, b]) => /* @__PURE__ */ h("option", { value: m, children: b }, m))
2524
+ /* @__PURE__ */ R("div", { className: "ap-row-filters", children: [
2525
+ /* @__PURE__ */ p("div", { className: "ap-seg", children: ii.map((m) => /* @__PURE__ */ p("button", { className: r === m ? "on" : "", "aria-pressed": r === m, onClick: () => a(m), children: m }, m)) }),
2526
+ /* @__PURE__ */ R("select", { value: l, "aria-label": "Filter by run", onChange: (m) => d(m.target.value), children: [
2527
+ /* @__PURE__ */ p("option", { value: "", children: "all runs" }),
2528
+ c.map(([m, b]) => /* @__PURE__ */ p("option", { value: m, children: b }, m))
2512
2529
  ] })
2513
2530
  ] }),
2514
- /* @__PURE__ */ V("ul", { className: "ap-list", children: [
2531
+ /* @__PURE__ */ R("ul", { className: "ap-list", children: [
2515
2532
  u.map((m) => {
2516
2533
  var b;
2517
- return /* @__PURE__ */ h("li", { children: /* @__PURE__ */ V("button", { onClick: () => Je(m.id), style: { "--c": Ie[m.type] }, className: te(m) ? "" : "is-done", children: [
2518
- /* @__PURE__ */ h("i", { "data-status": te(m) ? m.status : "done" }),
2519
- /* @__PURE__ */ V("span", { className: "ap-name", children: [
2520
- /* @__PURE__ */ V("span", { className: "ap-title", children: [
2534
+ return /* @__PURE__ */ p("li", { children: /* @__PURE__ */ R("button", { onClick: () => Je(m.id), style: { "--c": Ie[m.type] }, className: te(m) ? "" : "is-done", children: [
2535
+ /* @__PURE__ */ p("i", { "data-status": te(m) ? m.status : "done" }),
2536
+ /* @__PURE__ */ R("span", { className: "ap-name", children: [
2537
+ /* @__PURE__ */ R("span", { className: "ap-title", children: [
2521
2538
  oe(m.id),
2522
- Qt(m) && /* @__PURE__ */ h("em", { className: "ap-skill", title: `using skill ${Qt(m)}`, children: Qt(m) })
2539
+ Yt(m) && /* @__PURE__ */ p("em", { className: "ap-skill", title: `using skill ${Yt(m)}`, children: Yt(m) })
2523
2540
  ] }),
2524
- /* @__PURE__ */ h("small", { children: ((b = e.runs.get(m.run)) == null ? void 0 : b.topic) ?? "finished run" })
2541
+ /* @__PURE__ */ p("small", { children: ((b = e.runs.get(m.run)) == null ? void 0 : b.topic) ?? "finished run" })
2525
2542
  ] }),
2526
- /* @__PURE__ */ V("span", { className: "ap-meta", children: [
2527
- /* @__PURE__ */ h("b", { children: m.status }),
2543
+ /* @__PURE__ */ R("span", { className: "ap-meta", children: [
2544
+ /* @__PURE__ */ p("b", { children: m.status }),
2528
2545
  (m.tokens / 1e3).toFixed(1),
2529
2546
  "k · ",
2530
- _s(m)
2547
+ er(m)
2531
2548
  ] })
2532
2549
  ] }) }, m.id);
2533
2550
  }),
2534
- o.length > u.length && /* @__PURE__ */ V("li", { className: "ap-more", children: [
2551
+ o.length > u.length && /* @__PURE__ */ R("li", { className: "ap-more", children: [
2535
2552
  "+",
2536
2553
  o.length - u.length,
2537
2554
  " more - refine the filter"
2538
2555
  ] }),
2539
- o.length === 0 && /* @__PURE__ */ h("li", { className: "ap-more", children: "No agents match." })
2556
+ o.length === 0 && /* @__PURE__ */ p("li", { className: "ap-more", children: "No agents match." })
2540
2557
  ] })
2541
2558
  ] });
2542
2559
  }
2543
- function li({ i: e }) {
2544
- const t = ot(), n = t.runs.get(e.run), s = un(e.parent), i = [...t.instances.values(), ...t.archive.values()].filter((a) => a.parent === e.id), r = [...t.mcpPending.values()].filter((a) => a.instance === e.id);
2545
- return /* @__PURE__ */ V("div", { className: "ap-detail", style: { "--c": Ie[e.type] }, children: [
2546
- /* @__PURE__ */ V("h3", { children: [
2547
- /* @__PURE__ */ h("i", {}),
2560
+ function ui({ i: e }) {
2561
+ const t = ot(), n = t.runs.get(e.run), s = fn(e.parent), i = [...t.instances.values(), ...t.archive.values()].filter((a) => a.parent === e.id), r = [...t.mcpPending.values()].filter((a) => a.instance === e.id);
2562
+ return /* @__PURE__ */ R("div", { className: "ap-detail", style: { "--c": Ie[e.type] }, children: [
2563
+ /* @__PURE__ */ R("h3", { children: [
2564
+ /* @__PURE__ */ p("i", {}),
2548
2565
  " ",
2549
2566
  e.name,
2550
2567
  " ",
2551
- /* @__PURE__ */ V("small", { children: [
2568
+ /* @__PURE__ */ R("small", { children: [
2552
2569
  e.subagent ? "subagent" : "agent",
2553
2570
  " · ",
2554
2571
  at(e.run)
2555
2572
  ] })
2556
2573
  ] }),
2557
- /* @__PURE__ */ V("div", { className: "ap-status", "data-status": te(e) ? e.status : "done", children: [
2574
+ /* @__PURE__ */ R("div", { className: "ap-status", "data-status": te(e) ? e.status : "done", children: [
2558
2575
  te(e) ? e.status : `finished (${e.status})`,
2559
2576
  " · alive ",
2560
- _s(e)
2577
+ er(e)
2561
2578
  ] }),
2562
- /* @__PURE__ */ V("dl", { className: "ap-stats", children: [
2563
- /* @__PURE__ */ V("div", { children: [
2564
- /* @__PURE__ */ h("dt", { children: "tokens" }),
2565
- /* @__PURE__ */ V("dd", { children: [
2579
+ /* @__PURE__ */ R("dl", { className: "ap-stats", children: [
2580
+ /* @__PURE__ */ R("div", { children: [
2581
+ /* @__PURE__ */ p("dt", { children: "tokens" }),
2582
+ /* @__PURE__ */ R("dd", { children: [
2566
2583
  (e.tokens / 1e3).toFixed(1),
2567
2584
  "k"
2568
2585
  ] })
2569
2586
  ] }),
2570
- /* @__PURE__ */ V("div", { children: [
2571
- /* @__PURE__ */ h("dt", { children: "LLM calls" }),
2572
- /* @__PURE__ */ h("dd", { children: e.llmCalls })
2587
+ /* @__PURE__ */ R("div", { children: [
2588
+ /* @__PURE__ */ p("dt", { children: "LLM calls" }),
2589
+ /* @__PURE__ */ p("dd", { children: e.llmCalls })
2573
2590
  ] }),
2574
- /* @__PURE__ */ V("div", { children: [
2575
- /* @__PURE__ */ h("dt", { children: "tool calls" }),
2576
- /* @__PURE__ */ h("dd", { children: e.toolCalls })
2591
+ /* @__PURE__ */ R("div", { children: [
2592
+ /* @__PURE__ */ p("dt", { children: "tool calls" }),
2593
+ /* @__PURE__ */ p("dd", { children: e.toolCalls })
2577
2594
  ] }),
2578
- /* @__PURE__ */ V("div", { children: [
2579
- /* @__PURE__ */ h("dt", { children: "MCP calls" }),
2580
- /* @__PURE__ */ h("dd", { children: e.mcpCalls })
2595
+ /* @__PURE__ */ R("div", { children: [
2596
+ /* @__PURE__ */ p("dt", { children: "MCP calls" }),
2597
+ /* @__PURE__ */ p("dd", { children: e.mcpCalls })
2581
2598
  ] })
2582
2599
  ] }),
2583
- /* @__PURE__ */ V("section", { children: [
2584
- /* @__PURE__ */ h("h4", { children: "Run" }),
2585
- /* @__PURE__ */ h("p", { children: n ? n.topic : e.run }),
2586
- n && /* @__PURE__ */ h("div", { className: "ap-steps", children: on.map((a) => /* @__PURE__ */ h("span", { "data-status": n.steps[a], children: a }, a)) })
2600
+ /* @__PURE__ */ R("section", { children: [
2601
+ /* @__PURE__ */ p("h4", { children: "Run" }),
2602
+ /* @__PURE__ */ p("p", { children: n ? n.topic : e.run }),
2603
+ (n == null ? void 0 : n.hasSteps) && /* @__PURE__ */ p("div", { className: "ap-steps", children: ln.map((a) => /* @__PURE__ */ p("span", { "data-status": n.steps[a], children: a }, a)) })
2587
2604
  ] }),
2588
- (s || i.length > 0) && /* @__PURE__ */ V("section", { children: [
2589
- /* @__PURE__ */ h("h4", { children: "Lineage" }),
2590
- s && /* @__PURE__ */ V("button", { className: "ap-chip-link", style: { "--c": Ie[s.type] }, onClick: () => Je(s.id), children: [
2605
+ (s || i.length > 0) && /* @__PURE__ */ R("section", { children: [
2606
+ /* @__PURE__ */ p("h4", { children: "Lineage" }),
2607
+ s && /* @__PURE__ */ R("button", { className: "ap-chip-link", style: { "--c": Ie[s.type] }, onClick: () => Je(s.id), children: [
2591
2608
  "↑ spawned by ",
2592
2609
  oe(s.id)
2593
2610
  ] }),
2594
- i.map((a) => /* @__PURE__ */ V("button", { className: "ap-chip-link", style: { "--c": Ie[a.type] }, onClick: () => Je(a.id), children: [
2611
+ i.map((a) => /* @__PURE__ */ R("button", { className: "ap-chip-link", style: { "--c": Ie[a.type] }, onClick: () => Je(a.id), children: [
2595
2612
  "↓ ",
2596
2613
  oe(a.id),
2597
2614
  " ",
2598
- cn(a) ? "✓" : ""
2615
+ un(a) ? "✓" : ""
2599
2616
  ] }, a.id))
2600
2617
  ] }),
2601
- e.skills.size > 0 && /* @__PURE__ */ V("section", { children: [
2602
- /* @__PURE__ */ h("h4", { children: "Skills used" }),
2603
- /* @__PURE__ */ h("div", { className: "ap-skills", children: [...e.skills].map(([a, l]) => /* @__PURE__ */ V("span", { className: l.active && te(e) ? "on" : "", title: l.active && te(e) ? "in use now" : `used ${l.count}x`, children: [
2618
+ e.skills.size > 0 && /* @__PURE__ */ R("section", { children: [
2619
+ /* @__PURE__ */ p("h4", { children: "Skills used" }),
2620
+ /* @__PURE__ */ p("div", { className: "ap-skills", children: [...e.skills].map(([a, l]) => /* @__PURE__ */ R("span", { className: l.active && te(e) ? "on" : "", title: l.active && te(e) ? "in use now" : `used ${l.count}x`, children: [
2604
2621
  a,
2605
- /* @__PURE__ */ V("em", { children: [
2622
+ /* @__PURE__ */ R("em", { children: [
2606
2623
  l.count,
2607
2624
  "x"
2608
2625
  ] })
2609
2626
  ] }, a)) })
2610
2627
  ] }),
2611
- r.length > 0 && /* @__PURE__ */ V("section", { children: [
2612
- /* @__PURE__ */ h("h4", { children: "Waiting on MCP" }),
2613
- r.map((a) => /* @__PURE__ */ V("p", { className: "ap-wait", children: [
2628
+ r.length > 0 && /* @__PURE__ */ R("section", { children: [
2629
+ /* @__PURE__ */ p("h4", { children: "Waiting on MCP" }),
2630
+ r.map((a) => /* @__PURE__ */ R("p", { className: "ap-wait", children: [
2614
2631
  a.server,
2615
2632
  ".",
2616
2633
  a.tool,
2617
2634
  "() · ",
2618
- Er(a).toFixed(1),
2635
+ Rr(a).toFixed(1),
2619
2636
  "s"
2620
2637
  ] }, a.key))
2621
2638
  ] }),
2622
- /* @__PURE__ */ V("section", { children: [
2623
- /* @__PURE__ */ h("h4", { children: "Activity" }),
2624
- /* @__PURE__ */ h("ul", { className: "ap-events", children: e.recent.map((a, l) => /* @__PURE__ */ h("li", { children: Qs(a) }, l)) })
2639
+ /* @__PURE__ */ R("section", { children: [
2640
+ /* @__PURE__ */ p("h4", { children: "Activity" }),
2641
+ /* @__PURE__ */ p("ul", { className: "ap-events", children: e.recent.map((a, l) => /* @__PURE__ */ p("li", { children: _s(a) }, l)) })
2625
2642
  ] })
2626
2643
  ] });
2627
2644
  }
2628
- const ui = 0.7, is = 0.45, cs = 0.32, ls = new y.Color("#ef4444"), Rt = "__kitDim", di = y.Object3D.prototype.onBeforeRender;
2629
- function fi(e, t, n, s, i) {
2645
+ const di = 0.7, ls = 0.45, us = 0.32, ds = new y.Color("#ef4444"), Vt = "__kitDim", fi = y.Object3D.prototype.onBeforeRender;
2646
+ function hi(e, t, n, s, i) {
2630
2647
  var c, M, o, u;
2631
- const r = this.userData[Rt];
2648
+ const r = this.userData[Vt];
2632
2649
  if (!r || r.k <= 2e-3 || Array.isArray(i)) return;
2633
- const a = i, l = 1 - ui * r.k;
2634
- r.hasColor = !!((c = a.color) != null && c.isColor), r.hasColor && (r.color.copy(a.color), a.color.multiplyScalar(l), r.failed && a.color.lerp(ls, cs * r.k * 0.6)), r.hasEmissive = !!((M = a.emissive) != null && M.isColor), r.hasEmissive && (r.emissive.copy(a.emissive), a.emissive.multiplyScalar(l), r.failed && a.emissive.lerp(ls, cs * r.k * 0.4), r.ei = a.emissiveIntensity ?? 1);
2650
+ const a = i, l = 1 - di * r.k;
2651
+ r.hasColor = !!((c = a.color) != null && c.isColor), r.hasColor && (r.color.copy(a.color), a.color.multiplyScalar(l), r.failed && a.color.lerp(ds, us * r.k * 0.6)), r.hasEmissive = !!((M = a.emissive) != null && M.isColor), r.hasEmissive && (r.emissive.copy(a.emissive), a.emissive.multiplyScalar(l), r.failed && a.emissive.lerp(ds, us * r.k * 0.4), r.ei = a.emissiveIntensity ?? 1);
2635
2652
  const d = ((o = a.uniforms) == null ? void 0 : o.uOpacity) ?? ((u = a.uniforms) == null ? void 0 : u.opacity), f = !!d && typeof d.value == "number";
2636
- r.op = a.opacity, f && (r.uop = d.value), a.transparent && (a.opacity = r.op * (1 - is * r.k)), f && (d.value = r.uop * (1 - is * r.k)), r.on = !0, e.state.useProgram(null);
2653
+ r.op = a.opacity, f && (r.uop = d.value), a.transparent && (a.opacity = r.op * (1 - ls * r.k)), f && (d.value = r.uop * (1 - ls * r.k)), r.on = !0, e.state.useProgram(null);
2637
2654
  }
2638
- function hi(e, t, n, s, i) {
2655
+ function pi(e, t, n, s, i) {
2639
2656
  var d, f;
2640
- const r = this.userData[Rt];
2657
+ const r = this.userData[Vt];
2641
2658
  if (!r || !r.on) return;
2642
2659
  r.on = !1;
2643
2660
  const a = i;
@@ -2645,30 +2662,30 @@ function hi(e, t, n, s, i) {
2645
2662
  const l = ((d = a.uniforms) == null ? void 0 : d.uOpacity) ?? ((f = a.uniforms) == null ? void 0 : f.opacity);
2646
2663
  l && typeof l.value == "number" && (l.value = r.uop), e.state.useProgram(null);
2647
2664
  }
2648
- let $s = 0, er = !1;
2649
- function tr(e) {
2665
+ let tr = 0, nr = !1;
2666
+ function sr(e) {
2650
2667
  if (e.userData.kitNoDim) return;
2651
2668
  if (e.isMesh || e.isLine || e.isPoints || e.isSprite) {
2652
- let s = e.userData[Rt];
2669
+ let s = e.userData[Vt];
2653
2670
  if (!s) {
2654
- if (e.onBeforeRender !== di) return;
2655
- s = { k: 0, failed: !1, on: !1, color: new y.Color(), emissive: new y.Color(), hasColor: !1, hasEmissive: !1, ei: 1, op: 1, uop: 1 }, e.userData[Rt] = s, e.onBeforeRender = fi, e.onAfterRender = hi;
2671
+ if (e.onBeforeRender !== fi) return;
2672
+ s = { k: 0, failed: !1, on: !1, color: new y.Color(), emissive: new y.Color(), hasColor: !1, hasEmissive: !1, ei: 1, op: 1, uop: 1 }, e.userData[Vt] = s, e.onBeforeRender = hi, e.onAfterRender = pi;
2656
2673
  }
2657
- s.k = $s, s.failed = er;
2674
+ s.k = tr, s.failed = nr;
2658
2675
  }
2659
2676
  const n = e.children;
2660
- for (let s = 0; s < n.length; s++) tr(n[s]);
2677
+ for (let s = 0; s < n.length; s++) sr(n[s]);
2661
2678
  }
2662
- function pi(e, t, n, s) {
2663
- t <= 2e-3 && s <= 2e-3 || ($s = t, er = n, tr(e));
2679
+ function mi(e, t, n, s) {
2680
+ t <= 2e-3 && s <= 2e-3 || (tr = t, nr = n, sr(e));
2664
2681
  }
2665
- const us = "#f5b83d", nr = "#fde7b0", sr = "#c08a3a", pe = 3, mi = 1.22, ds = 0.11, rr = 1.48, gi = new y.PlaneGeometry(2, 2), Ai = () => {
2666
- }, bi = (
2682
+ const fs = "#f5b83d", rr = "#fde7b0", ar = "#c08a3a", pe = 3, gi = 1.22, hs = 0.11, or = 1.48, Ai = new y.PlaneGeometry(2, 2), bi = () => {
2683
+ }, vi = (
2667
2684
  /* glsl */
2668
2685
  `
2669
2686
  varying vec2 vP;
2670
- void main() { vP = position.xy * ${rr.toFixed(2)}; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`
2671
- ), vi = (
2687
+ void main() { vP = position.xy * ${or.toFixed(2)}; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`
2688
+ ), Mi = (
2672
2689
  /* glsl */
2673
2690
  `
2674
2691
  uniform vec3 uColor; uniform vec3 uCore; uniform vec3 uMix; uniform vec3 uRad; uniform float uA; uniform float uOuter;
@@ -2713,17 +2730,17 @@ void main() {
2713
2730
  gl_FragColor = vec4(col * alpha, 1.0);
2714
2731
  }`
2715
2732
  );
2716
- function Mi({ agent: e, radius: t, height: n }) {
2733
+ function yi({ agent: e, radius: t, height: n }) {
2717
2734
  const [s, i] = fe(() => !!e.inst.skill);
2718
2735
  return ve(() => {
2719
2736
  !s && e.inst.skill && i(!0);
2720
- }), s ? /* @__PURE__ */ h(ki, { agent: e, radius: t, height: n }) : null;
2737
+ }), s ? /* @__PURE__ */ p(Si, { agent: e, radius: t, height: n }) : null;
2721
2738
  }
2722
- const yi = (e) => [
2723
- { text: "skill:", color: sr },
2724
- { text: e, color: nr }
2725
- ], xi = 1.75, wi = 7, fs = new y.Vector3();
2726
- function ki({ agent: e, radius: t, height: n }) {
2739
+ const xi = (e) => [
2740
+ { text: "skill:", color: ar },
2741
+ { text: e, color: rr }
2742
+ ], wi = 1.75, ki = 7, ps = new y.Vector3();
2743
+ function Si({ agent: e, radius: t, height: n }) {
2727
2744
  const s = B(null), i = B([]), r = B([]), a = e.depth > 0, l = a ? 0.16 : 0.2, d = ne(() => a ? [8.5, 11] : [9.5, 12.5], [a]), f = ne(() => {
2728
2745
  const M = {
2729
2746
  slots: Array.from({ length: pe }, () => ({ use: null, mix: 0 })),
@@ -2733,7 +2750,7 @@ function ki({ agent: e, radius: t, height: n }) {
2733
2750
  shownExtra: -1,
2734
2751
  extraMix: 0,
2735
2752
  visit: (o, u) => {
2736
- if (!(!o.active && En(o, M.now) <= 2e-3)) {
2753
+ if (!(!o.active && Vn(o, M.now) <= 2e-3)) {
2737
2754
  for (const S of M.slots) if (S.use === o) return;
2738
2755
  for (let S = 0; S < pe; S++) {
2739
2756
  const A = M.slots[S];
@@ -2749,15 +2766,15 @@ function ki({ agent: e, radius: t, height: n }) {
2749
2766
  return M;
2750
2767
  }, []), c = ne(
2751
2768
  () => new y.ShaderMaterial({
2752
- vertexShader: bi,
2753
- fragmentShader: vi,
2769
+ vertexShader: vi,
2770
+ fragmentShader: Mi,
2754
2771
  transparent: !0,
2755
2772
  depthTest: !1,
2756
2773
  depthWrite: !1,
2757
2774
  blending: y.AdditiveBlending,
2758
2775
  toneMapped: !1,
2759
2776
  uniforms: {
2760
- uColor: { value: new y.Color(us).multiplyScalar(0.82) },
2777
+ uColor: { value: new y.Color(fs).multiplyScalar(0.82) },
2761
2778
  uCore: { value: new y.Color("#ffe9b8").multiplyScalar(0.95) },
2762
2779
  uMix: { value: new y.Vector3() },
2763
2780
  uRad: { value: new y.Vector3(1, 1, 1) },
@@ -2773,48 +2790,48 @@ function ki({ agent: e, radius: t, height: n }) {
2773
2790
  var I, H, Q;
2774
2791
  const S = s.current;
2775
2792
  if (!S) return;
2776
- const A = performance.now(), m = e.inst, b = Or(m, A) * (1 - 0.5 * e.dim);
2793
+ const A = performance.now(), m = e.inst, b = Er(m, A) * (1 - 0.5 * e.dim);
2777
2794
  f.now = A;
2778
2795
  for (const W of f.slots)
2779
- W.use && (W.mix = En(W.use, A), W.mix <= 2e-3 && !W.use.active && (W.use = null, W.mix = 0));
2796
+ W.use && (W.mix = Vn(W.use, A), W.mix <= 2e-3 && !W.use.active && (W.use = null, W.mix = 0));
2780
2797
  f.extra = 0, m.skills.forEach(f.visit);
2781
2798
  for (let W = 0; W < pe; W++) {
2782
2799
  const Y = f.pending[W];
2783
- Y && (f.pending[W] = "", (I = r.current[W]) == null || I.setText(yi(Y)));
2800
+ Y && (f.pending[W] = "", (I = r.current[W]) == null || I.setText(xi(Y)));
2784
2801
  }
2785
2802
  f.extraMix += ((f.extra > 0 ? 1 : 0) - f.extraMix) * 0.12, f.extra > 0 && f.extra !== f.shownExtra && (f.shownExtra = f.extra, (H = r.current[pe]) == null || H.setText(`+${f.extra} more`));
2786
2803
  const v = c.uniforms.uMix.value, N = c.uniforms.uRad.value;
2787
2804
  let T = 0, E = 0;
2788
2805
  for (let W = 0; W < pe; W++) {
2789
2806
  const Y = f.slots[W].mix;
2790
- v.setComponent(W, Y * b), N.setComponent(W, 1 + ds * T), T += Y, E = Math.max(E, Y);
2807
+ v.setComponent(W, Y * b), N.setComponent(W, 1 + hs * T), T += Y, E = Math.max(E, Y);
2791
2808
  }
2792
2809
  E *= b;
2793
2810
  const P = E > 3e-3;
2794
2811
  S.visible = P;
2795
2812
  for (const W of i.current) W && (W.visible = P);
2796
2813
  if (!P) return;
2797
- const w = 1 + ds * Math.max(0, T - 1), R = e.scale, G = Math.max(t, n * 0.55) * R * mi;
2798
- S.position.copy(e.live), g.plane === "xz" && (S.position.y += n * R * 0.5), S.quaternion.copy(M.quaternion), S.scale.setScalar(G * rr);
2814
+ const w = 1 + hs * Math.max(0, T - 1), V = e.scale, G = Math.max(t, n * 0.55) * V * gi;
2815
+ S.position.copy(e.live), g.plane === "xz" && (S.position.y += n * V * 0.5), S.quaternion.copy(M.quaternion), S.scale.setScalar(G * or);
2799
2816
  const O = c.uniforms;
2800
2817
  O.uA.value = E, O.uOuter.value = w;
2801
2818
  const x = o.elapsedTime;
2802
- O.uRot.value = tt ? 0 : x * 0.16, O.uPulse.value = tt ? 1 : 0.82 + 0.18 * Math.sin(x * 1.7), fs.set(0, 1, 0).applyQuaternion(M.quaternion);
2803
- const D = 0.86 + 0.14 * E, F = G * D * (w + 0.1) + 0.03, q = M, X = S.position.distanceTo(M.position) || 1, j = q.isPerspectiveCamera ? 2 * X * Math.tan(y.MathUtils.degToRad(q.fov) / 2) / (q.zoom * u.height) : 0.01, L = (y.MathUtils.clamp(l * C.label / Math.max(j, 1e-6), d[0] * Z.pxk, d[1] * Z.pxk) * xi + wi) * j;
2819
+ O.uRot.value = tt ? 0 : x * 0.16, O.uPulse.value = tt ? 1 : 0.82 + 0.18 * Math.sin(x * 1.7), ps.set(0, 1, 0).applyQuaternion(M.quaternion);
2820
+ const D = 0.86 + 0.14 * E, F = G * D * (w + 0.1) + 0.03, q = M, X = S.position.distanceTo(M.position) || 1, j = q.isPerspectiveCamera ? 2 * X * Math.tan(y.MathUtils.degToRad(q.fov) / 2) / (q.zoom * u.height) : 0.01, L = (y.MathUtils.clamp(l * C.label / Math.max(j, 1e-6), d[0] * Z.pxk, d[1] * Z.pxk) * wi + ki) * j;
2804
2821
  let k = 0;
2805
2822
  for (let W = 0; W <= pe; W++) {
2806
2823
  const Y = i.current[W], ee = W < pe ? f.slots[W].mix : f.extraMix;
2807
- Y && Y.position.copy(S.position).addScaledVector(fs, F + k), (Q = r.current[W]) == null || Q.setOpacity(ee * b, !0), k += L * ee;
2824
+ Y && Y.position.copy(S.position).addScaledVector(ps, F + k), (Q = r.current[W]) == null || Q.setOpacity(ee * b, !0), k += L * ee;
2808
2825
  }
2809
- }), /* @__PURE__ */ V(ye, { children: [
2810
- /* @__PURE__ */ h("mesh", { ref: s, geometry: gi, material: c, renderOrder: 22, raycast: Ai, visible: !1, frustumCulled: !1 }),
2811
- Array.from({ length: pe + 1 }, (M, o) => /* @__PURE__ */ h("group", { ref: (u) => void (i.current[o] = u), visible: !1, children: /* @__PURE__ */ h(
2812
- gn,
2826
+ }), /* @__PURE__ */ R(ye, { children: [
2827
+ /* @__PURE__ */ p("mesh", { ref: s, geometry: Ai, material: c, renderOrder: 22, raycast: bi, visible: !1, frustumCulled: !1 }),
2828
+ Array.from({ length: pe + 1 }, (M, o) => /* @__PURE__ */ p("group", { ref: (u) => void (i.current[o] = u), visible: !1, children: /* @__PURE__ */ p(
2829
+ bn,
2813
2830
  {
2814
2831
  ref: (u) => void (r.current[o] = u),
2815
2832
  text: "",
2816
- color: us,
2817
- textColor: o < pe ? nr : sr,
2833
+ color: fs,
2834
+ textColor: o < pe ? rr : ar,
2818
2835
  size: o < pe ? l : l * 0.85,
2819
2836
  pxRange: d,
2820
2837
  anchorY: "bottom",
@@ -2829,72 +2846,72 @@ function ki({ agent: e, radius: t, height: n }) {
2829
2846
  ) }, o))
2830
2847
  ] });
2831
2848
  }
2832
- const ar = ms({ nodes: [], links: [] }), gc = () => gs(ar);
2833
- function An(e, t) {
2849
+ const ir = As({ nodes: [], links: [] }), Ac = () => bs(ir);
2850
+ function vn(e, t) {
2834
2851
  const [n, s] = fe(() => ({ v: e(), value: t() })), i = B(n.v);
2835
2852
  return ve(() => {
2836
2853
  const r = e();
2837
2854
  r !== i.current && (i.current = r, s({ v: r, value: t() }));
2838
2855
  }), n.value;
2839
2856
  }
2840
- const Si = () => [...g.agents.values()], Oi = () => [...g.runs.values()], Ei = () => [...g.mcp.values()], Vi = () => g.agentsVersion, Ri = () => g.runsVersion, Ci = () => g.mcpVersion, Ti = () => An(Vi, Si), zi = () => An(Ri, Oi), Pi = () => An(Ci, Ei);
2841
- function Gi() {
2857
+ const Oi = () => [...g.agents.values()], Ei = () => [...g.runs.values()], Ri = () => [...g.mcp.values()], Vi = () => g.agentsVersion, Ci = () => g.runsVersion, Ti = () => g.mcpVersion, zi = () => vn(Vi, Oi), Pi = () => vn(Ci, Ei), Gi = () => vn(Ti, Ri);
2858
+ function Ii() {
2842
2859
  return $(() => (Z.active++, () => void Z.active--), []), ve(({ size: e }) => {
2843
2860
  const t = performance.now();
2844
- Sr(t), Na(t), eo(t), Jr(t, e.width, e.height);
2861
+ Or(t), qa(t), to(t), Hr(t, e.width, e.height);
2845
2862
  }), null;
2846
2863
  }
2847
- const Ii = { kind: "run" }, Ni = { kind: "mcp" }, qi = { kind: "backend" }, Wi = { kind: "graph" }, Di = { kind: "cluster" };
2848
- function Fi({ agent: e, children: t }) {
2864
+ const Ni = { kind: "run" }, qi = { kind: "mcp" }, Wi = { kind: "backend" }, Di = { kind: "graph" }, Fi = { kind: "cluster" };
2865
+ function Li({ agent: e, children: t }) {
2849
2866
  const n = ne(() => ({ kind: e.depth > 0 ? "sub" : "agent", agent: e }), [e]);
2850
- return /* @__PURE__ */ h(qe.Provider, { value: n, children: t });
2867
+ return /* @__PURE__ */ p(qe.Provider, { value: n, children: t });
2851
2868
  }
2852
- function Li({ agent: e, children: t }) {
2869
+ function Bi({ agent: e, children: t }) {
2853
2870
  const n = B(null), s = B(0);
2854
2871
  return ve(() => {
2855
- n.current && (pi(n.current, e.dim, e.inst.status === "failed", s.current), s.current = e.dim);
2856
- }), /* @__PURE__ */ h("group", { ref: n, children: t });
2857
- }
2858
- function Bi({ Agent: e, Edge: t, selected: n, onSelect: s, radius: i, height: r }) {
2859
- const a = Ti();
2860
- return /* @__PURE__ */ h(ye, { children: a.map((l) => /* @__PURE__ */ V(Fi, { agent: l, children: [
2861
- /* @__PURE__ */ V(Li, { agent: l, children: [
2862
- t && l.inst.parent && /* @__PURE__ */ h(t, { child: l }),
2863
- /* @__PURE__ */ h(e, { agent: l, selected: n === l.id, onSelect: s })
2872
+ n.current && (mi(n.current, e.dim, e.inst.status === "failed", s.current), s.current = e.dim);
2873
+ }), /* @__PURE__ */ p("group", { ref: n, children: t });
2874
+ }
2875
+ function Ui({ Agent: e, Edge: t, selected: n, onSelect: s, radius: i, height: r }) {
2876
+ const a = zi();
2877
+ return /* @__PURE__ */ p(ye, { children: a.map((l) => /* @__PURE__ */ R(Li, { agent: l, children: [
2878
+ /* @__PURE__ */ R(Bi, { agent: l, children: [
2879
+ t && l.inst.parent && /* @__PURE__ */ p(t, { child: l }),
2880
+ /* @__PURE__ */ p(e, { agent: l, selected: n === l.id, onSelect: s })
2864
2881
  ] }),
2865
- /* @__PURE__ */ h(Mi, { agent: l, radius: i, height: r })
2882
+ /* @__PURE__ */ p(yi, { agent: l, radius: i, height: r })
2866
2883
  ] }, l.uid)) });
2867
2884
  }
2868
- function Ui({ RunMarker: e }) {
2869
- const t = zi();
2870
- return /* @__PURE__ */ h(qe.Provider, { value: Ii, children: t.map((n) => /* @__PURE__ */ h(e, { run: n }, n.uid)) });
2885
+ function Zi({ RunMarker: e }) {
2886
+ const t = Pi();
2887
+ return /* @__PURE__ */ p(qe.Provider, { value: Ni, children: t.map((n) => /* @__PURE__ */ p(e, { run: n }, n.uid)) });
2871
2888
  }
2872
- function Zi({ McpServer: e, Backend: t }) {
2873
- const n = Pi();
2874
- return /* @__PURE__ */ h(ye, { children: n.map((s) => /* @__PURE__ */ V(pr, { children: [
2875
- /* @__PURE__ */ h(qe.Provider, { value: Ni, children: e && /* @__PURE__ */ h(hs, { item: s, children: /* @__PURE__ */ h(e, { mcp: s }) }) }),
2876
- /* @__PURE__ */ h(qe.Provider, { value: qi, children: t && [...s.backends.values()].map((i) => /* @__PURE__ */ h(hs, { item: i, children: /* @__PURE__ */ h(t, { mcp: s, backend: i }) }, i.uid)) })
2889
+ function Ji({ McpServer: e, Backend: t }) {
2890
+ const n = Gi();
2891
+ return /* @__PURE__ */ p(ye, { children: n.map((s) => /* @__PURE__ */ R(gr, { children: [
2892
+ /* @__PURE__ */ p(qe.Provider, { value: qi, children: e && /* @__PURE__ */ p(ms, { item: s, children: /* @__PURE__ */ p(e, { mcp: s }) }) }),
2893
+ /* @__PURE__ */ p(qe.Provider, { value: Wi, children: t && [...s.backends.values()].map((i) => /* @__PURE__ */ p(ms, { item: i, children: /* @__PURE__ */ p(t, { mcp: s, backend: i }) }, i.uid)) })
2877
2894
  ] }, s.uid)) });
2878
2895
  }
2879
- function hs({ item: e, children: t }) {
2896
+ function ms({ item: e, children: t }) {
2880
2897
  const n = B(null), s = B(null);
2881
2898
  return ve(() => {
2882
2899
  const i = n.current, r = s.current;
2883
2900
  if (!i || !r) return;
2884
2901
  const a = Math.min(1, Math.max(0, e.mix)), l = a * a * (3 - 2 * a);
2885
2902
  i.position.copy(e.pos), i.scale.setScalar(Math.max(1e-4, l)), r.position.copy(e.pos).negate(), i.visible = l > 2e-3;
2886
- }), /* @__PURE__ */ h("group", { ref: n, scale: 1e-4, visible: !1, children: /* @__PURE__ */ h("group", { ref: s, children: t }) });
2903
+ }), /* @__PURE__ */ p("group", { ref: n, scale: 1e-4, visible: !1, children: /* @__PURE__ */ p("group", { ref: s, children: t }) });
2887
2904
  }
2888
- const Ji = Array.from({ length: re }, (e, t) => t);
2889
- function Hi({ cluster: e, Cluster: t, offset: n }) {
2890
- const s = (n == null ? void 0 : n[0]) ?? 0, i = (n == null ? void 0 : n[1]) ?? 0, r = (n == null ? void 0 : n[2]) ?? 0, a = As((l, d) => {
2905
+ const Hi = Array.from({ length: re }, (e, t) => t);
2906
+ function ji({ cluster: e, Cluster: t, offset: n }) {
2907
+ const s = (n == null ? void 0 : n[0]) ?? 0, i = (n == null ? void 0 : n[1]) ?? 0, r = (n == null ? void 0 : n[2]) ?? 0, a = vs((l, d) => {
2891
2908
  const f = g.clusterPos[l];
2892
2909
  f ? d.set(f.x + s, f.y + i, f.z + r) : d.set(s, i, r);
2893
2910
  }, [s, i, r]);
2894
- return t ? /* @__PURE__ */ h(ye, { children: Ji.map((l) => /* @__PURE__ */ h(t, { lane: l, cluster: z.clusters[l], pos: g.clusterPos[l] ?? new y.Vector3() }, l)) }) : /* @__PURE__ */ h(Oo, { place: a, ...e });
2911
+ return t ? /* @__PURE__ */ p(ye, { children: Hi.map((l) => /* @__PURE__ */ p(t, { lane: l, cluster: z.clusters[l], pos: g.clusterPos[l] ?? new y.Vector3() }, l)) }) : /* @__PURE__ */ p(Eo, { place: a, ...e });
2895
2912
  }
2896
- function ji({ galaxy: e, Graph: t }) {
2897
- const s = Nr() && e.nodes.length > 0;
2913
+ function Xi({ galaxy: e, Graph: t }) {
2914
+ const s = qr() && e.nodes.length > 0;
2898
2915
  g.graphWanted = s, $(
2899
2916
  () => () => {
2900
2917
  g.graphWanted = !1;
@@ -2907,24 +2924,24 @@ function ji({ galaxy: e, Graph: t }) {
2907
2924
  if (!r) return;
2908
2925
  const a = g.graph;
2909
2926
  r.position.copy(a.pos), r.scale.setScalar(Math.max(1e-4, a.scale)), r.visible = a.mix > 2e-3;
2910
- }), s ? /* @__PURE__ */ h("group", { ref: i, scale: 1e-4, visible: !1, children: /* @__PURE__ */ h(qe.Provider, { value: Wi, children: /* @__PURE__ */ h(t, { galaxy: e }) }) }) : null;
2927
+ }), s ? /* @__PURE__ */ p("group", { ref: i, scale: 1e-4, visible: !1, children: /* @__PURE__ */ p(qe.Provider, { value: Di, children: /* @__PURE__ */ p(t, { galaxy: e }) }) }) : null;
2911
2928
  }
2912
- function Ac({ children: e }) {
2929
+ function bc({ children: e }) {
2913
2930
  const t = B(null);
2914
2931
  return ve(() => {
2915
2932
  const n = t.current;
2916
2933
  if (!n) return;
2917
2934
  const s = Math.max(1e-4, g.graph.scale);
2918
2935
  n.scale.setScalar(1 / s), n.position.copy(g.graph.pos).multiplyScalar(-1 / s);
2919
- }), /* @__PURE__ */ h("group", { ref: t, children: e });
2936
+ }), /* @__PURE__ */ p("group", { ref: t, children: e });
2920
2937
  }
2921
- const Xi = new y.Vector3();
2922
- function bc(e) {
2938
+ const Ki = new y.Vector3();
2939
+ function vc(e) {
2923
2940
  var M, o;
2924
- const t = Zo(), [n, s] = fe(null);
2925
- le.preset = typeof e.preset == "string" ? ga[e.preset] : e.preset, le.graphNatural = ((M = e.graph) == null ? void 0 : M.natural) ?? 1, le.graphRadius = ((o = e.graph) == null ? void 0 : o.radius) ?? 2.6, le.peripheryGap = e.peripheryGap ?? 3.6, g.plane = e.plane;
2941
+ const t = Jo(), [n, s] = fe(null);
2942
+ le.preset = typeof e.preset == "string" ? Aa[e.preset] : e.preset, le.graphNatural = ((M = e.graph) == null ? void 0 : M.natural) ?? 1, le.graphRadius = ((o = e.graph) == null ? void 0 : o.radius) ?? 2.6, le.peripheryGap = e.peripheryGap ?? 3.6, g.plane = e.plane;
2926
2943
  const i = JSON.stringify(e.fit ?? {});
2927
- ne(() => Kr(e.fit ?? {}), [i]), $(() => {
2944
+ ne(() => Qr(e.fit ?? {}), [i]), $(() => {
2928
2945
  for (const u of g.agents.values()) u.fresh = !0;
2929
2946
  for (const u of g.runs.values()) u.fresh = !0;
2930
2947
  for (const u of g.mcp.values()) u.fresh = !0;
@@ -2932,35 +2949,35 @@ function bc(e) {
2932
2949
  }, []);
2933
2950
  const r = B(e.extents);
2934
2951
  r.current = e.extents;
2935
- const a = e.agentRadius ?? 1.1, l = e.agentHeight ?? 0, d = As(
2952
+ const a = e.agentRadius ?? 1.1, l = e.agentHeight ?? 0, d = vs(
2936
2953
  (u) => {
2937
2954
  var S;
2938
- no(u, a, l), (S = r.current) == null || S.call(r, u);
2955
+ so(u, a, l), (S = r.current) == null || S.call(r, u);
2939
2956
  },
2940
2957
  [a, l]
2941
2958
  ), f = e.target ?? [0, 0, 0], c = ne(() => Object.fromEntries(Object.entries(e.controls ?? {}).filter(([, u]) => u !== void 0)), [e.controls]);
2942
- return /* @__PURE__ */ V("div", { className: `scene-root${e.className ? ` ${e.className}` : ""}`, children: [
2943
- /* @__PURE__ */ V(
2944
- ur,
2959
+ return /* @__PURE__ */ R("div", { className: `scene-root${e.className ? ` ${e.className}` : ""}`, children: [
2960
+ /* @__PURE__ */ R(
2961
+ fr,
2945
2962
  {
2946
2963
  camera: { position: e.camera.position, fov: e.camera.fov ?? 46, near: e.camera.near ?? 0.1, far: e.camera.far ?? 600 },
2947
2964
  dpr: [1, 2],
2948
2965
  gl: { antialias: !1, powerPreference: "high-performance", ...e.gl },
2949
2966
  onPointerMissed: () => s(null),
2950
2967
  children: [
2951
- e.bg && /* @__PURE__ */ h("color", { attach: "background", args: [e.bg] }),
2952
- /* @__PURE__ */ h(Gi, {}),
2968
+ e.bg && /* @__PURE__ */ p("color", { attach: "background", args: [e.bg] }),
2969
+ /* @__PURE__ */ p(Ii, {}),
2953
2970
  e.Background,
2954
- /* @__PURE__ */ h(ar.Provider, { value: t, children: /* @__PURE__ */ V("group", { children: [
2955
- e.RunMarker && /* @__PURE__ */ h(Ui, { RunMarker: e.RunMarker }),
2956
- e.GraphResource && /* @__PURE__ */ h(ji, { galaxy: t, Graph: e.GraphResource }),
2957
- /* @__PURE__ */ h(Zi, { McpServer: e.McpServer, Backend: e.Backend }),
2958
- /* @__PURE__ */ h(Bi, { Agent: e.Agent, Edge: e.Edge, selected: n, onSelect: s, radius: a, height: e.plane === "xz" ? l : 0 }),
2959
- /* @__PURE__ */ h(qe.Provider, { value: Di, children: /* @__PURE__ */ h(Hi, { cluster: e.cluster, Cluster: e.Cluster, offset: e.clusterOffset }) }),
2971
+ /* @__PURE__ */ p(ir.Provider, { value: t, children: /* @__PURE__ */ R("group", { children: [
2972
+ e.RunMarker && /* @__PURE__ */ p(Zi, { RunMarker: e.RunMarker }),
2973
+ e.GraphResource && /* @__PURE__ */ p(Xi, { galaxy: t, Graph: e.GraphResource }),
2974
+ /* @__PURE__ */ p(Ji, { McpServer: e.McpServer, Backend: e.Backend }),
2975
+ /* @__PURE__ */ p(Ui, { Agent: e.Agent, Edge: e.Edge, selected: n, onSelect: s, radius: a, height: e.plane === "xz" ? l : 0 }),
2976
+ /* @__PURE__ */ p(qe.Provider, { value: Fi, children: /* @__PURE__ */ p(ji, { cluster: e.cluster, Cluster: e.Cluster, offset: e.clusterOffset }) }),
2960
2977
  e.children
2961
2978
  ] }) }),
2962
- /* @__PURE__ */ h(
2963
- lr,
2979
+ /* @__PURE__ */ p(
2980
+ dr,
2964
2981
  {
2965
2982
  makeDefault: !0,
2966
2983
  target: f,
@@ -2972,53 +2989,53 @@ function bc(e) {
2972
2989
  ...c
2973
2990
  }
2974
2991
  ),
2975
- /* @__PURE__ */ h(oa, { points: d, origin: Xi }),
2992
+ /* @__PURE__ */ p(ia, { points: d, origin: Ki }),
2976
2993
  e.PostFX
2977
2994
  ]
2978
2995
  }
2979
2996
  ),
2980
- /* @__PURE__ */ h(Xo, { title: e.title, subtitle: e.subtitle, selected: n, onClose: () => s(null), inset: e.hudInset, children: e.hudChildren })
2997
+ /* @__PURE__ */ p(Ko, { title: e.title, subtitle: e.subtitle, selected: n, onClose: () => s(null), inset: e.hudInset, children: e.hudChildren })
2981
2998
  ] });
2982
2999
  }
2983
3000
  export {
2984
3001
  te as A,
2985
- fc as B,
2986
- ha as C,
2987
- Os as D,
2988
- Ac as E,
2989
- rc as F,
2990
- pc as G,
2991
- ws as H,
2992
- ic as K,
2993
- gn as L,
2994
- vr as M,
2995
- yr as R,
2996
- on as S,
3002
+ hc as B,
3003
+ pa as C,
3004
+ Rs as D,
3005
+ bc as E,
3006
+ ac as F,
3007
+ mc as G,
3008
+ Ss as H,
3009
+ cc as K,
3010
+ bn as L,
3011
+ yr as M,
3012
+ _t as R,
3013
+ ln as S,
2997
3014
  Ie as T,
2998
- nc as a,
2999
- Ft as b,
3000
- sc as c,
3001
- Er as d,
3015
+ sc as a,
3016
+ Lt as b,
3017
+ rc as c,
3018
+ Rr as d,
3002
3019
  kt as e,
3003
3020
  C as f,
3004
3021
  z as g,
3005
- ln as h,
3006
- uc as i,
3007
- bc as j,
3022
+ dn as h,
3023
+ dc as i,
3024
+ vc as j,
3008
3025
  g as k,
3009
- cc as l,
3010
- oc as m,
3011
- mc as n,
3012
- hc as o,
3013
- Or as p,
3014
- tc as q,
3026
+ lc as l,
3027
+ ic as m,
3028
+ gc as n,
3029
+ pc as o,
3030
+ Er as p,
3031
+ nc as q,
3015
3032
  tt as r,
3016
- lc as s,
3017
- gc as t,
3033
+ uc as s,
3034
+ Ac as t,
3018
3035
  ot as u,
3019
- ac as v,
3020
- p as w,
3021
- dc as x,
3022
- Ns as y,
3023
- Ws as z
3036
+ oc as v,
3037
+ h as w,
3038
+ fc as x,
3039
+ Ws as y,
3040
+ Fs as z
3024
3041
  };