agentglow 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +38 -3
  2. package/dist/chunks/KitScene-C3SZiKL5.js +2793 -0
  3. package/dist/chunks/index--dwzdFRh.js +753 -0
  4. package/dist/chunks/index-B2PGx_wt.js +1010 -0
  5. package/dist/chunks/index-BZOG_CQS.js +838 -0
  6. package/dist/chunks/index-BfGluv59.js +784 -0
  7. package/dist/chunks/index-Bm4te7Ug.js +980 -0
  8. package/dist/chunks/index-Bqv_wy49.js +889 -0
  9. package/dist/chunks/index-Bsmr7FwH.js +763 -0
  10. package/dist/chunks/index-Bw31uayO.js +792 -0
  11. package/dist/chunks/index-C4F16M9q.js +887 -0
  12. package/dist/chunks/index-CRRHsMqy.js +68 -0
  13. package/dist/chunks/index-CS8eZTr_.js +818 -0
  14. package/dist/chunks/index-CdzGoWrn.js +1086 -0
  15. package/dist/chunks/index-CvDEulcq.js +492 -0
  16. package/dist/chunks/index-DXBfdHew.js +1143 -0
  17. package/dist/chunks/index-DdCs_ye9.js +605 -0
  18. package/dist/chunks/index-_KrED-np.js +677 -0
  19. package/dist/index.js +1 -1
  20. package/dist/style.css +1 -1
  21. package/dist/types/AgentScene.d.ts +14 -1
  22. package/dist/types/world.d.ts +69 -0
  23. package/package.json +1 -1
  24. package/dist/chunks/ClusterBall-CPsd6JvJ.js +0 -1489
  25. package/dist/chunks/index-0Bqa57T_.js +0 -786
  26. package/dist/chunks/index-4JCQqMml.js +0 -831
  27. package/dist/chunks/index-55W5crSg.js +0 -63
  28. package/dist/chunks/index-78lWZCrQ.js +0 -984
  29. package/dist/chunks/index-Bv6_kdaq.js +0 -768
  30. package/dist/chunks/index-Cgb5ir1r.js +0 -688
  31. package/dist/chunks/index-CqVCWpP7.js +0 -796
  32. package/dist/chunks/index-D1O5v601.js +0 -1065
  33. package/dist/chunks/index-DOoA9htC.js +0 -1181
  34. package/dist/chunks/index-K__sPGRy.js +0 -1134
  35. package/dist/chunks/index-N0zWN8NS.js +0 -857
  36. package/dist/chunks/index-NiYqQci9.js +0 -936
  37. package/dist/chunks/index-PQRnbPiJ.js +0 -565
  38. package/dist/chunks/index-VOXn1m-Q.js +0 -848
  39. package/dist/chunks/index-o4vs5msj.js +0 -837
  40. package/dist/chunks/index-yos7IepY.js +0 -890
  41. package/dist/chunks/spread-CWdeDFd9.js +0 -35
@@ -1,936 +0,0 @@
1
- var vt = Object.defineProperty;
2
- var wt = (e, t, r) => t in e ? vt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
- var G = (e, t, r) => wt(e, typeof t != "symbol" ? t + "" : t, r);
4
- import { jsx as m, jsxs as W, Fragment as oe } from "react/jsx-runtime";
5
- import { OrbitControls as bt } from "@react-three/drei";
6
- import { useThree as Te, useFrame as Z, Canvas as yt } from "@react-three/fiber";
7
- import { EffectComposer as St, Bloom as Mt, Vignette as xt } from "@react-three/postprocessing";
8
- import { useMemo as C, useRef as B, useState as Re, useEffect as qe } from "react";
9
- import { T as et, l as he, j as ut, m as dt, w as T, h as _, d as tt, C as At, K as Ct, L as Se, G as zt, n as Pt, c as Tt, R as Rt, u as Bt, k as Vt, i as kt, r as _t, b as Et, e as Ot, s as jt, f as Ft, H as Gt, t as Lt, g as Nt } from "./ClusterBall-CPsd6JvJ.js";
10
- import * as o from "three";
11
- var ft;
12
- const ee = typeof window < "u" && !!((ft = window.matchMedia) != null && ft.call(window, "(prefers-reduced-motion: reduce)").matches), Y = (e) => e < 0 ? 0 : e > 1 ? 1 : e, ye = (e) => 1 - Math.pow(1 - Y(e), 3), Ae = (e) => (e = Y(e), e < 0.5 ? 4 * e * e * e : 1 - Math.pow(-2 * e + 2, 3) / 2), X = new o.Color(1, 1, 1), Ce = new o.Color("#cfe0ff"), Ye = new o.Color("#fbbf24"), It = new o.Color("#ff3b4e"), je = Object.fromEntries(Object.entries(et).map(([e, t]) => [e, new o.Color(t).lerp(Ce, 0.45)]));
13
- Object.fromEntries(Object.entries(et).map(([e, t]) => [e, new o.Color(t)]));
14
- function ot(e, t) {
15
- const r = document.createElement("canvas");
16
- r.width = r.height = e, t(r.getContext("2d"), e);
17
- const n = new o.CanvasTexture(r);
18
- return n.colorSpace = o.SRGBColorSpace, n;
19
- }
20
- let Ut = null;
21
- function ze() {
22
- return Ut ?? (Ut = ot(128, (e, t) => {
23
- const r = e.createRadialGradient(t / 2, t / 2, 0, t / 2, t / 2, t / 2);
24
- r.addColorStop(0, "rgba(255,255,255,1)"), r.addColorStop(0.12, "rgba(255,255,255,0.65)"), r.addColorStop(0.4, "rgba(255,255,255,0.13)"), r.addColorStop(1, "rgba(255,255,255,0)"), e.fillStyle = r, e.fillRect(0, 0, t, t);
25
- }));
26
- }
27
- let Wt = null;
28
- function Dt() {
29
- return Wt ?? (Wt = ot(256, (e, t) => {
30
- const r = t / 2, n = (i, h, g, M) => {
31
- e.save(), e.translate(r, r), e.rotate(i);
32
- const z = e.createLinearGradient(-h, 0, h, 0);
33
- z.addColorStop(0, "rgba(255,255,255,0)"), z.addColorStop(0.5, `rgba(255,255,255,${M})`), z.addColorStop(1, "rgba(255,255,255,0)"), e.fillStyle = z, e.beginPath(), e.moveTo(-h, 0), e.lineTo(0, -g), e.lineTo(h, 0), e.lineTo(0, g), e.closePath(), e.fill(), e.restore();
34
- };
35
- n(0, r, 2.4, 1), n(Math.PI / 2, r, 2.4, 1), n(Math.PI / 4, r * 0.45, 1.3, 0.35), n(-Math.PI / 4, r * 0.45, 1.3, 0.35);
36
- const s = e.createRadialGradient(r, r, 0, r, r, r * 0.18);
37
- s.addColorStop(0, "rgba(255,255,255,1)"), s.addColorStop(1, "rgba(255,255,255,0)"), e.fillStyle = s, e.fillRect(0, 0, t, t);
38
- }));
39
- }
40
- let Kt = null;
41
- function pt() {
42
- return Kt ?? (Kt = ot(256, (e, t) => {
43
- const r = t / 2, n = e.createRadialGradient(r, r, r * 0.78, r, r, r * 0.98);
44
- n.addColorStop(0, "rgba(255,255,255,0)"), n.addColorStop(0.55, "rgba(255,255,255,0.9)"), n.addColorStop(1, "rgba(255,255,255,0)"), e.fillStyle = n, e.fillRect(0, 0, t, t);
45
- }));
46
- }
47
- function ue(e, t = "#fff") {
48
- return new o.SpriteMaterial({ map: e, color: t, blending: o.AdditiveBlending, depthWrite: !1, transparent: !0, toneMapped: !1 });
49
- }
50
- const ht = () => new o.LineBasicMaterial({ vertexColors: !0, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }), nt = new o.SphereGeometry(1, 32, 24), Xt = new o.ConeGeometry(1, 1, 3).translate(0, 0.5, 0), at = new o.TorusGeometry(1, 0.012, 6, 96);
51
- function de(e, t, r, n, s) {
52
- const i = 1 - n;
53
- return s.set(i * i * e.x + 2 * i * n * t.x + n * n * r.x, i * i * e.y + 2 * i * n * t.y + n * n * r.y, i * i * e.z + 2 * i * n * t.z + n * n * r.z);
54
- }
55
- function be(e, t, r, n, s) {
56
- const i = t.x - e.x, h = t.y - e.y, g = Math.hypot(i, h) || 1;
57
- return s.copy(e).add(t).multiplyScalar(0.5), s.x += -h / g * r, s.y += i / g * r, s.z += n, s;
58
- }
59
- const Ge = class Ge {
60
- constructor(t) {
61
- G(this, "mesh");
62
- G(this, "colors");
63
- G(this, "n", 0);
64
- G(this, "o", new o.Object3D());
65
- G(this, "a", new o.Vector3());
66
- G(this, "b", new o.Vector3());
67
- this.max = t, this.colors = new Float32Array(t * 3), this.mesh = new o.InstancedMesh(Xt, new o.MeshBasicMaterial({ blending: o.AdditiveBlending, depthWrite: !1, transparent: !0, toneMapped: !1 }), t), this.mesh.instanceColor = new o.InstancedBufferAttribute(this.colors, 3), this.mesh.frustumCulled = !1, this.mesh.count = 0;
68
- }
69
- begin() {
70
- this.n = 0;
71
- }
72
- add(t, r, n, s, i, h, g, M) {
73
- this.n >= this.max || M < 0.01 || (de(t, r, n, s, this.a), de(t, r, n, Y(s + 0.02 * i), this.b), this.b.sub(this.a), !(this.b.lengthSq() < 1e-9) && (this.o.position.copy(this.a), this.o.quaternion.setFromUnitVectors(Ge.UP, this.b.normalize()), this.o.scale.set(h * 0.32, h, h * 0.32), this.o.updateMatrix(), this.mesh.setMatrixAt(this.n, this.o.matrix), this.colors[this.n * 3] = g.r * M, this.colors[this.n * 3 + 1] = g.g * M, this.colors[this.n * 3 + 2] = g.b * M, this.n++));
74
- }
75
- end() {
76
- this.mesh.count = this.n, this.mesh.instanceMatrix.needsUpdate = !0, this.mesh.instanceColor.needsUpdate = !0;
77
- }
78
- };
79
- G(Ge, "UP", new o.Vector3(0, 1, 0));
80
- let Pe = Ge;
81
- class rt {
82
- constructor(t, r = 32) {
83
- G(this, "geo", new o.BufferGeometry());
84
- G(this, "obj");
85
- G(this, "P");
86
- G(this, "C");
87
- G(this, "n", 0);
88
- G(this, "p", new o.Vector3());
89
- this.max = t, this.seg = r, this.P = new o.BufferAttribute(new Float32Array(t * r * 6), 3), this.C = new o.BufferAttribute(new Float32Array(t * r * 6), 3), this.geo.setAttribute("position", this.P), this.geo.setAttribute("color", this.C), this.geo.boundingSphere = new o.Sphere(new o.Vector3(), 1e4), this.obj = new o.LineSegments(this.geo, ht()), this.obj.frustumCulled = !1;
90
- }
91
- begin() {
92
- this.n = 0;
93
- }
94
- /**
95
- * @param base steady brightness
96
- * @param t0,t1 visible span of the curve (trim near stars, progressive drawing)
97
- * @param dash flowing dash strength; dashDir +1 flows toward b
98
- * @param head travelling bright head position (-1 = none); headK its strength
99
- */
100
- add(t, r, n, s, i, h, g, M, z, S, d, p) {
101
- if (this.n >= this.max || g <= h) return;
102
- const c = this.seg, l = this.P, v = this.C;
103
- for (let b = 0; b < c; b++)
104
- for (let w = 0; w < 2; w++) {
105
- const u = h + (g - h) * (b + w) / c;
106
- de(t, r, n, u, this.p);
107
- const a = (this.n * c + b) * 2 + w;
108
- l.setXYZ(a, this.p.x, this.p.y, this.p.z);
109
- let f = i;
110
- M > 0 && (f += M * Math.pow(Math.max(0, Math.sin((u * 9 - S * 0.9 * z) * Math.PI)), 8)), f *= 0.2 + 0.8 * Y(Math.min((u - h) / 0.06, (g - u) / 0.04)), d >= 0 && (f += p * Math.exp(-(((u - d) / 0.045) ** 2))), v.setXYZ(a, s.r * f, s.g * f, s.b * f);
111
- }
112
- this.n++;
113
- }
114
- end() {
115
- this.geo.setDrawRange(0, this.n * this.seg * 2), this.P.needsUpdate = !0, this.C.needsUpdate = !0;
116
- }
117
- }
118
- const Ne = [
119
- [-13.5, 2],
120
- [10.5, 2.6],
121
- [-11.5, -4.8],
122
- [10, -5.4],
123
- [-3.5, 3.6],
124
- [2.5, -6.8]
125
- ];
126
- function Ze(e, t, r) {
127
- const n = Ne[e % Ne.length], s = Math.floor(e / Ne.length);
128
- return r.set(n[0] + (_(t, 11) - 0.5) * 2.6, n[1] + (_(t, 12) - 0.5) * 1.8, -s * 4 + (_(t, 13) - 0.5) * 1.5);
129
- }
130
- function Fe(e, t) {
131
- if (he.grouped) {
132
- const n = ut(e);
133
- return Ze(dt(e), e, t), t.y += Oe(n) * 4.6, t.z -= n * 1.2, t;
134
- }
135
- const r = T.runs.get(e);
136
- return Ze(r ? r.slot : 0, e, t);
137
- }
138
- function $t(e) {
139
- var t;
140
- return he.grouped ? 1e3 + dt(e) * 64 + ut(e) : ((t = T.runs.get(e)) == null ? void 0 : t.slot) ?? 0;
141
- }
142
- const ge = /* @__PURE__ */ new Map(), Ie = /* @__PURE__ */ new Map(), Ee = /* @__PURE__ */ new Map(), Oe = (e) => e === 0 ? 0 : e % 2 ? (e + 1) / 2 : -e / 2;
143
- function qt(e) {
144
- const t = Ee.get(e.id);
145
- if (t !== void 0) return t;
146
- const r = /* @__PURE__ */ new Set();
147
- for (const s of T.instances.values()) {
148
- if (s.id === e.id || s.run !== e.run || s.parent !== e.parent) continue;
149
- const i = Ee.get(s.id);
150
- i !== void 0 && !s.exitAt && r.add(i);
151
- }
152
- let n = 0;
153
- for (; r.has(n); ) n++;
154
- return Ee.set(e.id, n), n;
155
- }
156
- const Ue = new o.Vector3();
157
- function mt(e) {
158
- const t = ge.get(e.id), r = $t(e.run);
159
- if (t && Ie.get(e.id) === r) return t;
160
- if (ge.size > 400)
161
- for (const g of ge.keys()) T.instances.has(g) || (ge.delete(g), Ee.delete(g), Ie.delete(g));
162
- const n = t ?? new o.Vector3(), s = e.parent ? T.instances.get(e.parent) ?? T.archive.get(e.parent) : void 0, i = qt(e), h = (g) => _(e.id, g) - 0.5;
163
- if (!s || s.run !== e.run) {
164
- if (Fe(e.run, n), i) {
165
- const g = _(e.run, 14) * Math.PI;
166
- n.x += Math.cos(g) * Oe(i) * 4.2, n.y += Math.sin(g) * Oe(i) * 3;
167
- }
168
- } else {
169
- const g = mt(s), M = s.parent ? ge.get(s.parent) : void 0;
170
- let z;
171
- if (M)
172
- z = Math.atan2(g.y - M.y, g.x - M.x) + Oe(i) * 0.78;
173
- else {
174
- let d = (-0.5 - g.x) * 0.06, p = (-0.8 - g.y) * 0.09;
175
- for (const c of T.runs.values()) {
176
- if (c.id === e.run || c.status !== "started" || !tt(c.id)) continue;
177
- Fe(c.id, Ue);
178
- const l = g.x - Ue.x, v = g.y - Ue.y, b = Math.max(4, l * l + v * v);
179
- d += l / b * 6, p += v / b * 6;
180
- }
181
- z = Math.atan2(p, d) + (_(e.run, 15) - 0.5) * 1 + i * 2.39996;
182
- }
183
- z += h(16) * 0.35;
184
- const S = (e.subagent ? 2.6 : 3.3) * (0.9 + 0.25 * _(e.id, 17)) * (M ? 0.9 + 0.45 * (i % 2) : 1);
185
- n.set(g.x + Math.cos(z) * S, g.y + Math.sin(z) * S * 0.82, g.z + h(18) * 2.2);
186
- }
187
- return n.x += h(19) * 0.5, n.y += h(20) * 0.5, ge.set(e.id, n), Ie.set(e.id, r), n;
188
- }
189
- const J = /* @__PURE__ */ new Map(), We = [
190
- [-24, 6, -9],
191
- [17, -10.6, -4],
192
- [-25, -0.5, -8],
193
- [26, -2.5, -8],
194
- [-3.5, -12.2, -5],
195
- [5.5, 11.5, -10]
196
- ];
197
- function He(e, t) {
198
- const r = We[e % We.length], n = Math.floor(e / We.length);
199
- return t.set(r[0] * (1 + n * 0.12), r[1] * (1 + n * 0.12), r[2] - n * 4);
200
- }
201
- const Qe = /* @__PURE__ */ new Map(), le = new o.Vector3(1.5, 0.8, -15), Be = 15, Ve = 7.5, Yt = (
202
- /* glsl */
203
- `
204
- attribute float aSize; attribute vec3 aColor; uniform float uScale; varying vec3 vC;
205
- void main(){ vec4 mv = modelViewMatrix * vec4(position, 1.0); vC = aColor; gl_PointSize = aSize * uScale / -mv.z; gl_Position = projectionMatrix * mv; }`
206
- ), Zt = (
207
- /* glsl */
208
- `
209
- varying vec3 vC;
210
- void main(){ float r = length(gl_PointCoord - 0.5) * 2.0; if (r > 1.0) discard;
211
- float core = smoothstep(0.35, 0.0, r); float halo = pow(1.0 - r, 2.6);
212
- gl_FragColor = vec4(vC * (core * 1.4 + halo * 0.5), 1.0); }`
213
- );
214
- class Le {
215
- constructor(t) {
216
- G(this, "geo", new o.BufferGeometry());
217
- G(this, "mat", new o.ShaderMaterial({ uniforms: { uScale: { value: 400 } }, vertexShader: Yt, fragmentShader: Zt, transparent: !0, depthWrite: !1, blending: o.AdditiveBlending }));
218
- G(this, "obj");
219
- G(this, "P");
220
- G(this, "S");
221
- G(this, "C");
222
- G(this, "n", 0);
223
- this.max = t, this.P = new o.BufferAttribute(new Float32Array(t * 3), 3), this.S = new o.BufferAttribute(new Float32Array(t), 1), this.C = new o.BufferAttribute(new Float32Array(t * 3), 3), this.geo.setAttribute("position", this.P), this.geo.setAttribute("aSize", this.S), this.geo.setAttribute("aColor", this.C), this.geo.boundingSphere = new o.Sphere(new o.Vector3(), 1e4), this.obj = new o.Points(this.geo, this.mat), this.obj.frustumCulled = !1;
224
- }
225
- setScale(t, r, n) {
226
- this.mat.uniforms.uScale.value = t * r / (2 * Math.tan(n * Math.PI / 360));
227
- }
228
- begin() {
229
- this.n = 0;
230
- }
231
- add(t, r, n, s) {
232
- this.n >= this.max || (this.P.setXYZ(this.n, t.x, t.y, t.z), this.S.setX(this.n, r), this.C.setXYZ(this.n, n.r * s, n.g * s, n.b * s), this.n++);
233
- }
234
- end() {
235
- this.geo.setDrawRange(0, this.n), this.P.needsUpdate = !0, this.S.needsUpdate = !0, this.C.needsUpdate = !0;
236
- }
237
- }
238
- const Ht = [
239
- [-19, 5.5, -1],
240
- [5.5, 8.4, -1],
241
- [-18.5, -3.2, -1],
242
- [6.5, -1.2, -1],
243
- [-5, 8.6, -1],
244
- [-3, -9.2, -1]
245
- ];
246
- function Qt(e, t) {
247
- return he.laneExpanded[e] ? t.fromArray(Ht[e]) : (Ze(e, "", t).setZ(-1), t);
248
- }
249
- function Jt() {
250
- return /* @__PURE__ */ m(At, { place: Qt, radius: 1.5, variant: "stars", glowGain: 0.9 });
251
- }
252
- const eo = 260, De = 40, Ke = 8, ke = 4, to = new o.Color("#9db4ff"), oo = (
253
- /* glsl */
254
- "varying vec2 vUv; void main(){ vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }"
255
- ), no = (
256
- /* glsl */
257
- `
258
- uniform float uTime; uniform float uAct; varying vec2 vUv;
259
- float h(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); }
260
- float n(vec2 p){ vec2 i = floor(p); vec2 f = fract(p); f = f*f*(3.0-2.0*f);
261
- return mix(mix(h(i), h(i+vec2(1,0)), f.x), mix(h(i+vec2(0,1)), h(i+vec2(1,1)), f.x), f.y); }
262
- float fbm(vec2 p){ float s = 0.0, a = 0.5; for (int i = 0; i < 6; i++){ s += a*n(p); p = p*2.02 + 3.1; a *= 0.5; } return s; }
263
- void main(){
264
- vec2 p = (vUv - 0.5) * 2.0;
265
- float r = length(p);
266
- float ang = atan(p.y, p.x);
267
- // spiral-swirl the noise domain
268
- float sw = ang + r * 2.6 - uTime * 0.012;
269
- vec2 q = vec2(cos(sw), sin(sw)) * r * 2.4;
270
- float f = fbm(q + fbm(q * 1.3 + 4.0) * 1.2);
271
- float arms = 0.55 + 0.45 * cos(2.0 * (ang - r * 3.2 + uTime * 0.006));
272
- float mask = smoothstep(1.0, 0.15, r);
273
- float core = exp(-r * r * 9.0);
274
- vec3 deep = vec3(0.10, 0.06, 0.32);
275
- vec3 blue = vec3(0.07, 0.18, 0.45);
276
- vec3 teal = vec3(0.05, 0.30, 0.42);
277
- vec3 rose = vec3(0.35, 0.10, 0.36);
278
- vec3 col = mix(deep, blue, smoothstep(0.35, 0.75, f));
279
- col = mix(col, teal, smoothstep(0.62, 0.9, fbm(q * 0.7 + 9.0)) * 0.6);
280
- col = mix(col, rose, smoothstep(0.55, 0.85, fbm(q * 0.9 - 5.0)) * 0.35);
281
- float dens = pow(f, 1.6) * arms * mask;
282
- vec3 c = col * dens * (0.75 + uAct * 0.35) + vec3(0.55, 0.6, 0.95) * core * 0.16;
283
- gl_FragColor = vec4(c, 1.0);
284
- }`
285
- ), ro = (
286
- /* glsl */
287
- `
288
- attribute float aSize; attribute vec3 aColor; uniform float uScale; varying vec3 vC;
289
- void main(){ vec4 mv = modelViewMatrix * vec4(position, 1.0); vC = aColor; gl_PointSize = aSize * uScale / -mv.z; gl_Position = projectionMatrix * mv; }`
290
- ), ao = (
291
- /* glsl */
292
- `
293
- varying vec3 vC;
294
- void main(){ float r = length(gl_PointCoord - 0.5) * 2.0; if (r > 1.0) discard;
295
- float core = smoothstep(0.4, 0.0, r); float halo = pow(1.0 - r, 2.4);
296
- gl_FragColor = vec4(vC * (core * 1.25 + halo * 0.4), 1.0); }`
297
- );
298
- function so({ galaxy: e }) {
299
- const t = C(() => ({ nodes: e.nodes.slice(0, eo), links: e.links }), [e]), r = t.nodes.length, { size: n, gl: s, camera: i } = Te(), h = B([]), g = B([]), M = B(Array(ke).fill("")), z = B([]), S = C(() => {
300
- const a = new Float32Array(r * 3), f = -0.18, y = Math.cos(f), R = Math.sin(f);
301
- t.nodes.forEach((P, I) => {
302
- const k = _(P.id, 1);
303
- let K, $;
304
- if (k < 0.22) {
305
- const ne = 0.22 * Math.sqrt(-2 * Math.log(1 - _(P.id, 2) * 0.95)) * 0.6, q = _(P.id, 3) * Math.PI * 2;
306
- K = Math.cos(q) * ne * Be, $ = Math.sin(q) * ne * Ve;
307
- } else {
308
- const ne = k < 0.61 ? 0 : Math.PI, q = 0.12 + 0.88 * Math.sqrt(_(P.id, 2)), ie = ne + q * 3.1 + (_(P.id, 3) - 0.5) * (0.6 + q * 0.7), ce = 1 + (_(P.id, 7) - 0.5) * 0.35;
309
- K = Math.cos(ie) * q * Be * 0.95 * ce, $ = Math.sin(ie) * q * Ve * 0.95 * ce;
310
- }
311
- a.set([le.x + K * y - $ * R, le.y + K * R + $ * y, le.z + (_(P.id, 4) - 0.5) * 4], I * 3);
312
- });
313
- const E = t.nodes.map((P) => new o.Color(Ct[P.kind] ?? "#94a3b8").lerp(to, 0.55).multiplyScalar(0.5)), L = t.nodes.map((P) => 0.32 + Math.pow(_(P.id, 5), 4) * 0.5), N = new o.BufferGeometry();
314
- N.setAttribute("position", new o.BufferAttribute(a, 3)), N.setAttribute("aSize", new o.BufferAttribute(new Float32Array(r), 1)), N.setAttribute("aColor", new o.BufferAttribute(new Float32Array(r * 3), 3));
315
- const U = new Map(t.nodes.map((P, I) => [P.id, I])), V = [], D = new o.Vector3(), H = new o.Vector3();
316
- for (const P of t.links) {
317
- const I = U.get(P.source), k = U.get(P.target);
318
- I === void 0 || k === void 0 || I === k || (D.fromArray(a, I * 3), H.fromArray(a, k * 3), D.distanceTo(H) < 3.2 && V.push(I, k));
319
- }
320
- const O = new Float32Array(V.length * 3);
321
- V.forEach((P, I) => O.set([a[P * 3], a[P * 3 + 1], a[P * 3 + 2]], I * 3));
322
- const j = new o.BufferGeometry();
323
- return j.setAttribute("position", new o.BufferAttribute(O, 3)), j.setAttribute("color", new o.BufferAttribute(new Float32Array(V.length * 3), 3)), { pos: a, base: E, baseSize: L, ngeo: N, lgeo: j, owner: Int32Array.from(V), fire: new Float32Array(r), white: new Float32Array(r), fireC: Array.from({ length: r }, () => new o.Color()), phase: t.nodes.map((P) => _(P.id, 6) * 6.283) };
324
- }, [t, r]), d = C(
325
- () => ({
326
- gas: new o.ShaderMaterial({ uniforms: { uTime: { value: 0 }, uAct: { value: 0 } }, vertexShader: oo, fragmentShader: no, transparent: !0, depthWrite: !1, blending: o.AdditiveBlending }),
327
- nodes: new o.ShaderMaterial({ uniforms: { uScale: { value: 400 } }, vertexShader: ro, fragmentShader: ao, transparent: !0, depthWrite: !1, blending: o.AdditiveBlending }),
328
- fil: new o.LineBasicMaterial({ vertexColors: !0, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }),
329
- ripples: Array.from({ length: Ke }, () => ue(pt(), "#000"))
330
- }),
331
- []
332
- ), p = C(() => new rt(De, 24), []), c = C(() => new Pe(De), []), l = C(() => new Le(De), []), v = C(() => /* @__PURE__ */ new Map(), [t]), b = C(() => ({ v: new o.Vector3(), ctrl: new o.Vector3(), h: new o.Vector3(), c: new o.Color(), act: 0 }), []), w = (a) => {
333
- let f = v.get(a);
334
- return f === void 0 && v.set(a, f = Pt(t, a)), f;
335
- };
336
- return Z(({ clock: a }) => {
337
- const f = performance.now(), y = ee ? 0 : a.elapsedTime, R = i.fov, E = s.getPixelRatio();
338
- d.nodes.uniforms.uScale.value = n.height * E / (2 * Math.tan(R * Math.PI / 360)), l.setScale(n.height, E, R);
339
- const { pos: L, base: N, baseSize: U, fire: V, white: D, fireC: H, phase: O } = S, { v: j, ctrl: P, h: I, c: k } = b;
340
- V.fill(0), D.fill(0), p.begin(), c.begin(), l.begin();
341
- let K = 0, $ = 0;
342
- for (const A of T.flares) {
343
- const x = w(A.node), F = (f - A.start) / 1e3, me = T.instances.get(A.instance), pe = me ? je[me.type] : Ce, re = A.op === "write", te = F < 0.3 ? F / 0.3 : Math.exp(-(F - 0.3) * 1.1);
344
- if ($ = Math.max($, te), te > V[x] && (V[x] = te, H[x].copy(re ? X : pe), D[x] = re ? 1 : 0), j.fromArray(L, x * 3), re && F < 1.6 && K < Ke) {
345
- const se = z.current[K];
346
- if (se) {
347
- const fe = F / 1.6;
348
- se.visible = !0, se.position.copy(j), se.scale.setScalar(0.4 + fe * 3.2), d.ripples[K].color.setScalar((1 - fe) * (1 - fe) * 0.9);
349
- }
350
- K++;
351
- }
352
- const ae = J.get(A.instance);
353
- if (ae && F < 2) {
354
- be(ae, j, 1.2, 2.5, P);
355
- const se = Math.min(1, F / 0.25) * Math.pow(1 - F / 2, 1.5), fe = re ? Math.min(1, F * 0.9) : 1 - Math.min(1, F * 0.9);
356
- k.copy(re ? X : pe).lerp(X, 0.2), p.add(ae, P, j, k, (re ? 0.26 : 0.1) * se, 0.04, 0.99, 0, 1, y, fe, 1.1 * se), fe > 0.02 && fe < 0.98 && (de(ae, P, j, fe, I), l.add(I, 0.5, k, 1.1 * se)), re ? c.add(ae, P, j, 0.95, 1, 0.34, X, se * 0.9) : c.add(ae, P, j, 0.07, -1, 0.34, k, se * 1.1);
357
- }
358
- }
359
- for (let A = K; A < Ke; A++) {
360
- const x = z.current[A];
361
- x && (x.visible = !1);
362
- }
363
- p.end(), c.end(), l.end(), b.act += ($ - b.act) * 0.05, d.gas.uniforms.uTime.value = y, d.gas.uniforms.uAct.value = b.act;
364
- const ne = S.ngeo.getAttribute("aSize"), q = S.ngeo.getAttribute("aColor");
365
- for (let A = 0; A < r; A++) {
366
- const x = V[A], F = ee ? 1 : 0.85 + 0.15 * Math.sin(y * 0.9 + O[A]);
367
- ne.setX(A, U[A] + x * (0.9 + D[A] * 0.5)), k.copy(N[A]).multiplyScalar(F), x > 0.01 && (k.r += H[A].r * x * 1.5 + x * (0.25 + D[A]), k.g += H[A].g * x * 1.5 + x * (0.25 + D[A]), k.b += H[A].b * x * 1.5 + x * (0.25 + D[A])), q.setXYZ(A, k.r, k.g, k.b);
368
- }
369
- ne.needsUpdate = !0, q.needsUpdate = !0;
370
- const ie = S.lgeo.getAttribute("color"), ce = S.owner;
371
- for (let A = 0; A < ce.length; A++) {
372
- const x = Math.max(V[ce[A]], V[ce[A ^ 1]]);
373
- ie.setXYZ(A, 0.05 + x * 0.35, 0.06 + x * 0.38, 0.13 + x * 0.5);
374
- }
375
- ie.needsUpdate = !0;
376
- let Q = 0;
377
- for (let A = T.flares.length - 1; A >= 0 && Q < ke; A--) {
378
- const x = T.flares[A];
379
- if (f - x.start > 2200) break;
380
- let F = !1;
381
- for (let te = 0; te < Q; te++) M.current[te] === x.node && (F = !0);
382
- if (F) continue;
383
- const me = w(x.node);
384
- for (let te = 0; te < Q; te++) {
385
- const ae = g.current[te];
386
- ae && Math.abs(ae.position.y - L[me * 3 + 1]) < 0.9 && Math.abs(ae.position.x - L[me * 3]) < 4.5 && (F = !0);
387
- }
388
- if (F) continue;
389
- const pe = h.current[Q], re = g.current[Q];
390
- pe && re && (re.position.fromArray(L, me * 3), M.current[Q] !== x.node && (pe.setText(`${x.op === "write" ? "wrote" : "read"} · ${x.node}`), pe.setColor(x.op === "write" ? "#ffffff" : "#9db4ff")), pe.setOpacity(Y(1.4 - (f - x.start) / 1600))), M.current[Q] = x.node, Q++;
391
- }
392
- for (let A = Q; A < ke; A++) {
393
- const x = h.current[A];
394
- x == null || x.setOpacity(0), M.current[A] = "";
395
- }
396
- }), /* @__PURE__ */ W(oe, { children: [
397
- /* @__PURE__ */ m("mesh", { material: d.gas, position: [le.x, le.y, le.z - 1], rotation: [0, 0, -0.18], renderOrder: -5, children: /* @__PURE__ */ m("planeGeometry", { args: [Be * 2.6, Ve * 2.9] }) }),
398
- /* @__PURE__ */ m("lineSegments", { geometry: S.lgeo, material: d.fil, frustumCulled: !1 }),
399
- /* @__PURE__ */ m("points", { geometry: S.ngeo, material: d.nodes, frustumCulled: !1 }),
400
- d.ripples.map((a, f) => /* @__PURE__ */ m("sprite", { ref: (y) => void (z.current[f] = y), material: a, visible: !1 }, f)),
401
- /* @__PURE__ */ m("primitive", { object: p.obj }),
402
- /* @__PURE__ */ m("primitive", { object: c.mesh }),
403
- /* @__PURE__ */ m("primitive", { object: l.obj }),
404
- Array.from({ length: ke }, (a, f) => /* @__PURE__ */ m("group", { ref: (y) => void (g.current[f] = y), children: /* @__PURE__ */ m(Se, { ref: (y) => void (h.current[f] = y), text: "", offset: [0, 0.4], size: 0.24, opacity: 0, fadeMs: 250, pxRange: [8, 12] }) }, f)),
405
- /* @__PURE__ */ m(zt, { position: [le.x - Be * 0.95, le.y + Ve * 0.45, le.z], suffix: " · nebula", color: "#8b9cff", letterSpacing: 0.04, size: 0.28, opacity: 0.6, pxRange: [8, 12] })
406
- ] });
407
- }
408
- const io = (
409
- /* glsl */
410
- `
411
- varying vec3 vN; varying vec3 vV; varying vec3 vObj;
412
- void main(){
413
- vec4 wp = modelMatrix * vec4(position, 1.0);
414
- vN = normalize(mat3(modelMatrix) * normal); vV = normalize(cameraPosition - wp.xyz); vObj = position;
415
- gl_Position = projectionMatrix * viewMatrix * wp; }`
416
- ), co = (
417
- /* glsl */
418
- `
419
- uniform vec3 uCol; uniform vec3 uAtmo; uniform float uAct; uniform float uBands; uniform float uSeed; uniform float uGlow;
420
- varying vec3 vN; varying vec3 vV; varying vec3 vObj;
421
- void main(){
422
- vec3 N = normalize(vN); vec3 V = normalize(vV);
423
- vec3 L = normalize(vec3(-0.55, 0.45, 0.7));
424
- float lam = dot(N, L);
425
- float day = smoothstep(-0.15, 0.6, lam);
426
- float y = vObj.y;
427
- float b = sin(y * 13.0 + sin(vObj.x * 3.0 + uSeed * 6.0) * 0.8 + uSeed * 20.0) * 0.5 + 0.5;
428
- float b2 = sin(y * 31.0 + uSeed * 9.0) * 0.5 + 0.5;
429
- vec3 surf = uCol * mix(1.0, 0.7 + 0.35 * b + 0.12 * b2, uBands);
430
- vec3 col = surf * (0.05 + 0.85 * day);
431
- float f = 1.0 - max(dot(N, V), 0.0);
432
- float rim = pow(f, 3.0);
433
- col += uAtmo * rim * (0.35 + 0.9 * day + uAct * 0.9);
434
- col += uAtmo * uGlow * (0.25 + 0.75 * (1.0 - f));
435
- gl_FragColor = vec4(col, 1.0);
436
- }`
437
- );
438
- function gt(e, t, r, n) {
439
- return new o.ShaderMaterial({
440
- uniforms: { uCol: { value: e.clone() }, uAtmo: { value: t.clone() }, uAct: { value: 0 }, uBands: { value: r }, uSeed: { value: n }, uGlow: { value: 0 } },
441
- vertexShader: io,
442
- fragmentShader: co
443
- });
444
- }
445
- const st = new o.Color("#8792b5"), Xe = 96;
446
- function lo(e, t, r) {
447
- return { tilt: new o.Quaternion().setFromEuler(new o.Euler(1.15 + (_(t.name, 1) - 0.5) * 0.5, (_(t.name, 2) - 0.5) * 0.6, (_(e.name, 3) - 0.5) * 0.5 + r * 0.25)), r: 2.3 + r * 0.85, phase: _(t.name, 4) * Math.PI * 2, speed: 0.09 / (1 + r * 0.5) * (_(t.name, 5) < 0.5 ? 1 : -1) };
448
- }
449
- function fo({ srv: e, res: t, k: r, center: n }) {
450
- const s = `${e.name}|${t.name}`, i = C(() => lo(e, t, r), [e, t, r]), h = C(() => new o.Color(e.color), [e.color]), g = C(() => gt(st, new o.Color(e.color).lerp(X, 0.3), 0, _(t.name, 6)), [e.color, t.name]), M = C(() => ue(ze(), "#000"), []), z = C(() => new o.LineBasicMaterial({ color: "#000", transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }), []), S = C(() => {
451
- const w = new Float32Array((Xe + 1) * 3), u = new o.Vector3();
452
- for (let a = 0; a <= Xe; a++) {
453
- const f = a / Xe * Math.PI * 2;
454
- u.set(Math.cos(f) * i.r, Math.sin(f) * i.r, 0).applyQuaternion(i.tilt), w.set([u.x, u.y, u.z], a * 3);
455
- }
456
- return new o.BufferGeometry().setAttribute("position", new o.BufferAttribute(w, 3));
457
- }, [i]), d = C(() => new o.Vector3(), []), p = B(null), c = B(null), l = B(null), v = B("");
458
- C(() => Qe.set(s, d), [s, d]), Z(({ clock: w }) => {
459
- var L, N;
460
- const u = performance.now(), a = i.phase + (ee ? 0 : w.elapsedTime * i.speed);
461
- d.set(Math.cos(a) * i.r, Math.sin(a) * i.r, 0).applyQuaternion(i.tilt).add(n), (L = p.current) == null || L.position.copy(d);
462
- const f = t.inflight > 0, y = Math.exp(-((u - t.activeAt) / 1e3) * 1.4), R = f ? 0.5 + 0.5 * Math.sin(w.elapsedTime * 5) : 0;
463
- g.uniforms.uAct.value = f ? 1 : y, g.uniforms.uGlow.value = f ? 0.8 + R * 0.5 : y * 0.6, g.uniforms.uCol.value.copy(st).lerp(h, f ? 0.6 : y * 0.5), M.color.copy(h).lerp(X, 0.3).multiplyScalar(f ? 0.55 + R * 0.25 : y * 0.35), (N = c.current) == null || N.scale.setScalar(f ? 2.6 + R * 0.4 : 1.6 + y), z.color.copy(h).lerp(X, 0.3).multiplyScalar(0.12 + (f ? 0.2 : y * 0.12));
464
- let E = t.name;
465
- if (f) {
466
- let U = "";
467
- for (const V of T.mcpPending.values()) V.server === e.name && V.resource === t.name && (U = V.tool);
468
- E = `${t.name} ▶ ${U || "query"}()`;
469
- } else y > 0.25 && t.calls > 0 && (E = `${t.name} ✓`);
470
- l.current && (E !== v.current && l.current.setText(v.current = E), l.current.setOpacity(f ? 1 : 0.5 + y * 0.5), l.current.setEmphasis(f));
471
- });
472
- const b = t.kind === "warehouse" || t.kind === "spark" ? 0.36 : 0.3;
473
- return /* @__PURE__ */ W(oe, { children: [
474
- /* @__PURE__ */ m("lineLoop", { geometry: S, material: z, position: n }),
475
- /* @__PURE__ */ W("group", { ref: p, children: [
476
- /* @__PURE__ */ m("sprite", { ref: c, material: M }),
477
- /* @__PURE__ */ m("mesh", { geometry: nt, material: g, scale: b }),
478
- /* @__PURE__ */ m(Se, { ref: l, position: [0, -0.62, 0], text: t.name, color: e.color, size: 0.2, opacity: 0.5, pxRange: [7.5, 11.5] })
479
- ] })
480
- ] });
481
- }
482
- function uo({ srv: e }) {
483
- const t = C(() => He(e.slot, new o.Vector3()), [e.slot]), r = C(() => new o.Color(e.color), [e.color]), n = C(() => _(e.name, 7), [e.name]), s = 1 + n * 0.4, i = _(e.name, 8) > 0.45, h = C(
484
- () => ({
485
- body: gt(r.clone().lerp(new o.Color("#8090c0"), 0.35).multiplyScalar(0.45), r.clone().lerp(X, 0.25).multiplyScalar(0.7), 1, n),
486
- halo: ue(ze(), "#000"),
487
- ring: new o.MeshBasicMaterial({ color: r.clone().lerp(X, 0.4).multiplyScalar(0.22), side: o.DoubleSide, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 })
488
- }),
489
- [r, n]
490
- ), g = C(() => new o.RingGeometry(s * 1.45, s * 2.05, 96, 1), [s]), M = B(null), z = B(null), [S, d] = Re([]), p = B(0);
491
- return Z(({ clock: c }) => {
492
- var w;
493
- e.resources.size !== p.current && (p.current = e.resources.size, d([...e.resources.values()]));
494
- const l = performance.now(), v = e.inflight > 0, b = Math.exp(-((l - e.activeAt) / 1e3) * 1.4);
495
- h.body.uniforms.uAct.value = v ? 1 : b, h.halo.color.copy(r).multiplyScalar(v ? 0.28 : 0.07 + b * 0.18), (w = z.current) == null || w.scale.setScalar(s * (5 + (v ? 0.6 : 0))), M.current && !ee && (M.current.rotation.y = c.elapsedTime * 0.05);
496
- }), /* @__PURE__ */ W(oe, { children: [
497
- /* @__PURE__ */ W("group", { position: t, children: [
498
- /* @__PURE__ */ m("sprite", { ref: z, material: h.halo }),
499
- /* @__PURE__ */ W("group", { rotation: [0.25, 0, -0.32 + n * 0.3], children: [
500
- /* @__PURE__ */ m("mesh", { ref: M, geometry: nt, material: h.body, scale: s }),
501
- i && /* @__PURE__ */ m("mesh", { geometry: g, material: h.ring, rotation: [Math.PI / 2 - 0.25, 0, 0] })
502
- ] }),
503
- /* @__PURE__ */ m(Se, { position: [0, s + 0.75, 0], text: `MCP · ${e.name}`, color: e.color, size: 0.28, pxRange: [9, 13] })
504
- ] }),
505
- S.map((c, l) => /* @__PURE__ */ m(fo, { srv: e, res: c, k: l, center: t }, c.name))
506
- ] });
507
- }
508
- const $e = 48;
509
- function po() {
510
- const { size: e, gl: t, camera: r } = Te(), n = C(() => new rt($e, 36), []), s = C(() => new Pe($e), []), i = C(() => new Le($e), []), h = C(() => ({ a: new o.Vector3(), b: new o.Vector3(), c: new o.Vector3(), h: new o.Vector3(), col: new o.Color() }), []);
511
- return Z(({ clock: g }) => {
512
- const M = performance.now(), z = ee ? 0 : g.elapsedTime;
513
- i.setScale(e.height, t.getPixelRatio(), r.fov), n.begin(), s.begin(), i.begin();
514
- const { a: S, b: d, c: p, h: c, col: l } = h;
515
- for (const v of T.mcpPending.values()) {
516
- const b = J.get(v.instance), w = T.mcpServers.get(v.server);
517
- if (!b || !w) continue;
518
- He(w.slot, d), S.copy(b), be(S, d, 1.5, 1.2, p);
519
- const u = Tt(v, M);
520
- l.set(w.color).lerp(Ye, Y(u / 1.2)), u > 1.2 && l.lerp(It, Y((u - 1.2) / 1));
521
- const a = (0.2 + Math.min(0.35, u * 0.15)) * ye(u / 0.3), f = 0.06 + 0.86 * ye(u / 0.45);
522
- if (n.add(S, p, d, l, a, 0.06, f, 0.9, 1, z, u < 0.45 ? f : -1, 1.2), u > 0.45 && s.add(S, p, d, 0.9, 1, 0.42, l, 0.6 + a), v.resource) {
523
- const y = Qe.get(`${v.server}|${v.resource}`);
524
- y && (be(d, y, 0.3, 0.2, p), n.add(d, p, y, l, a * 0.9, 0.12, 0.88, 0.9, 1, z, -1, 0), s.add(d, p, y, 0.8, 1, 0.3, l, 0.5 + a));
525
- }
526
- }
527
- for (const v of T.mcpCalls) {
528
- if (v.phase !== "result") continue;
529
- const b = Y((M - v.start) / v.dur);
530
- if (b >= 1) continue;
531
- const w = J.get(v.instance), u = T.mcpServers.get(v.server);
532
- if (!w || !u) continue;
533
- He(u.slot, d), l.set(u.color).lerp(X, 0.4);
534
- const a = v.resource ? Qe.get(`${v.server}|${v.resource}`) : void 0, f = a ? 0.3 : 0;
535
- if (a && b < f) {
536
- const y = Ae(b / f);
537
- be(d, a, 0.3, 0.2, p), n.add(d, p, a, l, 0.15, 0.12, 0.88, 0, 1, z, 1 - y, 1.4), de(d, p, a, 1 - y, c), i.add(c, 0.6, l, 1.5);
538
- } else {
539
- const y = Ae((b - f) / (1 - f));
540
- S.copy(w), be(S, d, 1.5, 1.2, p);
541
- const R = 1 - Math.max(0, (y - 0.85) / 0.15);
542
- n.add(S, p, d, l, 0.22 * R, 0.06, 0.94, 0, 1, z, 1 - y, 1.6 * R), de(S, p, d, 1 - y, c), i.add(c, 0.75, l, 1.6 * R), s.add(S, p, d, 0.08, -1, 0.45, l, 1.3 * R);
543
- }
544
- }
545
- n.end(), s.end(), i.end();
546
- }), /* @__PURE__ */ W(oe, { children: [
547
- /* @__PURE__ */ m("primitive", { object: n.obj }),
548
- /* @__PURE__ */ m("primitive", { object: s.mesh }),
549
- /* @__PURE__ */ m("primitive", { object: i.obj })
550
- ] });
551
- }
552
- function ho() {
553
- const [e, t] = Re([]), r = B(-1);
554
- return Z(() => {
555
- T.mcpServers.size !== r.current && (r.current = T.mcpServers.size, t([...T.mcpServers.values()]));
556
- }), /* @__PURE__ */ W(oe, { children: [
557
- e.map((n) => /* @__PURE__ */ m(uo, { srv: n }, n.name)),
558
- /* @__PURE__ */ m(po, {})
559
- ] });
560
- }
561
- const _e = /* @__PURE__ */ new Map();
562
- function mo({ run: e }) {
563
- const t = C(() => new o.Color(e.color), [e.color]), r = C(() => ue(ze(), "#000"), []), n = C(() => {
564
- const h = Fe(e.id, new o.Vector3());
565
- return { aura: h.clone().setZ(-3), label: h.clone().add(new o.Vector3(0, 2.6, 0)), want: new o.Vector3(), init: !1 };
566
- }, [e.slot, e.id]), s = B(null), i = B(null);
567
- return qe(() => () => void _e.delete(e.id), [e.id]), Z(({ clock: h }) => {
568
- var b, w, u;
569
- const g = performance.now(), M = ye((g - e.startedAt) / 1500), z = e.endedAt ? Y(1 - (g - e.endedAt - (Rt - 2500)) / 2500) : 1, S = ee ? 1 : 0.9 + 0.1 * Math.sin(h.elapsedTime * 0.5 + e.slot);
570
- r.color.copy(t).multiplyScalar(0.075 * M * z * S);
571
- let d = 0, p = 0, c = 0, l = -1e9;
572
- for (const a of T.instances.values()) {
573
- if (a.run !== e.id) continue;
574
- const f = J.get(a.id);
575
- f && (d++, p += f.x, c += f.y, f.y > l && (l = f.y));
576
- }
577
- if (d) {
578
- n.want.set(p / d, Math.min(l + 1.7, 8.4), 0);
579
- for (const [a, f] of _e)
580
- a !== e.id && f.startedAt < e.startedAt && Math.abs(f.p.x - n.want.x) < 8.5 && Math.abs(f.p.y - n.want.y) < 1.4 && (n.want.y = f.p.y + 1.45);
581
- n.init ? n.label.lerp(n.want, 0.04) : (n.label.copy(n.want), n.init = !0), n.aura.x += (p / d - n.aura.x) * 0.03, n.aura.y += (c / d - n.aura.y) * 0.03;
582
- }
583
- (b = i.current) == null || b.position.copy(n.label);
584
- let v = _e.get(e.id);
585
- v || _e.set(e.id, v = { p: new o.Vector3(), startedAt: e.startedAt }), v.p.copy(n.label), (w = s.current) == null || w.position.copy(n.aura), (u = s.current) == null || u.scale.set(15, 11, 1);
586
- }), /* @__PURE__ */ W(oe, { children: [
587
- /* @__PURE__ */ m("sprite", { ref: s, material: r }),
588
- /* @__PURE__ */ m("group", { ref: i, children: /* @__PURE__ */ m(go, { run: e }) })
589
- ] });
590
- }
591
- function go({ run: e }) {
592
- Bt();
593
- const t = e.status !== "started";
594
- return /* @__PURE__ */ m(
595
- Se,
596
- {
597
- text: e.topic,
598
- secondary: Vt(e, { base: "#94a3c8", current: "#fde68a", done: "#cbd5e1" }, ["running…", "run complete"]),
599
- color: e.color,
600
- textColor: "#e6ecff",
601
- plate: "none",
602
- uppercase: !0,
603
- letterSpacing: 0.12,
604
- size: 0.34,
605
- maxWidth: 14,
606
- opacity: t ? 0.5 : 0.92,
607
- fadeMs: 600,
608
- pxRange: [10, 14],
609
- glow: 1.1
610
- }
611
- );
612
- }
613
- const ve = 6, Me = 6, we = 28, xe = 3, vo = 2.2;
614
- function wo() {
615
- const { size: e, gl: t, camera: r } = Te(), n = B(/* @__PURE__ */ new Set()), s = B([]), i = B([]), h = B([]), g = B([]), M = C(() => {
616
- const p = new o.BufferGeometry();
617
- return p.setAttribute("position", new o.BufferAttribute(new Float32Array(ve * xe * we * 6), 3)), p.setAttribute("color", new o.BufferAttribute(new Float32Array(ve * xe * we * 6), 3)), p.boundingSphere = new o.Sphere(new o.Vector3(), 1e4), p;
618
- }, []), z = C(() => ht(), []), S = C(() => new Le(ve * (2 + Me)), []), d = C(() => ({ h: new o.Vector3(), p: new o.Vector3() }), []);
619
- return Z(() => {
620
- const p = performance.now();
621
- for (const u of T.runs.values()) {
622
- if (!u.final || n.current.has(u.id) || (n.current.add(u.id), !tt(u.id))) continue;
623
- let a;
624
- for (const L of T.instances.values()) L.run === u.id && !L.parent && (a = J.get(L.id));
625
- const f = a ? a.clone() : Fe(u.id, new o.Vector3()), y = (f.x < 0 ? 1 : -1) * (10 + _(u.id, 21) * 6), R = Math.max(-5, Math.min(4, f.y)) - 2.5 - _(u.id, 22) * 2, E = new o.Vector3(y - f.x, R - f.y, 1.5).normalize();
626
- s.current.push({ run: u.id, start: p, from: f, dir: E, color: new o.Color(u.color).lerp(X, 0.7), text: u.final }), s.current.length > ve && s.current.shift();
627
- }
628
- if (n.current.size > 200)
629
- for (const u of n.current) T.runs.has(u) || n.current.delete(u);
630
- s.current = s.current.filter((u) => p - u.start < 5200), S.setScale(e.height, t.getPixelRatio(), r.fov), S.begin();
631
- const c = M.getAttribute("position"), l = M.getAttribute("color");
632
- let v = 0;
633
- const { h: b, p: w } = d;
634
- for (let u = 0; u < ve; u++) {
635
- const a = s.current[u], f = i.current[u], y = h.current[u];
636
- if (!a) {
637
- f == null || f.setOpacity(0);
638
- continue;
639
- }
640
- const R = (p - a.start) / 1e3;
641
- f && y && (y.position.copy(a.from).add(w.set(0, -2.3, 0)), g.current[u] !== a.run + a.start && (g.current[u] = a.run + a.start, f.setText(`final answer - ${a.text.length > 64 ? a.text.slice(0, 62) + "…" : a.text}`)), f.setOpacity(Y(R / 0.3) * Y((5.2 - R) / 1.2)));
642
- const E = R / vo;
643
- if (E >= 1.25) continue;
644
- const N = 24 * (ee ? 0.6 : 1) * ye(Math.min(1, E)), U = 7.5 * Math.min(1, E * 3) * (E > 1 ? Math.max(0, 1 - (E - 1) / 0.25) : 1), V = E > 1 ? Math.max(0, 1 - (E - 1) / 0.25) : 1, D = -a.dir.y, H = a.dir.x;
645
- for (let O = 0; O < xe; O++)
646
- for (let j = 0; j < we; j++)
647
- for (let P = 0; P < 2; P++) {
648
- const I = (j + P) / we, k = (O - 1) * 0.05 * (1 - I);
649
- w.copy(a.from).addScaledVector(a.dir, N - U * (1 - I));
650
- const K = ((v * xe + O) * we + j) * 2 + P;
651
- c.setXYZ(K, w.x + D * k, w.y + H * k, w.z);
652
- const $ = Math.pow(I, 2) * (O === 1 ? 2.6 : 1.2) * V;
653
- l.setXYZ(K, a.color.r * $, a.color.g * $, a.color.b * $);
654
- }
655
- v++, b.copy(a.from).addScaledVector(a.dir, N), S.add(b, 1.3, X, 1.6 * V), S.add(b, 3.2, Ce, 0.35 * V);
656
- for (let O = 1; O <= Me; O++) {
657
- const j = O / Me * U;
658
- w.copy(a.from).addScaledVector(a.dir, N - j), w.y += Math.sin(O * 2.3 + a.start) * 0.08, S.add(w, 0.5 * (1 - O / (Me + 1)), a.color, 0.9 * V * (1 - O / (Me + 1)));
659
- }
660
- }
661
- M.setDrawRange(0, v * xe * we * 2), c.needsUpdate = !0, l.needsUpdate = !0, S.end();
662
- }), /* @__PURE__ */ W(oe, { children: [
663
- /* @__PURE__ */ m("lineSegments", { geometry: M, material: z, frustumCulled: !1 }),
664
- /* @__PURE__ */ m("primitive", { object: S.obj }),
665
- Array.from({ length: ve }, (p, c) => /* @__PURE__ */ m("group", { ref: (l) => void (h.current[c] = l), children: /* @__PURE__ */ m(Se, { ref: (l) => void (i.current[c] = l), text: "", color: "#e0e7ff", size: 0.26, maxWidth: 11, opacity: 0, pxRange: [8, 12], renderOrder: 24 }) }, c))
666
- ] });
667
- }
668
- function bo() {
669
- const [e, t] = Re([]), r = B(/* @__PURE__ */ new Set()), n = B(-1);
670
- return Z(() => {
671
- const s = T.runs;
672
- let i = s.size !== r.current.size || n.current !== he.version;
673
- if (!i)
674
- for (const h of s.keys()) r.current.has(h) || (i = !0);
675
- i && (r.current = new Set(s.keys()), n.current = he.version, t([...s.values()].filter((h) => tt(h.id))));
676
- }), /* @__PURE__ */ W(oe, { children: [
677
- e.map((s) => /* @__PURE__ */ m(mo, { run: s }, s.id)),
678
- /* @__PURE__ */ m(wo, {})
679
- ] });
680
- }
681
- const yo = (
682
- /* glsl */
683
- `
684
- varying vec3 vDir;
685
- void main(){ vDir = normalize(position); gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); }`
686
- ), So = (
687
- /* glsl */
688
- `
689
- varying vec3 vDir;
690
- float h(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); }
691
- float n(vec2 p){ vec2 i = floor(p); vec2 f = fract(p); f = f*f*(3.0-2.0*f);
692
- return mix(mix(h(i), h(i+vec2(1,0)), f.x), mix(h(i+vec2(0,1)), h(i+vec2(1,1)), f.x), f.y); }
693
- float fbm(vec2 p){ float s = 0.0, a = 0.5; for (int i = 0; i < 5; i++){ s += a*n(p); p *= 2.03; a *= 0.5; } return s; }
694
- void main(){
695
- vec3 d = normalize(vDir);
696
- // zenith indigo → horizon deep navy
697
- vec3 top = vec3(0.007, 0.009, 0.042);
698
- vec3 mid = vec3(0.0035, 0.0045, 0.02);
699
- vec3 low = vec3(0.0012, 0.0016, 0.007);
700
- float y = d.y;
701
- vec3 col = y > 0.0 ? mix(mid, top, smoothstep(0.0, 0.85, y)) : mix(mid, low, smoothstep(0.0, -0.7, y));
702
- // Milky Way: a soft dusty band tilted across the sky
703
- vec3 bn = normalize(vec3(0.42, 0.9, -0.12));
704
- float band = exp(-pow(dot(d, bn) / 0.2, 2.0));
705
- vec2 uv = vec2(atan(d.x, -d.z), dot(d, bn)) * vec2(3.0, 9.0);
706
- float dust = fbm(uv * 1.3);
707
- float lanes = smoothstep(0.45, 0.75, fbm(uv * 2.4 + 7.0));
708
- col += band * max(vec3(0.0), vec3(0.010, 0.012, 0.03) * (0.3 + dust * dust * 1.4) - vec3(0.006, 0.007, 0.014) * lanes);
709
- gl_FragColor = vec4(col, 1.0);
710
- }`
711
- ), Mo = (
712
- /* glsl */
713
- `
714
- attribute float aSize; attribute float aPhase; attribute vec3 aColor;
715
- uniform float uTime; uniform float uScale; varying vec3 vC;
716
- void main(){
717
- vec4 mv = modelViewMatrix * vec4(position, 1.0);
718
- float tw = 0.78 + 0.22 * sin(uTime * (0.6 + fract(aPhase * 7.3) * 1.6) + aPhase * 6.2831);
719
- vC = aColor * tw;
720
- gl_PointSize = max(1.0, aSize * uScale / -mv.z);
721
- gl_Position = projectionMatrix * mv;
722
- }`
723
- ), xo = (
724
- /* glsl */
725
- `
726
- varying vec3 vC;
727
- void main(){ float r = length(gl_PointCoord - 0.5) * 2.0; if (r > 1.0) discard;
728
- float core = smoothstep(0.5, 0.0, r); float halo = pow(1.0 - r, 3.0);
729
- gl_FragColor = vec4(vC * (core + halo * 0.35), 1.0); }`
730
- ), it = ["#ffffff", "#dbe7ff", "#b9cdff", "#9fb8ff", "#fff3dd", "#ffe2bf"].map((e) => new o.Color(e));
731
- function Ao() {
732
- const { size: e, gl: t, camera: r } = Te(), n = C(() => {
733
- const i = ee ? 1600 : 3200, h = new Float32Array(i * 3), g = new Float32Array(i), M = new Float32Array(i), z = new Float32Array(i * 3), S = new o.Vector3(0.42, 0.9, -0.12).normalize(), d = new o.Vector3();
734
- let p = 1234567;
735
- const c = () => (p = p * 16807 % 2147483647) / 2147483647;
736
- for (let v = 0; v < i; v++) {
737
- for (let f = 0; f < 8 && (d.set(c() * 2 - 1, c() * 2 - 1, c() * 2 - 1), !(!(d.lengthSq() > 1 || d.lengthSq() < 0.01) && (d.normalize(), !(v % 5 < 2 && Math.abs(d.dot(S)) > 0.22)))); f++)
738
- ;
739
- d.z > 0.3 && (d.z *= -1);
740
- const b = 110 + c() * 60;
741
- h.set([d.x * b, d.y * b, d.z * b], v * 3);
742
- const w = Math.pow(c(), 3.2);
743
- g[v] = 0.55 + w * 2.6, M[v] = c();
744
- const u = it[Math.floor(c() * it.length)], a = 0.22 + w * 0.75;
745
- z.set([u.r * a, u.g * a, u.b * a], v * 3);
746
- }
747
- const l = new o.BufferGeometry();
748
- return l.setAttribute("position", new o.BufferAttribute(h, 3)), l.setAttribute("aSize", new o.BufferAttribute(g, 1)), l.setAttribute("aPhase", new o.BufferAttribute(M, 1)), l.setAttribute("aColor", new o.BufferAttribute(z, 3)), l;
749
- }, []), s = C(
750
- () => ({
751
- dome: new o.ShaderMaterial({ vertexShader: yo, fragmentShader: So, side: o.BackSide, depthWrite: !1 }),
752
- stars: new o.ShaderMaterial({ uniforms: { uTime: { value: 0 }, uScale: { value: 400 } }, vertexShader: Mo, fragmentShader: xo, transparent: !0, depthWrite: !1, blending: o.AdditiveBlending })
753
- }),
754
- []
755
- );
756
- return Z(({ clock: i }) => {
757
- s.stars.uniforms.uTime.value = ee ? 0 : i.elapsedTime, s.stars.uniforms.uScale.value = e.height * t.getPixelRatio() / (2 * Math.tan(r.fov * Math.PI / 360)) * 0.22;
758
- }), /* @__PURE__ */ W(oe, { children: [
759
- /* @__PURE__ */ m("mesh", { material: s.dome, renderOrder: -10, frustumCulled: !1, children: /* @__PURE__ */ m("sphereGeometry", { args: [400, 48, 32] }) }),
760
- /* @__PURE__ */ m("points", { geometry: n, material: s.stars, frustumCulled: !1, renderOrder: -9 })
761
- ] });
762
- }
763
- const Co = new o.Color("#6f7fb8"), zo = new o.Color("#ff6b7a"), Je = 0.95, Po = new o.MeshBasicMaterial({ colorWrite: !1, depthWrite: !1, transparent: !0, opacity: 0 });
764
- function To({ inst: e, onSelect: t }) {
765
- const r = B(null), n = B(null), s = B(null), i = B(null), h = B(null), g = B(null), M = B(null), z = B(null), S = C(() => [...e.id].reduce((w, u) => (w * 31 + u.charCodeAt(0)) % 9973, 7) / 9973, [e.id]), d = je[e.type], p = C(
766
- () => ({
767
- halo: ue(ze(), d),
768
- spikes: ue(Dt(), d),
769
- core: ue(ze(), "#fff"),
770
- flare: ue(pt(), d),
771
- corona: new o.MeshBasicMaterial({ color: Ye, blending: o.AdditiveBlending, transparent: !0, depthWrite: !1, toneMapped: !1 }),
772
- sel: new o.MeshBasicMaterial({ color: "#dbe7ff", blending: o.AdditiveBlending, transparent: !0, depthWrite: !1, toneMapped: !1 })
773
- }),
774
- [d]
775
- ), c = C(
776
- () => ({ pos: new o.Vector3(), live: new o.Vector3(), init: !1, calls: e.llmCalls, flareAt: -1e9, flareK: 1, coronaK: 0, selK: 0, c: new o.Color() }),
777
- // eslint-disable-next-line react-hooks/exhaustive-deps
778
- []
779
- ), l = _t(e);
780
- qe(() => (J.set(e.id, c.live), () => {
781
- J.get(e.id) === c.live && J.delete(e.id);
782
- }), [e.id, c]), qe(() => {
783
- p.spikes.rotation = (S - 0.5) * 0.5;
784
- }, [p, S]), Z(({ clock: w }) => {
785
- var ce, Q, A;
786
- const u = performance.now(), a = w.elapsedTime, f = mt(e);
787
- c.init ? c.pos.lerp(f, 0.05) : (c.pos.copy(f), c.init = !0);
788
- const y = ee ? 0 : 0.05;
789
- c.live.set(c.pos.x + Math.sin(a * 0.21 + S * 20) * y, c.pos.y + Math.cos(a * 0.17 + S * 13) * y, c.pos.z), (ce = r.current) == null || ce.position.copy(c.live), (Q = r.current) == null || Q.scale.setScalar(Et());
790
- const R = (u - e.bornAt) / 1e3, E = e.parent && T.instances.has(e.parent) ? Je * 0.85 : 0.05, L = Y((R - E) / 0.55), N = ye(L), U = L > 0 ? Math.exp(-(R - E) * 3.2) : 0, V = e.exitAt ? (u - e.exitAt) / 1e3 : -1, D = V >= 0 ? Ae(V / 0.7) : 0, H = V >= 0 ? Y((V - 0.7) / 1.7) : 0, O = V < 0;
791
- e.llmCalls !== c.calls && (c.calls = e.llmCalls, c.flareAt = u, c.flareK = e.pulse);
792
- const j = (u - c.flareAt) / 1e3, P = Ot(e, u);
793
- let I = !1;
794
- for (const x of T.mcpPending.values()) x.instance === e.id && (I = !0);
795
- const k = O && (e.status === "thinking" || e.status === "spawning"), K = ee ? 0 : 1, $ = 1 + (k ? 0.16 : 0.05) * Math.sin(a * 3.3 + S * 40) * Math.sin(a * 1.9 + S * 17) * K, ne = (k ? 1 : 0.62) * $ + P * 0.25 + U * 1.2;
796
- c.c.copy(d), O || c.c.lerp(e.status === "failed" ? zo : Co, D);
797
- const q = (1 - D * 0.8) * (1 - H), ie = l * N * (1 - D * 0.62);
798
- if (i.current && (i.current.scale.setScalar(Math.max(1e-4, ie * (0.95 + P * 0.12))), p.core.color.copy(X).lerp(c.c, D).multiplyScalar(Math.min(1.6, ne) * q)), n.current && (n.current.scale.setScalar(Math.max(1e-4, ie * (k ? 3.4 : 2.7) * (1 + P * 0.18))), p.halo.color.copy(c.c).multiplyScalar(0.42 * ne * q)), s.current) {
799
- const x = j < 1.2 ? Math.exp(-j * 2.6) * c.flareK * 0.5 : 0, F = (k ? 1 : 0.55) * (1 - D);
800
- s.current.scale.setScalar(Math.max(1e-4, ie * (3 + P * 1.2 + x * 4 + U * 3))), p.spikes.color.copy(c.c).lerp(X, 0.3).multiplyScalar((0.55 * F * $ + P * 0.25 + x * 0.6 + U) * q);
801
- }
802
- if (h.current) {
803
- const x = j < 1.1 && O;
804
- if (h.current.visible = x, x) {
805
- const F = ye(j / 1.1);
806
- h.current.scale.setScalar(l * (0.8 + F * (1.6 + c.flareK * 1.4))), p.flare.color.copy(c.c).lerp(X, 0.4).multiplyScalar((1 - F) * (1 - F) * (0.35 + c.flareK * 0.3));
807
- }
808
- }
809
- if (c.coronaK += ((I && O ? 1 : 0) - c.coronaK) * 0.08, g.current) {
810
- g.current.visible = c.coronaK > 0.02;
811
- const x = 0.75 + 0.25 * Math.sin(a * 2.4) * K;
812
- g.current.scale.setScalar(l * (0.95 + 0.06 * x)), g.current.rotation.z = a * 0.6 * K, p.corona.color.copy(Ye).multiplyScalar(1.4 * c.coronaK * x);
813
- }
814
- c.selK += ((T.selected === e.id ? 1 : 0) - c.selK) * 0.12, M.current && (M.current.visible = c.selK > 0.02, M.current.scale.setScalar(l * (1.1 + (1 - c.selK) * 0.5)), p.sel.color.setScalar(0.9 * c.selK * q)), (A = z.current) == null || A.setOpacity(jt(e.id) ? N * (O ? 0.95 : 0.6 * (1 - H)) : 0);
815
- });
816
- const v = (w) => {
817
- w.stopPropagation(), t(e.id);
818
- }, b = e.id.split(":")[2];
819
- return /* @__PURE__ */ W("group", { ref: r, children: [
820
- /* @__PURE__ */ m("mesh", { geometry: nt, material: Po, scale: 0.75 * l, onClick: v, onPointerOver: () => document.body.style.cursor = "pointer", onPointerOut: () => document.body.style.cursor = "" }),
821
- /* @__PURE__ */ m("sprite", { ref: n, material: p.halo, scale: 1e-4 }),
822
- /* @__PURE__ */ m("sprite", { ref: s, material: p.spikes, scale: 1e-4 }),
823
- /* @__PURE__ */ m("sprite", { ref: i, material: p.core, scale: 1e-4 }),
824
- /* @__PURE__ */ m("sprite", { ref: h, material: p.flare, visible: !1 }),
825
- /* @__PURE__ */ m("mesh", { ref: g, geometry: at, material: p.corona, visible: !1 }),
826
- /* @__PURE__ */ m("mesh", { ref: M, geometry: at, material: p.sel, visible: !1 }),
827
- /* @__PURE__ */ m(
828
- Se,
829
- {
830
- ref: z,
831
- position: [0, -0.95 * l - 0.35, 0],
832
- text: `${e.name}${b !== void 0 ? ` ${Number(b) + 1}` : ""}`,
833
- color: et[e.type],
834
- size: e.subagent ? 0.22 : 0.28,
835
- letterSpacing: 0.02,
836
- opacity: 0,
837
- pxRange: e.subagent ? [8, 11.5] : [9, 13.5]
838
- }
839
- )
840
- ] });
841
- }
842
- function Ro({ onSelect: e }) {
843
- const [t, r] = Re([]), n = B(/* @__PURE__ */ new Set()), s = B(-1);
844
- return Z(() => {
845
- const i = T.instances;
846
- let h = i.size !== n.current.size || s.current !== he.version;
847
- if (!h)
848
- for (const g of i.keys()) n.current.has(g) || (h = !0);
849
- h && (n.current = new Set(i.keys()), s.current = he.version, r([...i.values()].filter(kt)));
850
- }), /* @__PURE__ */ m(oe, { children: t.map((i) => /* @__PURE__ */ m(To, { inst: i, onSelect: e }, i.id)) });
851
- }
852
- const ct = 96, lt = 32;
853
- function Bo() {
854
- const { size: e, gl: t, camera: r } = Te(), n = C(() => new rt(ct + lt, 28), []), s = C(() => new Pe(ct), []), i = C(() => new Le(lt), []), h = C(() => /* @__PURE__ */ new Map(), []), g = C(() => ({ ctrl: new o.Vector3(), h: new o.Vector3(), col: new o.Color(), a: new o.Vector3(), b: new o.Vector3() }), []);
855
- return Z(({ clock: M }) => {
856
- const z = performance.now(), S = ee ? 0 : M.elapsedTime;
857
- i.setScale(e.height, t.getPixelRatio(), r.fov), n.begin(), s.begin(), i.begin();
858
- const { ctrl: d, col: p, h: c } = g;
859
- for (const l of h.keys()) T.instances.has(l) || h.delete(l);
860
- for (const l of T.instances.values()) {
861
- if (!l.parent) continue;
862
- const v = J.get(l.parent), b = J.get(l.id), w = T.instances.get(l.parent);
863
- if (!v || !b) continue;
864
- const u = w && !w.exitAt && !l.exitAt ? 1 : 0;
865
- let a = h.get(l.id) ?? 0;
866
- const f = (z - l.bornAt) / 1e3;
867
- if (u && f < Je && (a = 1), a += (u - a) * (u ? 0.08 : 0.03), h.set(l.id, a), a < 0.01) continue;
868
- const y = v.distanceTo(b) || 1, R = Math.min(0.3, 0.55 * (w ? 1.35 : 1) / y), E = Math.min(0.3, 0.5 / y), L = Ae(f / Je);
869
- d.copy(v).add(b).multiplyScalar(0.5);
870
- const N = R + (1 - E - R) * L;
871
- p.copy(je[l.type]).lerp(Ce, 0.5);
872
- const U = L < 1;
873
- n.add(v, d, b, p, (U ? 0.8 : 0.62) * a, R, N, U ? 0 : 0.55 * a, 1, S, U ? N : -1, 2.2), U ? (de(v, d, b, N, c), i.add(c, 0.55, X, 1.3)) : s.add(v, d, b, 1 - E - 0.04, 1, l.subagent ? 0.32 : 0.4, p, 0.95 * a);
874
- }
875
- for (const l of T.comets) {
876
- const v = J.get(l.from), b = J.get(l.to);
877
- if (!v || !b) continue;
878
- const w = Y((z - l.start) / l.dur);
879
- if (w >= 1) continue;
880
- const u = T.instances.get(l.from), a = T.instances.get(l.to);
881
- (a == null ? void 0 : a.parent) === l.from || (u == null ? void 0 : u.parent) === l.to ? d.copy(v).add(b).multiplyScalar(0.5) : be(v, b, 1.4, 0.8, d);
882
- const y = Ae(w);
883
- p.copy(u ? je[u.type] : Ce).lerp(X, 0.45);
884
- const R = Math.min(1, w / 0.1) * Math.min(1, (1 - w) / 0.15);
885
- n.add(v, d, b, p, 0.9 * R, Math.max(0, y - 0.2), y, 0, 1, S, y, 1.6 * R), de(v, d, b, y, c), i.add(c, 0.8, p, 1.4 * R);
886
- }
887
- n.end(), s.end(), i.end();
888
- }), /* @__PURE__ */ W(oe, { children: [
889
- /* @__PURE__ */ m("primitive", { object: n.obj }),
890
- /* @__PURE__ */ m("primitive", { object: s.mesh }),
891
- /* @__PURE__ */ m("primitive", { object: i.obj })
892
- ] });
893
- }
894
- function Vo() {
895
- return Z(() => {
896
- Lt(), Nt();
897
- }), null;
898
- }
899
- function ko({ children: e }) {
900
- return /* @__PURE__ */ m("group", { position: [-1.6, 0, 0], children: e });
901
- }
902
- function No() {
903
- const e = Ft(), [t, r] = Re(null);
904
- return /* @__PURE__ */ W("div", { className: "scene-root", style: { background: "#040618" }, children: [
905
- /* @__PURE__ */ W(yt, { camera: { position: [0, 0, 34], fov: 46, far: 1200 }, dpr: [1, 2], gl: { antialias: !0, powerPreference: "high-performance" }, onPointerMissed: () => r(null), children: [
906
- /* @__PURE__ */ m("color", { attach: "background", args: ["#040618"] }),
907
- /* @__PURE__ */ m(Vo, {}),
908
- /* @__PURE__ */ m(Ao, {}),
909
- /* @__PURE__ */ W(ko, { children: [
910
- /* @__PURE__ */ m(so, { galaxy: e }),
911
- /* @__PURE__ */ m(bo, {}),
912
- /* @__PURE__ */ m(ho, {}),
913
- /* @__PURE__ */ m(Bo, {}),
914
- /* @__PURE__ */ m(Ro, { onSelect: r }),
915
- /* @__PURE__ */ m(Jt, {})
916
- ] }),
917
- /* @__PURE__ */ m(bt, { makeDefault: !0, enablePan: !1, enableDamping: !0, dampingFactor: 0.06, minDistance: 14, maxDistance: 52, minPolarAngle: Math.PI * 0.22, maxPolarAngle: Math.PI * 0.78, minAzimuthAngle: -Math.PI * 0.35, maxAzimuthAngle: Math.PI * 0.35 }),
918
- /* @__PURE__ */ W(St, { multisampling: 0, children: [
919
- /* @__PURE__ */ m(Mt, { mipmapBlur: !0, intensity: 0.95, luminanceThreshold: 0.22, luminanceSmoothing: 0.35, radius: 0.7 }),
920
- /* @__PURE__ */ m(xt, { eskil: !1, offset: 0.25, darkness: 0.75 })
921
- ] })
922
- ] }),
923
- /* @__PURE__ */ m(
924
- Gt,
925
- {
926
- title: "constellation · night sky",
927
- subtitle: "Agents are stars (brighter = parent) · delegation draws constellation lines · stars flare on LLM calls · ◉ MCP planets with backend moons · the graph nebula lights on reads/writes · ✦ final answer = shooting star",
928
- selected: t,
929
- onClose: () => r(null)
930
- }
931
- )
932
- ] });
933
- }
934
- export {
935
- No as default
936
- };