agentglow 0.2.10 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -16
- package/cli/agentglow.mjs +22 -3
- package/cli/lib/server.mjs +44 -13
- package/cli/lib/settings.mjs +3 -3
- package/dist/chunks/KitScene-Cug87OSc.js +3121 -0
- package/dist/chunks/index-B0urBeRS.js +48 -0
- package/dist/chunks/index-BM4W1tNM.js +495 -0
- package/dist/chunks/{index-D-r9aJ4u.js → index-BTFr1mn1.js} +175 -175
- package/dist/chunks/index-Cj5cs1rS.js +948 -0
- package/dist/chunks/{index-_IwfbZy7.js → index-iZBODPwI.js} +175 -175
- package/dist/chunks/index-ueGnGU_X.js +838 -0
- package/dist/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/types/themes.d.ts +1 -1
- package/dist/types/world.d.ts +71 -6
- package/package.json +1 -1
- package/dist/chunks/KitScene-Bm1I35Zc.js +0 -3041
- package/dist/chunks/index-AugvjZJN.js +0 -838
- package/dist/chunks/index-BAQDf-0T.js +0 -492
- package/dist/chunks/index-BRnLrSfZ.js +0 -605
- package/dist/chunks/index-BWsSd_Wm.js +0 -784
- package/dist/chunks/index-C2vLpNCb.js +0 -980
- package/dist/chunks/index-CGTp73GN.js +0 -1010
- package/dist/chunks/index-CKyn9lcT.js +0 -753
- package/dist/chunks/index-COLbf8XM.js +0 -1086
- package/dist/chunks/index-CnoB0ZDk.js +0 -889
- package/dist/chunks/index-D4Wlmsay.js +0 -68
- package/dist/chunks/index-KmczAvvY.js +0 -818
- package/dist/chunks/index-Z4vdWCok.js +0 -763
- package/dist/chunks/index-cRPj-lzn.js +0 -1143
- package/dist/chunks/index-uZGu9jzU.js +0 -887
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var te = (e, r, t) =>
|
|
1
|
+
var nt = Object.defineProperty;
|
|
2
|
+
var rt = (e, r, t) => r in e ? nt(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
|
|
3
|
+
var te = (e, r, t) => rt(e, typeof r != "symbol" ? r + "" : r, t);
|
|
4
4
|
import { jsxs as Y, Fragment as de, jsx as u } from "react/jsx-runtime";
|
|
5
|
-
import { Stars as
|
|
6
|
-
import { EffectComposer as
|
|
7
|
-
import { useFrame as re, useThree as
|
|
8
|
-
import { useRef as z, useMemo as P, useEffect as
|
|
5
|
+
import { Stars as at } from "@react-three/drei";
|
|
6
|
+
import { EffectComposer as st, Bloom as it, Vignette as ct } from "@react-three/postprocessing";
|
|
7
|
+
import { useFrame as re, useThree as lt } from "@react-three/fiber";
|
|
8
|
+
import { useRef as z, useMemo as P, useEffect as ut, useState as $e } from "react";
|
|
9
9
|
import * as o from "three";
|
|
10
|
-
import { T as Xe, w as L, a as ge, f as Ee, p as
|
|
11
|
-
const ee = (e) => e < 0 ? 0 : e > 1 ? 1 : e, Ie = (e) => 1 - Math.pow(1 - ee(e), 3), Me = (e) => (e = ee(e), e < 0.5 ? 4 * e * e * e : 1 - Math.pow(-2 * e + 2, 3) / 2),
|
|
10
|
+
import { T as Xe, w as L, a as ge, f as Ee, p as pt, e as ft, s as dt, r as fe, L as be, l as mt, g as ht, b as We, K as gt, o as vt, q as wt, G as yt, t as bt, R as Mt, u as St, v as Ct, m as De, c as Ye, d as At, n as xt } from "./KitScene-Cug87OSc.js";
|
|
11
|
+
const ee = (e) => e < 0 ? 0 : e > 1 ? 1 : e, Ie = (e) => 1 - Math.pow(1 - ee(e), 3), Me = (e) => (e = ee(e), e < 0.5 ? 4 * e * e * e : 1 - Math.pow(-2 * e + 2, 3) / 2), Rt = (e) => {
|
|
12
12
|
e = ee(e);
|
|
13
13
|
const r = 2.2;
|
|
14
14
|
return 1 + (r + 1) * Math.pow(e - 1, 3) + r * Math.pow(e - 1, 2);
|
|
15
15
|
}, Pe = Object.fromEntries(Object.entries(Xe).map(([e, r]) => [e, new o.Color(r)])), Fe = (e) => e === "graph_scout" || e === "records_scout" || e === "data_scout";
|
|
16
16
|
let Ae = null;
|
|
17
|
-
function
|
|
17
|
+
function Tt() {
|
|
18
18
|
if (Ae) return Ae;
|
|
19
19
|
const e = document.createElement("canvas");
|
|
20
20
|
e.width = e.height = 128;
|
|
@@ -22,12 +22,12 @@ function Rt() {
|
|
|
22
22
|
return t.addColorStop(0, "rgba(255,255,255,1)"), t.addColorStop(0.15, "rgba(255,255,255,0.6)"), t.addColorStop(0.45, "rgba(255,255,255,0.14)"), t.addColorStop(1, "rgba(255,255,255,0)"), r.fillStyle = t, r.fillRect(0, 0, 128, 128), Ae = new o.CanvasTexture(e), Ae;
|
|
23
23
|
}
|
|
24
24
|
function le(e = "#fff") {
|
|
25
|
-
return new o.SpriteMaterial({ map:
|
|
25
|
+
return new o.SpriteMaterial({ map: Tt(), color: e, blending: o.AdditiveBlending, depthWrite: !1, transparent: !0, toneMapped: !1 });
|
|
26
26
|
}
|
|
27
27
|
function se(e = "#fff") {
|
|
28
28
|
return new o.MeshBasicMaterial({ color: e, blending: o.AdditiveBlending, depthWrite: !1, transparent: !0, toneMapped: !1 });
|
|
29
29
|
}
|
|
30
|
-
function
|
|
30
|
+
function Vt(e = 64, r = 7) {
|
|
31
31
|
const t = [], n = [];
|
|
32
32
|
for (let a = 0; a <= e; a++) {
|
|
33
33
|
const i = a / e;
|
|
@@ -44,10 +44,10 @@ function Tt(e = 64, r = 7) {
|
|
|
44
44
|
const s = new o.BufferGeometry();
|
|
45
45
|
return s.setAttribute("position", new o.Float32BufferAttribute(t, 3)), s.setIndex(n), s.boundingSphere = new o.Sphere(new o.Vector3(), 1e4), s;
|
|
46
46
|
}
|
|
47
|
-
const
|
|
47
|
+
const Ze = Vt(), Ge = new o.SphereGeometry(1, 32, 24);
|
|
48
48
|
new o.SphereGeometry(1, 40, 28);
|
|
49
49
|
new o.IcosahedronGeometry(1, 1);
|
|
50
|
-
const
|
|
50
|
+
const Ke = new o.ConeGeometry(1, 1, 14).translate(0, 0.5, 0), Pt = new o.ConeGeometry(1, 1, 6, 1, !0).translate(0, 0.5, 0), Gt = (
|
|
51
51
|
/* glsl */
|
|
52
52
|
`
|
|
53
53
|
uniform vec3 uP0; uniform vec3 uP1; uniform vec3 uP2; uniform float uRadius; uniform float uTaper;
|
|
@@ -66,7 +66,7 @@ void main(){
|
|
|
66
66
|
vT = t;
|
|
67
67
|
gl_Position = projectionMatrix * mv;
|
|
68
68
|
}`
|
|
69
|
-
),
|
|
69
|
+
), zt = (
|
|
70
70
|
/* glsl */
|
|
71
71
|
`
|
|
72
72
|
uniform vec3 uColor; uniform float uOpacity; uniform float uGrow; uniform float uTime; uniform float uSpark; uniform float uFlow;
|
|
@@ -88,7 +88,7 @@ void main(){
|
|
|
88
88
|
gl_FragColor = vec4(col, 1.0);
|
|
89
89
|
}`
|
|
90
90
|
);
|
|
91
|
-
function
|
|
91
|
+
function Qe(e = "#fff", r = 0.06, t = 0.4) {
|
|
92
92
|
return new o.ShaderMaterial({
|
|
93
93
|
uniforms: {
|
|
94
94
|
uP0: { value: new o.Vector3() },
|
|
@@ -106,8 +106,8 @@ function Ze(e = "#fff", r = 0.06, t = 0.4) {
|
|
|
106
106
|
uTail: { value: 0.12 },
|
|
107
107
|
uHeadColor: { value: new o.Color(4, 4, 4) }
|
|
108
108
|
},
|
|
109
|
-
vertexShader:
|
|
110
|
-
fragmentShader:
|
|
109
|
+
vertexShader: Gt,
|
|
110
|
+
fragmentShader: zt,
|
|
111
111
|
transparent: !0,
|
|
112
112
|
depthWrite: !1,
|
|
113
113
|
blending: o.AdditiveBlending
|
|
@@ -122,7 +122,7 @@ function Oe(e, r, t, n) {
|
|
|
122
122
|
const s = Math.hypot(n.x, n.y) || 1;
|
|
123
123
|
return n.x += n.x / s * t, n.y += n.y / s * t, n.z += t * 0.9, n;
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function je(e, r, t) {
|
|
126
126
|
return e.r += r.r * t, e.g += r.g * t, e.b += r.b * t, e;
|
|
127
127
|
}
|
|
128
128
|
const Be = class Be {
|
|
@@ -135,7 +135,7 @@ const Be = class Be {
|
|
|
135
135
|
te(this, "a", new o.Vector3());
|
|
136
136
|
te(this, "b", new o.Vector3());
|
|
137
137
|
te(this, "d", new o.Vector3());
|
|
138
|
-
this.max = r, this.colors = new Float32Array(r * 3), this.mesh = new o.InstancedMesh(
|
|
138
|
+
this.max = r, this.colors = new Float32Array(r * 3), this.mesh = new o.InstancedMesh(Ke, new o.MeshBasicMaterial({ blending: o.AdditiveBlending, depthWrite: !1, transparent: !0, toneMapped: !1 }), r), this.mesh.instanceColor = new o.InstancedBufferAttribute(this.colors, 3), this.mesh.frustumCulled = !1, this.mesh.count = 0;
|
|
139
139
|
}
|
|
140
140
|
begin() {
|
|
141
141
|
this.n = 0;
|
|
@@ -150,12 +150,12 @@ const Be = class Be {
|
|
|
150
150
|
};
|
|
151
151
|
te(Be, "UP", new o.Vector3(0, 1, 0));
|
|
152
152
|
let ze = Be;
|
|
153
|
-
const _e = new o.Vector3(), xe = new o.Vector3(),
|
|
153
|
+
const _e = new o.Vector3(), xe = new o.Vector3(), Bt = new o.Vector3(0, 1, 0);
|
|
154
154
|
function He(e, r, t, n, s, a, i) {
|
|
155
|
-
ne(r, t, n, s, _e), ne(r, t, n, Math.min(1, Math.max(0, s + 0.02 * a)), xe), e.position.copy(_e), xe.sub(_e), xe.lengthSq() > 1e-8 && e.quaternion.setFromUnitVectors(
|
|
155
|
+
ne(r, t, n, s, _e), ne(r, t, n, Math.min(1, Math.max(0, s + 0.02 * a)), xe), e.position.copy(_e), xe.sub(_e), xe.lengthSq() > 1e-8 && e.quaternion.setFromUnitVectors(Bt, xe.normalize()), e.scale.set(i * 0.4, i, i * 0.4);
|
|
156
156
|
}
|
|
157
|
-
const
|
|
158
|
-
function
|
|
157
|
+
const Ot = new o.Color("#4b4a63"), Le = new o.Color("#fbbf24"), ye = /* @__PURE__ */ new Map();
|
|
158
|
+
function Et(e) {
|
|
159
159
|
const r = [], t = new o.Vector3(0, 1, 0), n = 10;
|
|
160
160
|
for (let s = 0; s < n; s++) {
|
|
161
161
|
const a = 1 - 2 * (s + 0.5) / n, i = Math.sqrt(1 - a * a), p = s * 2.39996 + e * 6.28;
|
|
@@ -163,49 +163,49 @@ function Ot(e) {
|
|
|
163
163
|
}
|
|
164
164
|
return r;
|
|
165
165
|
}
|
|
166
|
-
const
|
|
167
|
-
function
|
|
168
|
-
const t = e.inst, n = z(null), s = z(null), a = z(null), i = z(null), p = z(null), h = z(null), m = z(null), M = z(null), S = P(() => [...t.id].reduce((B, x) => (B * 31 + x.charCodeAt(0)) % 9973, 7) / 9973, [t.id]), F = P(() =>
|
|
166
|
+
const Ft = new o.TorusGeometry(1.25, 0.05, 8, 64);
|
|
167
|
+
function _t({ agent: e, onSelect: r }) {
|
|
168
|
+
const t = e.inst, n = z(null), s = z(null), a = z(null), i = z(null), p = z(null), h = z(null), m = z(null), M = z(null), S = P(() => [...t.id].reduce((B, x) => (B * 31 + x.charCodeAt(0)) % 9973, 7) / 9973, [t.id]), F = P(() => Et(S), [S]), C = Pe[t.type], g = P(
|
|
169
169
|
() => ({
|
|
170
170
|
core: se(C),
|
|
171
171
|
hot: se("#ffffff"),
|
|
172
172
|
spike: se(C),
|
|
173
173
|
ring: se(Le),
|
|
174
174
|
halo: le(C),
|
|
175
|
-
syn:
|
|
175
|
+
syn: Qe(C, Fe(t.type) ? 0.08 : 0.11, 0.8),
|
|
176
176
|
arrow: se(C)
|
|
177
177
|
}),
|
|
178
178
|
[C, t.type]
|
|
179
179
|
), c = P(() => ({ p0: new o.Vector3(), p1: new o.Vector3(), seedP: new o.Vector3(), p0set: !1, labelK: 1, spik: 0, ringK: 0, parentK: 1, c: new o.Color() }), []);
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
ut(() => (ye.set(t.id, c.p1), () => {
|
|
181
|
+
ye.get(t.id) === c.p1 && ye.delete(t.id);
|
|
182
182
|
}), [t.id, c]), re(({ clock: B }) => {
|
|
183
183
|
var D, ie, Q;
|
|
184
184
|
const x = performance.now(), _ = B.elapsedTime, k = fe ? 0 : 0.08 * Ee.spread;
|
|
185
185
|
e.live.set(e.pos.x + Math.sin(_ * 0.35 + S * 20) * k, e.pos.y + Math.cos(_ * 0.3 + S * 13) * k, e.pos.z);
|
|
186
186
|
const G = e.live, f = t.parent ? L.instances.get(t.parent) : void 0, T = t.parent ? ge(t.parent) : void 0;
|
|
187
187
|
T ? (c.p0.copy(T), c.p0set = !0) : c.p0set || (c.p0.copy(G), c.p0set = !0), Fe(t.type) || t.subagent ? c.p1.copy(c.p0).addScaledVector(e.run.axis, 1.7 * Ee.spread) : Oe(c.p0, G, 0.6, c.p1);
|
|
188
|
-
const
|
|
188
|
+
const W = (x - t.bornAt) / 1e3, I = t.parent ? Ie(W / 0.9) : 1, V = Rt((W - (t.parent ? 0.85 : 0.1)) / 0.7), j = t.exitAt ? (x - t.exitAt) / 1e3 : -1, N = mt(t) / 1e3, w = j >= 0 ? ee(j / (N * 0.92)) : 0, $ = pt(t, x);
|
|
189
189
|
let X = !1;
|
|
190
190
|
for (const H of L.mcpPending.values()) H.instance === t.id && (X = !0);
|
|
191
|
-
const d =
|
|
192
|
-
c.spik += ((d ? 1 : 0) - c.spik) * 0.06, c.ringK += ((X &&
|
|
193
|
-
const
|
|
194
|
-
(D = s.current) == null || D.scale.setScalar(Math.max(1e-4, l * (0.55 + b * 0.06 + (d ?
|
|
195
|
-
const v = d ? 0.75 +
|
|
196
|
-
if (c.c.copy(C).multiplyScalar(v + b * 0.35),
|
|
197
|
-
const H =
|
|
198
|
-
c.labelK += ((H ? 1 : 0) - c.labelK) * 0.12, m.current.setOpacity(ee(V) * (1 -
|
|
191
|
+
const d = j < 0 && (t.status === "thinking" || t.status === "spawning"), b = ft(t, x), O = fe ? 0 : 1, K = 0.5 + 0.5 * Math.sin(_ * 2 + S * 9) * O, Z = 0.5 + 0.5 * Math.sin(_ * 1 + S * 5) * O;
|
|
192
|
+
c.spik += ((d ? 1 : 0) - c.spik) * 0.06, c.ringK += ((X && j < 0 ? 1 : 0) - c.ringK) * 0.08, n.current && (I < 1 ? n.current.position.copy(ne(c.p0, c.p1, G, I, c.seedP)) : n.current.position.copy(G));
|
|
193
|
+
const U = I < 1 ? 0.18 : 0, l = Math.max(U, 0.18 + 0.82 * V) * (1 - w * w * 0.95) * e.scale;
|
|
194
|
+
(D = s.current) == null || D.scale.setScalar(Math.max(1e-4, l * (0.55 + b * 0.06 + (d ? K * 0.05 : Z * 0.04)))), (ie = a.current) == null || ie.scale.setScalar(Math.max(1e-4, c.spik * (0.85 + K * 0.15)));
|
|
195
|
+
const v = d ? 0.75 + K * 0.35 : 0.3 + Z * 0.15;
|
|
196
|
+
if (c.c.copy(C).multiplyScalar(v + b * 0.35), j >= 0 && c.c.lerp(Ot, w).multiplyScalar(1 - w * 0.75), g.core.color.copy(c.c), g.spike.color.copy(c.c).multiplyScalar(0.9), g.hot.color.setScalar((d ? 0.35 + K * 0.25 : 0.08) * (1 - w) + b * 0.2), i.current && (i.current.visible = c.ringK > 0.02, i.current.rotation.z = _ * 0.9, i.current.rotation.x = 1.1 + Math.sin(_ * 0.5) * 0.2, i.current.scale.setScalar(Math.max(1e-4, l * 0.55 * c.ringK)), g.ring.color.copy(Le).multiplyScalar(0.9 * c.ringK * (0.75 + Z * 0.25))), h.current && (h.current.scale.setScalar(Math.max(1e-4, l * (d ? 2.3 + K * 0.3 : 1.6) + b * 0.35)), g.halo.color.copy(C).multiplyScalar((d ? 0.22 : 0.09) * (1 - w) + b * 0.06)), (Q = M.current) == null || Q.position.set(0, -0.78 * e.scale - 0.25, 0), m.current) {
|
|
197
|
+
const H = dt(t.id);
|
|
198
|
+
c.labelK += ((H ? 1 : 0) - c.labelK) * 0.12, m.current.setOpacity(ee(V) * (1 - w) * 0.95 * c.labelK);
|
|
199
199
|
}
|
|
200
200
|
const E = !!f && !f.exitAt;
|
|
201
201
|
c.parentK += ((t.parent && !t.exitAt && E ? 1 : 0) - c.parentK) * (E ? 0.05 : 0.035);
|
|
202
202
|
const R = g.syn.uniforms;
|
|
203
203
|
R.uP0.value.copy(c.p0), R.uP1.value.copy(c.p1), R.uP2.value.copy(G);
|
|
204
|
-
const q =
|
|
204
|
+
const q = j >= 0 ? Me(j / (N * 0.64)) : 0;
|
|
205
205
|
if (R.uGrow.value = t.parent ? I * (1 - q) : 0, R.uSpark.value = 0, R.uHead.value = I < 1 ? I : -1, R.uTail.value = 0.1, R.uHeadColor.value.copy(C).multiplyScalar(1.5), R.uOpacity.value = (d ? 1.1 : 0.75) * Math.max(0, Math.min(c.parentK, $ > 0 ? 1 : 0)) + (I < 1 ? 0.4 : 0), R.uTime.value = fe ? 0 : _, R.uFlow.value = I >= 1 ? c.parentK : 0, p.current) {
|
|
206
206
|
const H = t.parent && I >= 1 && c.parentK > 0.05 && R.uGrow.value > 0.9;
|
|
207
207
|
if (p.current.visible = !!H, H) {
|
|
208
|
-
ne(c.p0, c.p1, G, 0.8, ke), ne(c.p0, c.p1, G, 0.86, qe), p.current.position.copy(ke), Ne.subVectors(qe, ke).normalize(), p.current.quaternion.setFromUnitVectors(
|
|
208
|
+
ne(c.p0, c.p1, G, 0.8, ke), ne(c.p0, c.p1, G, 0.86, qe), p.current.position.copy(ke), Ne.subVectors(qe, ke).normalize(), p.current.quaternion.setFromUnitVectors(kt, Ne);
|
|
209
209
|
const ue = (Fe(t.type) ? 0.75 : 1) * Math.min(1.3, Ee.scale);
|
|
210
210
|
p.current.scale.set(0.16 * ue, 0.42 * ue, 0.16 * ue), g.arrow.color.copy(C).multiplyScalar(1.6 * c.parentK);
|
|
211
211
|
}
|
|
@@ -213,23 +213,23 @@ function Ft({ agent: e, onSelect: r }) {
|
|
|
213
213
|
});
|
|
214
214
|
const A = (B) => {
|
|
215
215
|
B.stopPropagation(), r(t.id);
|
|
216
|
-
},
|
|
216
|
+
}, y = t.id.split(":")[2];
|
|
217
217
|
return /* @__PURE__ */ Y(de, { children: [
|
|
218
|
-
/* @__PURE__ */ u("mesh", { geometry:
|
|
219
|
-
/* @__PURE__ */ u("mesh", { ref: p, geometry:
|
|
218
|
+
/* @__PURE__ */ u("mesh", { geometry: Ze, material: g.syn, frustumCulled: !1 }),
|
|
219
|
+
/* @__PURE__ */ u("mesh", { ref: p, geometry: Ke, material: g.arrow, visible: !1 }),
|
|
220
220
|
/* @__PURE__ */ Y("group", { ref: n, children: [
|
|
221
221
|
/* @__PURE__ */ Y("group", { ref: s, scale: 1e-4, children: [
|
|
222
222
|
/* @__PURE__ */ u("mesh", { geometry: Ge, material: g.core, onClick: A, onPointerOver: () => document.body.style.cursor = "pointer", onPointerOut: () => document.body.style.cursor = "" }),
|
|
223
223
|
/* @__PURE__ */ u("mesh", { geometry: Ge, material: g.hot, scale: 0.5 }),
|
|
224
|
-
/* @__PURE__ */ u("group", { ref: a, scale: 1e-4, children: F.map((B, x) => /* @__PURE__ */ u("mesh", { geometry:
|
|
224
|
+
/* @__PURE__ */ u("group", { ref: a, scale: 1e-4, children: F.map((B, x) => /* @__PURE__ */ u("mesh", { geometry: Pt, material: g.spike, quaternion: B, scale: [0.2, 1.9, 0.2] }, x)) })
|
|
225
225
|
] }),
|
|
226
|
-
/* @__PURE__ */ u("mesh", { ref: i, geometry:
|
|
226
|
+
/* @__PURE__ */ u("mesh", { ref: i, geometry: Ft, material: g.ring, visible: !1 }),
|
|
227
227
|
/* @__PURE__ */ u("sprite", { ref: h, material: g.halo }),
|
|
228
228
|
/* @__PURE__ */ u("group", { ref: M, children: /* @__PURE__ */ u(
|
|
229
229
|
be,
|
|
230
230
|
{
|
|
231
231
|
ref: m,
|
|
232
|
-
text: `${t.name}${
|
|
232
|
+
text: `${t.name}${y !== void 0 ? ` ${Number(y) + 1}` : ""}`,
|
|
233
233
|
color: Xe[t.type],
|
|
234
234
|
size: t.subagent ? 0.22 : 0.3,
|
|
235
235
|
opacity: 0,
|
|
@@ -240,8 +240,8 @@ function Ft({ agent: e, onSelect: r }) {
|
|
|
240
240
|
] })
|
|
241
241
|
] });
|
|
242
242
|
}
|
|
243
|
-
const ke = new o.Vector3(), qe = new o.Vector3(), Ne = new o.Vector3(),
|
|
244
|
-
function
|
|
243
|
+
const ke = new o.Vector3(), qe = new o.Vector3(), Ne = new o.Vector3(), kt = new o.Vector3(0, 1, 0);
|
|
244
|
+
function It({ comet: e }) {
|
|
245
245
|
const r = z(null), t = L.instances.get(e.from), n = t ? Pe[t.type] : Pe.planner, s = P(() => le(new o.Color(n).multiplyScalar(1.8).addScalar(0.3)), [n]), a = P(() => ({ a: new o.Vector3(), b: new o.Vector3(), c: new o.Vector3(), h: new o.Vector3() }), []);
|
|
246
246
|
return re(() => {
|
|
247
247
|
const i = ge(e.from), p = ge(e.to);
|
|
@@ -249,25 +249,25 @@ function kt({ comet: e }) {
|
|
|
249
249
|
r.current && (r.current.visible = !1);
|
|
250
250
|
return;
|
|
251
251
|
}
|
|
252
|
-
const h = L.instances.get(e.to), m = (h == null ? void 0 : h.parent) === e.from ?
|
|
252
|
+
const h = L.instances.get(e.to), m = (h == null ? void 0 : h.parent) === e.from ? ye.get(e.to) : (t == null ? void 0 : t.parent) === e.to ? ye.get(e.from) : void 0;
|
|
253
253
|
a.a.copy(i), a.b.copy(p), m ? a.c.copy(m) : Oe(a.a, a.b, 1.2, a.c);
|
|
254
254
|
const M = ee((performance.now() - e.start) / e.dur);
|
|
255
255
|
ne(a.a, a.c, a.b, Me(M), a.h), r.current.visible = M < 1, r.current.position.copy(a.h), r.current.scale.setScalar(1.1);
|
|
256
256
|
}), /* @__PURE__ */ u("sprite", { ref: r, material: s, visible: !1 });
|
|
257
257
|
}
|
|
258
|
-
function
|
|
258
|
+
function Kt() {
|
|
259
259
|
const [e, r] = $e([]), t = z({ n: -1, last: -1, first: -1 });
|
|
260
260
|
return re(() => {
|
|
261
261
|
const n = L.comets, s = t.current, a = n.length ? n[0].id : -1, i = n.length ? n[n.length - 1].id : -1;
|
|
262
|
-
(n.length !== s.n || a !== s.first || i !== s.last) && (s.n = n.length, s.first = a, s.last = i, r(
|
|
263
|
-
}), /* @__PURE__ */ u(de, { children: e.map((n) => /* @__PURE__ */ u(
|
|
262
|
+
(n.length !== s.n || a !== s.first || i !== s.last) && (s.n = n.length, s.first = a, s.last = i, r(ht.grouped ? n.filter((p) => We(p.from) && We(p.to)) : n.slice()));
|
|
263
|
+
}), /* @__PURE__ */ u(de, { children: e.map((n) => /* @__PURE__ */ u(It, { comet: n }, n.id)) });
|
|
264
264
|
}
|
|
265
|
-
const oe = 3.3,
|
|
266
|
-
function
|
|
265
|
+
const oe = 3.3, Ut = 200, ce = 14, Re = 48, me = 16, pe = 8, Te = 4, ve = new o.Color(1, 1, 1), Wt = new o.Color("#a78bfa");
|
|
266
|
+
function jt(e, r = Ut) {
|
|
267
267
|
const t = e.nodes.slice(0, r), n = new Set(t.map((s) => s.id));
|
|
268
268
|
return { nodes: t, links: e.links.filter((s) => n.has(s.source) && n.has(s.target)) };
|
|
269
269
|
}
|
|
270
|
-
const
|
|
270
|
+
const Ht = (
|
|
271
271
|
/* glsl */
|
|
272
272
|
`
|
|
273
273
|
attribute float aSize; attribute vec3 aColor; varying vec3 vC; varying float vFacing; uniform float uScale;
|
|
@@ -276,20 +276,20 @@ void main(){
|
|
|
276
276
|
vec3 n = normalize(normalMatrix * normalize(position));
|
|
277
277
|
vFacing = 0.35 + 0.65 * smoothstep(-0.4, 0.5, dot(n, normalize(-mv.xyz))); // back side dimmer → depth
|
|
278
278
|
gl_PointSize = aSize * uScale / -mv.z; vC = aColor; gl_Position = projectionMatrix * mv; }`
|
|
279
|
-
),
|
|
279
|
+
), Lt = (
|
|
280
280
|
/* glsl */
|
|
281
281
|
`
|
|
282
282
|
varying vec3 vC; varying float vFacing;
|
|
283
283
|
void main(){ float r = length(gl_PointCoord - 0.5) * 2.0; if (r > 1.0) discard;
|
|
284
284
|
float core = smoothstep(0.45, 0.0, r); float halo = pow(1.0 - r, 2.2);
|
|
285
285
|
gl_FragColor = vec4(vC * vFacing * (core * 1.2 + halo * 0.45), 1.0); }`
|
|
286
|
-
),
|
|
286
|
+
), qt = (
|
|
287
287
|
/* glsl */
|
|
288
288
|
`
|
|
289
289
|
varying vec3 vN; varying vec3 vV; varying vec3 vObj;
|
|
290
290
|
void main(){ vec4 mv = modelViewMatrix * vec4(position, 1.0); vN = normalize(normalMatrix * normal); vV = normalize(-mv.xyz); vObj = normalize(position);
|
|
291
291
|
gl_Position = projectionMatrix * mv; }`
|
|
292
|
-
),
|
|
292
|
+
), Nt = (
|
|
293
293
|
/* glsl */
|
|
294
294
|
`
|
|
295
295
|
uniform vec3 uRim; uniform vec3 uInner; uniform float uTime;
|
|
@@ -313,14 +313,14 @@ void main(){
|
|
|
313
313
|
gl_FragColor = vec4(col, 1.0);
|
|
314
314
|
}`
|
|
315
315
|
);
|
|
316
|
-
function
|
|
317
|
-
const r = P(() =>
|
|
318
|
-
const c = new Float32Array(t * 3), A = [],
|
|
316
|
+
function $t({ galaxy: e }) {
|
|
317
|
+
const r = P(() => jt(e), [e]), t = r.nodes.length, { size: n, gl: s, camera: a } = lt(), i = z([]), p = z([]), h = z(Array(Te).fill("")), m = P(() => {
|
|
318
|
+
const c = new Float32Array(t * 3), A = [], y = Math.PI * (3 - Math.sqrt(5));
|
|
319
319
|
for (let d = 0; d < t; d++) {
|
|
320
|
-
const b = 1 - 2 * (d + 0.5) / t, O = Math.sqrt(1 - b * b),
|
|
321
|
-
A.push(
|
|
320
|
+
const b = 1 - 2 * (d + 0.5) / t, O = Math.sqrt(1 - b * b), K = new o.Vector3(Math.cos(d * y) * O, b, Math.sin(d * y) * O);
|
|
321
|
+
A.push(K), c.set([K.x * oe, K.y * oe, K.z * oe], d * 3);
|
|
322
322
|
}
|
|
323
|
-
const B = r.nodes.map((d) => new o.Color(
|
|
323
|
+
const B = r.nodes.map((d) => new o.Color(gt[d.kind] ?? "#94a3b8").lerp(Wt, 0.2).multiplyScalar(0.62)), x = new Float32Array(t), _ = new Float32Array(t * 3), k = new o.BufferGeometry();
|
|
324
324
|
k.setAttribute("position", new o.BufferAttribute(c, 3)), k.setAttribute("aSize", new o.BufferAttribute(x, 1)), k.setAttribute("aColor", new o.BufferAttribute(_, 3));
|
|
325
325
|
const G = new Map(r.nodes.map((d, b) => [d.id, b])), f = [], T = [];
|
|
326
326
|
for (const d of r.links) {
|
|
@@ -328,33 +328,33 @@ function Nt({ galaxy: e }) {
|
|
|
328
328
|
b !== void 0 && O !== void 0 && b !== O && A[b].angleTo(A[O]) < 1.25 && (f.push([b, O]), T.push(1));
|
|
329
329
|
}
|
|
330
330
|
for (let d = 0; d < t; d++) {
|
|
331
|
-
let b = -1, O = -1,
|
|
332
|
-
for (let
|
|
333
|
-
if (
|
|
334
|
-
const l = A[d].distanceToSquared(A[
|
|
335
|
-
l <
|
|
331
|
+
let b = -1, O = -1, K = 9, Z = 9;
|
|
332
|
+
for (let U = 0; U < t; U++) {
|
|
333
|
+
if (U === d) continue;
|
|
334
|
+
const l = A[d].distanceToSquared(A[U]);
|
|
335
|
+
l < K ? (O = b, Z = K, b = U, K = l) : l < Z && (O = U, Z = l);
|
|
336
336
|
}
|
|
337
337
|
b > d && (f.push([d, b]), T.push(0)), O > d && (f.push([d, O]), T.push(0));
|
|
338
338
|
}
|
|
339
|
-
const
|
|
339
|
+
const W = new Float32Array(f.length * ce * 2 * 3), I = new Float32Array(f.length * ce * 2 * 3), V = new Int32Array(f.length * ce * 2 * 2), j = new Uint8Array(f.length * ce * 2), N = new o.Quaternion(), w = new o.Vector3();
|
|
340
340
|
f.forEach(([d, b], O) => {
|
|
341
|
-
const
|
|
341
|
+
const K = A[d], Z = A[b], U = K.angleTo(Z), l = new o.Vector3().crossVectors(K, Z);
|
|
342
342
|
l.lengthSq() < 1e-6 && l.set(0, 1, 0), l.normalize();
|
|
343
343
|
for (let v = 0; v < ce; v++)
|
|
344
344
|
for (let E = 0; E < 2; E++) {
|
|
345
345
|
const R = (v + E) / ce;
|
|
346
|
-
N.setFromAxisAngle(l,
|
|
346
|
+
N.setFromAxisAngle(l, U * R), w.copy(K).applyQuaternion(N).multiplyScalar(oe * (1 + 0.06 * Math.sin(Math.PI * R) * Math.min(1, U)));
|
|
347
347
|
const q = (O * ce + v) * 2 + E;
|
|
348
|
-
|
|
348
|
+
W.set([w.x, w.y, w.z], q * 3), V[q * 2] = d, V[q * 2 + 1] = b, j[q] = T[O];
|
|
349
349
|
}
|
|
350
350
|
});
|
|
351
351
|
const $ = new o.BufferGeometry();
|
|
352
|
-
$.setAttribute("position", new o.BufferAttribute(
|
|
352
|
+
$.setAttribute("position", new o.BufferAttribute(W, 3)), $.setAttribute("color", new o.BufferAttribute(I, 3));
|
|
353
353
|
const X = new o.BufferGeometry();
|
|
354
|
-
return X.setAttribute("position", new o.BufferAttribute(new Float32Array(Re * me * 2 * 3), 3)), X.setAttribute("color", new o.BufferAttribute(new Float32Array(Re * me * 2 * 3), 3)), X.boundingSphere = new o.Sphere(new o.Vector3(), 1e4), { pos: c, unit: A, base: B, ngeo: k, ageo: $, owner: V, kindOf:
|
|
354
|
+
return X.setAttribute("position", new o.BufferAttribute(new Float32Array(Re * me * 2 * 3), 3)), X.setAttribute("color", new o.BufferAttribute(new Float32Array(Re * me * 2 * 3), 3)), X.boundingSphere = new o.Sphere(new o.Vector3(), 1e4), { pos: c, unit: A, base: B, ngeo: k, ageo: $, owner: V, kindOf: j, nArcV: f.length * ce * 2, bgeo: X, fire: new Float32Array(t), white: new Float32Array(t), fireC: Array.from({ length: t }, () => new o.Color()) };
|
|
355
355
|
}, [r, t]), M = P(
|
|
356
356
|
() => ({
|
|
357
|
-
nodes: new o.ShaderMaterial({ uniforms: { uScale: { value: 400 } }, vertexShader:
|
|
357
|
+
nodes: new o.ShaderMaterial({ uniforms: { uScale: { value: 400 } }, vertexShader: Ht, fragmentShader: Lt, transparent: !0, depthWrite: !1, blending: o.AdditiveBlending }),
|
|
358
358
|
arcs: new o.LineBasicMaterial({ vertexColors: !0, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }),
|
|
359
359
|
beam: new o.LineBasicMaterial({ vertexColors: !0, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }),
|
|
360
360
|
orb: new o.ShaderMaterial({
|
|
@@ -365,8 +365,8 @@ function Nt({ galaxy: e }) {
|
|
|
365
365
|
uRipC: { value: Array.from({ length: pe }, () => new o.Vector3(0, 1, 0)) },
|
|
366
366
|
uRipA: { value: new Array(pe).fill(-1) }
|
|
367
367
|
},
|
|
368
|
-
vertexShader:
|
|
369
|
-
fragmentShader:
|
|
368
|
+
vertexShader: qt,
|
|
369
|
+
fragmentShader: Nt,
|
|
370
370
|
transparent: !0,
|
|
371
371
|
depthWrite: !1,
|
|
372
372
|
blending: o.AdditiveBlending
|
|
@@ -377,66 +377,66 @@ function Nt({ galaxy: e }) {
|
|
|
377
377
|
[]
|
|
378
378
|
), S = P(() => /* @__PURE__ */ new Map(), []), F = P(() => new ze(Re), []), C = P(() => ({ v: new o.Vector3(), v2: new o.Vector3(), mid: new o.Vector3(), sp: new o.Vector3(), c: new o.Color(), c2: new o.Color() }), []), g = (c) => {
|
|
379
379
|
let A = S.get(c);
|
|
380
|
-
return A === void 0 && S.set(c, A =
|
|
380
|
+
return A === void 0 && S.set(c, A = bt(r, c)), A;
|
|
381
381
|
};
|
|
382
382
|
return re(({ clock: c }) => {
|
|
383
|
-
const A = performance.now(), { pos:
|
|
384
|
-
M.nodes.uniforms.uScale.value = n.height * s.getPixelRatio() / (2 * Math.tan(a.fov * Math.PI / 360)) *
|
|
385
|
-
const { v: f, v2: T, mid:
|
|
383
|
+
const A = performance.now(), { pos: y, base: B, fire: x, white: _, fireC: k, unit: G } = m;
|
|
384
|
+
M.nodes.uniforms.uScale.value = n.height * s.getPixelRatio() / (2 * Math.tan(a.fov * Math.PI / 360)) * vt.graph.scale, M.orb.uniforms.uTime.value = fe ? 0 : c.elapsedTime, x.fill(0), _.fill(0);
|
|
385
|
+
const { v: f, v2: T, mid: W, c: I, c2: V } = C, j = m.bgeo.getAttribute("position"), N = m.bgeo.getAttribute("color"), w = M.orb.uniforms.uRipC.value, $ = M.orb.uniforms.uRipA.value;
|
|
386
386
|
let X = 0;
|
|
387
387
|
F.begin();
|
|
388
388
|
let d = 0;
|
|
389
389
|
for (const l of L.flares) {
|
|
390
390
|
const v = g(l.node), E = (A - l.start) / 1e3, R = L.instances.get(l.instance), q = R ? Pe[R.type] : ve, D = l.op === "write", ie = E < 0.35 ? E / 0.35 : Math.exp(-(E - 0.35) * 1.2);
|
|
391
|
-
ie > x[v] && (x[v] = ie, k[v].copy(D ? ve : q), _[v] = D ? 1 : 0), D && E < 1.8 && d < pe && (
|
|
392
|
-
const Q = ge(l.instance), H = Q ?
|
|
391
|
+
ie > x[v] && (x[v] = ie, k[v].copy(D ? ve : q), _[v] = D ? 1 : 0), D && E < 1.8 && d < pe && (w[d].copy(G[v]), $[d] = E / 1.8, d++);
|
|
392
|
+
const Q = ge(l.instance), H = Q ? wt(Q, C.sp) : void 0;
|
|
393
393
|
if (H && E < 2.2 && X < Re) {
|
|
394
|
-
f.set(
|
|
395
|
-
const ue = Math.min(1, E / 0.3) * (1 - E / 2.2) ** 1.5,
|
|
394
|
+
f.set(y[v * 3], y[v * 3 + 1], y[v * 3 + 2]), W.copy(H).add(f).multiplyScalar(0.5), W.z += 1;
|
|
395
|
+
const ue = Math.min(1, E / 0.3) * (1 - E / 2.2) ** 1.5, tt = D ? Math.min(1, E * 0.85) : 1 - Math.min(1, E * 0.85);
|
|
396
396
|
for (let Se = 0; Se < me; Se++)
|
|
397
397
|
for (let Ce = 0; Ce < 2; Ce++) {
|
|
398
398
|
const J = (Se + Ce) / me, ae = 1 - J;
|
|
399
|
-
T.set(ae * ae * H.x + 2 * ae * J *
|
|
400
|
-
const
|
|
401
|
-
|
|
402
|
-
const
|
|
403
|
-
V.copy(D ? ve : q).multiplyScalar(ue * ((D ? 0.5 : 0.2) +
|
|
399
|
+
T.set(ae * ae * H.x + 2 * ae * J * W.x + J * J * f.x, ae * ae * H.y + 2 * ae * J * W.y + J * J * f.y, ae * ae * H.z + 2 * ae * J * W.z + J * J * f.z);
|
|
400
|
+
const Ue = (X * me + Se) * 2 + Ce;
|
|
401
|
+
j.setXYZ(Ue, T.x, T.y, T.z);
|
|
402
|
+
const ot = Math.exp(-(((J - tt) / 0.1) ** 2)) * 1.3;
|
|
403
|
+
V.copy(D ? ve : q).multiplyScalar(ue * ((D ? 0.5 : 0.2) + ot) * 0.75), N.setXYZ(Ue, V.r, V.g, V.b);
|
|
404
404
|
}
|
|
405
|
-
D ? F.add(H,
|
|
405
|
+
D ? F.add(H, W, f, 0.9, 1, 0.42, ve, ue * 1.1) : F.add(H, W, f, 0.1, -1, 0.42, q, ue * 1.3), X++;
|
|
406
406
|
}
|
|
407
407
|
}
|
|
408
408
|
for (let l = d; l < pe; l++) $[l] = -1;
|
|
409
|
-
m.bgeo.setDrawRange(0, X * me * 2), F.end(),
|
|
409
|
+
m.bgeo.setDrawRange(0, X * me * 2), F.end(), j.needsUpdate = !0, N.needsUpdate = !0;
|
|
410
410
|
const b = m.ngeo.getAttribute("aSize"), O = m.ngeo.getAttribute("aColor");
|
|
411
411
|
for (let l = 0; l < t; l++) {
|
|
412
412
|
const v = x[l];
|
|
413
|
-
b.setX(l, 0.21 + v * (0.55 + _[l] * 0.25)), I.copy(B[l]), v > 0.01 &&
|
|
413
|
+
b.setX(l, 0.21 + v * (0.55 + _[l] * 0.25)), I.copy(B[l]), v > 0.01 && je(je(I, k[l], v * 1.6), ve, v * (0.3 + _[l] * 1.2)), O.setXYZ(l, I.r, I.g, I.b);
|
|
414
414
|
}
|
|
415
415
|
b.needsUpdate = !0, O.needsUpdate = !0;
|
|
416
|
-
const
|
|
416
|
+
const K = m.ageo.getAttribute("color"), Z = m.owner;
|
|
417
417
|
for (let l = 0; l < m.nArcV; l++) {
|
|
418
418
|
const v = Z[l * 2], E = Z[l * 2 + 1], R = Math.max(x[v], x[E]), q = m.kindOf[l] ? 0.16 : 0.07;
|
|
419
|
-
|
|
419
|
+
K.setXYZ(l, 0.42 * q + R * 0.3, 0.36 * q + R * 0.3, 0.85 * q + R * 0.4);
|
|
420
420
|
}
|
|
421
|
-
|
|
422
|
-
let
|
|
423
|
-
for (let l = L.flares.length - 1; l >= 0 &&
|
|
421
|
+
K.needsUpdate = !0;
|
|
422
|
+
let U = 0;
|
|
423
|
+
for (let l = L.flares.length - 1; l >= 0 && U < Te; l--) {
|
|
424
424
|
const v = L.flares[l];
|
|
425
425
|
if (A - v.start > 2200) break;
|
|
426
426
|
let E = !1;
|
|
427
|
-
for (let Q = 0; Q <
|
|
427
|
+
for (let Q = 0; Q < U; Q++) h.current[Q] === v.node && (E = !0);
|
|
428
428
|
if (E) continue;
|
|
429
429
|
const R = g(v.node);
|
|
430
430
|
let q = !1;
|
|
431
|
-
for (let Q = 0; Q <
|
|
431
|
+
for (let Q = 0; Q < U; Q++) {
|
|
432
432
|
const H = p.current[Q];
|
|
433
|
-
H && Math.abs(H.position.y -
|
|
433
|
+
H && Math.abs(H.position.y - y[R * 3 + 1]) < 0.55 && Math.abs(H.position.x - y[R * 3]) < 3.2 && (q = !0);
|
|
434
434
|
}
|
|
435
435
|
if (q) continue;
|
|
436
|
-
const D = i.current[
|
|
437
|
-
D && ie && (ie.position.set(
|
|
436
|
+
const D = i.current[U], ie = p.current[U];
|
|
437
|
+
D && ie && (ie.position.set(y[R * 3], y[R * 3 + 1], y[R * 3 + 2]), h.current[U] !== v.node && (D.setText(`${v.op === "write" ? "wrote" : "read"} · ${v.node}`), D.setColor(v.op === "write" ? "#ffffff" : "#22d3ee")), D.setOpacity(1)), h.current[U] = v.node, U++;
|
|
438
438
|
}
|
|
439
|
-
for (let l =
|
|
439
|
+
for (let l = U; l < Te; l++) {
|
|
440
440
|
const v = i.current[l];
|
|
441
441
|
v == null || v.setOpacity(0), h.current[l] = "";
|
|
442
442
|
}
|
|
@@ -450,31 +450,31 @@ function Nt({ galaxy: e }) {
|
|
|
450
450
|
] }),
|
|
451
451
|
/* @__PURE__ */ u("lineSegments", { geometry: m.bgeo, material: M.beam, frustumCulled: !1 }),
|
|
452
452
|
/* @__PURE__ */ u("primitive", { object: F.mesh }),
|
|
453
|
-
Array.from({ length: Te }, (c, A) => /* @__PURE__ */ u("group", { ref: (
|
|
453
|
+
Array.from({ length: Te }, (c, A) => /* @__PURE__ */ u("group", { ref: (y) => void (p.current[A] = y), children: /* @__PURE__ */ u(be, { ref: (y) => void (i.current[A] = y), text: "", offset: [0, 0.42], size: 0.24, opacity: 0, fadeMs: 250, pxRange: [8, 12] }) }, A)),
|
|
454
454
|
/* @__PURE__ */ u(yt, { position: [0, -oe - 0.9, 0], color: "#a78bfa", size: 0.28, opacity: 0.7, pxRange: [8, 12] })
|
|
455
455
|
] });
|
|
456
456
|
}
|
|
457
|
-
function
|
|
457
|
+
function Xt({ run: e }) {
|
|
458
458
|
const r = P(() => new o.Color(e.color), [e.color]), t = P(() => le("#000"), []), n = z(null), s = z(null);
|
|
459
459
|
return re(({ clock: a }) => {
|
|
460
460
|
var C;
|
|
461
|
-
const i = performance.now(), p = e.run ?? L.runs.get(e.id), h = p ? Ie((i - p.startedAt) / 1200) : 1, m = p != null && p.endedAt ? ee(1 - (i - p.endedAt - (
|
|
461
|
+
const i = performance.now(), p = e.run ?? L.runs.get(e.id), h = p ? Ie((i - p.startedAt) / 1200) : 1, m = p != null && p.endedAt ? ee(1 - (i - p.endedAt - (Mt - 2500)) / 2500) : 1, M = 0.9 + 0.1 * Math.sin(a.elapsedTime * 0.6 + e.index);
|
|
462
462
|
t.color.copy(r).multiplyScalar(0.16 * h * m * M);
|
|
463
463
|
const S = Math.abs(e.side.x) * e.hu + Math.abs(e.axis.x) * e.hv, F = Math.abs(e.side.y) * e.hu + Math.abs(e.axis.y) * e.hv;
|
|
464
464
|
n.current && (n.current.position.set(e.origin.x, e.origin.y, -1.5), n.current.scale.set(S * 2.6 + 3, F * 2.6 + 3, 1)), (C = s.current) == null || C.position.set(e.origin.x, e.origin.y + F + 0.6, 0.5);
|
|
465
465
|
}), /* @__PURE__ */ Y(de, { children: [
|
|
466
466
|
/* @__PURE__ */ u("sprite", { ref: n, material: t }),
|
|
467
|
-
/* @__PURE__ */ u("group", { ref: s, children: e.run && /* @__PURE__ */ u(
|
|
467
|
+
/* @__PURE__ */ u("group", { ref: s, children: e.run && /* @__PURE__ */ u(Dt, { run: e.run }) })
|
|
468
468
|
] });
|
|
469
469
|
}
|
|
470
|
-
function
|
|
471
|
-
|
|
470
|
+
function Dt({ run: e }) {
|
|
471
|
+
St();
|
|
472
472
|
const r = e.status !== "started";
|
|
473
473
|
return /* @__PURE__ */ u(
|
|
474
474
|
be,
|
|
475
475
|
{
|
|
476
476
|
text: e.topic,
|
|
477
|
-
secondary:
|
|
477
|
+
secondary: Ct(e, { base: "#94a3b8", current: "#fde68a", done: "#cbd5e1" }, ["running…", "run complete"]),
|
|
478
478
|
color: e.color,
|
|
479
479
|
size: 0.34,
|
|
480
480
|
maxWidth: 10,
|
|
@@ -485,8 +485,8 @@ function Xt({ run: e }) {
|
|
|
485
485
|
}
|
|
486
486
|
);
|
|
487
487
|
}
|
|
488
|
-
const
|
|
489
|
-
function
|
|
488
|
+
const Yt = new o.Color("#fbbf24"), Zt = new o.Color("#ff2d3d"), Je = new o.Color(1, 1, 1), et = new o.OctahedronGeometry(0.8, 0), Qt = new o.EdgesGeometry(et);
|
|
489
|
+
function Jt(e) {
|
|
490
490
|
const r = (t, n, s) => ({ geo: t, edges: new o.EdgesGeometry(t, 25), pos: n, rot: s });
|
|
491
491
|
switch (e) {
|
|
492
492
|
case "db":
|
|
@@ -509,37 +509,37 @@ function Qt(e) {
|
|
|
509
509
|
return [r(new o.CapsuleGeometry(0.2, 0.75, 6, 16), void 0, [0, 0, Math.PI / 2])];
|
|
510
510
|
}
|
|
511
511
|
}
|
|
512
|
-
function
|
|
513
|
-
const t = e.srv, n = r.res, s = P(() =>
|
|
514
|
-
() => ({ edge:
|
|
512
|
+
function eo({ mcp: e, backend: r }) {
|
|
513
|
+
const t = e.srv, n = r.res, s = P(() => Jt(n.kind), [n.kind]), a = P(() => new o.Color(t.color).lerp(Je, 0.35), [t.color]), i = P(
|
|
514
|
+
() => ({ edge: Qe(t.color, 0.035, 1), arrow: se(a), fill: se(a), line: new o.LineBasicMaterial({ color: a, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }), halo: le(a) }),
|
|
515
515
|
[t.color, a]
|
|
516
516
|
), p = z(null), h = z(null), m = z(null), M = z(null), S = P(() => new o.Color(t.color), [t.color]), F = z(null), C = z("");
|
|
517
517
|
return re(({ clock: g }) => {
|
|
518
|
-
var
|
|
518
|
+
var j, N;
|
|
519
519
|
const c = i.edge.uniforms;
|
|
520
|
-
c.uP0.value.copy(e.pos), c.uP2.value.copy(r.pos), c.uP1.value.copy(e.pos).add(r.pos).multiplyScalar(0.5), (
|
|
521
|
-
const A = performance.now(),
|
|
522
|
-
i.fill.color.copy(a).multiplyScalar(_ * 0.55), i.line.color.copy(a).multiplyScalar(_ * 1.6), i.halo.color.copy(a).multiplyScalar(
|
|
520
|
+
c.uP0.value.copy(e.pos), c.uP2.value.copy(r.pos), c.uP1.value.copy(e.pos).add(r.pos).multiplyScalar(0.5), (j = p.current) == null || j.position.copy(r.pos);
|
|
521
|
+
const A = performance.now(), y = n.inflight > 0, B = De(n.activeAt, A, 1.5), x = y ? 0.5 + 0.5 * Math.sin(g.elapsedTime * 5) : 0, _ = y ? 1.6 + x * 0.9 : 0.12 + B * 0.9;
|
|
522
|
+
i.fill.color.copy(a).multiplyScalar(_ * 0.55), i.line.color.copy(a).multiplyScalar(_ * 1.6), i.halo.color.copy(a).multiplyScalar(y ? 0.45 + x * 0.25 : 0.02 + B * 0.25), (N = m.current) == null || N.scale.setScalar(y ? 4.2 + x * 0.8 : 2.4 + B * 1.2), h.current && h.current.scale.setScalar(y ? 1.2 + x * 0.08 : 1 + B * 0.1);
|
|
523
523
|
let k = n.name, G = null;
|
|
524
|
-
for (const
|
|
525
|
-
if (
|
|
526
|
-
let
|
|
527
|
-
for (const $ of L.mcpPending.values()) $.server === t.name && $.resource === n.name && (
|
|
528
|
-
k = `${n.name} ▶ ${
|
|
524
|
+
for (const w of L.mcpCalls) w.server === t.name && w.resource === n.name && (!G || w.start > G.start) && (G = w);
|
|
525
|
+
if (y) {
|
|
526
|
+
let w = "";
|
|
527
|
+
for (const $ of L.mcpPending.values()) $.server === t.name && $.resource === n.name && (w = $.tool);
|
|
528
|
+
k = `${n.name} ▶ ${w || "query"}()`;
|
|
529
529
|
} else G && G.phase === "result" && A - G.start < 1800 && (k = `${n.name} ✓ returned`);
|
|
530
|
-
F.current && (k !== C.current && (F.current.setText(k), C.current = k), F.current.setOpacity(
|
|
530
|
+
F.current && (k !== C.current && (F.current.setText(k), C.current = k), F.current.setOpacity(y ? 1 : 0.55 + B * 0.45), F.current.setEmphasis(y)), h.current && (h.current.rotation.y = n.kind === "spark" || n.kind === "api" ? g.elapsedTime * (y ? 0.6 : 0.15) : Math.sin(g.elapsedTime * 0.2) * 0.25);
|
|
531
531
|
const f = i.edge.uniforms;
|
|
532
532
|
f.uTime.value = fe ? 0 : g.elapsedTime;
|
|
533
533
|
let T = null;
|
|
534
|
-
for (const
|
|
535
|
-
const
|
|
534
|
+
for (const w of L.mcpCalls) w.server === t.name && w.resource === n.name && (!T || w.start > T.start) && (T = w);
|
|
535
|
+
const W = T && T.phase === "result" ? (A - T.start) / T.dur : 9, I = W < 1, V = M.current;
|
|
536
536
|
if (I) {
|
|
537
|
-
const
|
|
538
|
-
f.uRadius.value = 0.06, f.uOpacity.value = 0.9 * (1 -
|
|
539
|
-
} else
|
|
537
|
+
const w = Me(W);
|
|
538
|
+
f.uRadius.value = 0.06, f.uOpacity.value = 0.9 * (1 - W * 0.6), f.uFlow.value = 0, f.uHead.value = 1 - w, f.uTail.value = 0.2, f.uHeadColor.value.copy(a).multiplyScalar(3), V && (V.visible = !0, He(V, f.uP0.value, f.uP1.value, f.uP2.value, 0.12, -1, 0.55), i.arrow.color.copy(a).multiplyScalar(2 * (1 - W * 0.7)));
|
|
539
|
+
} else y ? (f.uRadius.value = 0.03, f.uOpacity.value = 0.45, f.uFlow.value = 1, f.uHead.value = -1, V && (V.visible = !0, He(V, f.uP0.value, f.uP1.value, f.uP2.value, 0.84, 1, 0.42), i.arrow.color.copy(S).multiplyScalar(1.1))) : (f.uRadius.value = 0.03, f.uOpacity.value = 0.15 + B * 0.4, f.uFlow.value = 0, f.uHead.value = -1, V && (V.visible = !1));
|
|
540
540
|
}), /* @__PURE__ */ Y(de, { children: [
|
|
541
|
-
/* @__PURE__ */ u("mesh", { geometry:
|
|
542
|
-
/* @__PURE__ */ u("mesh", { ref: M, geometry:
|
|
541
|
+
/* @__PURE__ */ u("mesh", { geometry: Ze, material: i.edge, frustumCulled: !1 }),
|
|
542
|
+
/* @__PURE__ */ u("mesh", { ref: M, geometry: Ke, material: i.arrow, visible: !1 }),
|
|
543
543
|
/* @__PURE__ */ Y("group", { ref: p, children: [
|
|
544
544
|
/* @__PURE__ */ u("sprite", { ref: m, material: i.halo }),
|
|
545
545
|
/* @__PURE__ */ u("group", { ref: h, children: s.map((g, c) => /* @__PURE__ */ Y("group", { position: g.pos, rotation: g.rot, children: [
|
|
@@ -550,7 +550,7 @@ function Jt({ mcp: e, backend: r }) {
|
|
|
550
550
|
] })
|
|
551
551
|
] });
|
|
552
552
|
}
|
|
553
|
-
function
|
|
553
|
+
function to({ mcp: e }) {
|
|
554
554
|
const r = e.srv, t = P(() => new o.Color(r.color), [r.color]), n = P(
|
|
555
555
|
() => ({ fill: se(t), line: new o.LineBasicMaterial({ color: t, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }), halo: le(t), core: se("#fff") }),
|
|
556
556
|
[t]
|
|
@@ -558,22 +558,22 @@ function eo({ mcp: e }) {
|
|
|
558
558
|
return re(({ clock: p }) => {
|
|
559
559
|
var F, C;
|
|
560
560
|
(F = s.current) == null || F.position.copy(e.pos);
|
|
561
|
-
const h = performance.now(), m = r.inflight > 0, M =
|
|
561
|
+
const h = performance.now(), m = r.inflight > 0, M = De(r.activeAt, h, 1.5), S = (m ? 0.75 : 0.3) + M * 0.45;
|
|
562
562
|
n.fill.color.copy(t).multiplyScalar(S * 0.45), n.line.color.copy(t).multiplyScalar(S * 2.2), n.core.color.setScalar(m ? 0.6 : 0.15), n.halo.color.copy(t).multiplyScalar(m ? 0.28 : 0.08 + M * 0.15), (C = i.current) == null || C.scale.setScalar(4 + (m ? 0.6 : 0)), a.current && (a.current.rotation.y = p.elapsedTime * (m ? 0.7 : 0.12));
|
|
563
563
|
}), /* @__PURE__ */ Y("group", { ref: s, children: [
|
|
564
564
|
/* @__PURE__ */ u("sprite", { ref: i, material: n.halo }),
|
|
565
565
|
/* @__PURE__ */ Y("group", { ref: a, children: [
|
|
566
|
-
/* @__PURE__ */ u("mesh", { geometry:
|
|
567
|
-
/* @__PURE__ */ u("lineSegments", { geometry:
|
|
566
|
+
/* @__PURE__ */ u("mesh", { geometry: et, material: n.fill }),
|
|
567
|
+
/* @__PURE__ */ u("lineSegments", { geometry: Qt, material: n.line }),
|
|
568
568
|
/* @__PURE__ */ u("mesh", { geometry: Ge, material: n.core, scale: 0.18 })
|
|
569
569
|
] }),
|
|
570
570
|
/* @__PURE__ */ u(be, { position: [0, 1.35, 0], text: `MCP · ${r.name}`, color: r.color, size: 0.28, pxRange: [9, 13] })
|
|
571
571
|
] });
|
|
572
572
|
}
|
|
573
|
-
function
|
|
573
|
+
function oo({ call: e }) {
|
|
574
574
|
const r = L.mcpServers.get(e.server), t = P(() => new o.Color((r == null ? void 0 : r.color) ?? "#fff"), [r]), n = P(() => le(t.clone().multiplyScalar(1.8).addScalar(0.3)), [t]), s = z(null), a = P(() => ({ a: new o.Vector3(), b: new o.Vector3(), c: new o.Vector3(), h: new o.Vector3() }), []);
|
|
575
575
|
return re(() => {
|
|
576
|
-
const i = ge(e.instance), p =
|
|
576
|
+
const i = ge(e.instance), p = Ye(e.server);
|
|
577
577
|
if (!s.current) return;
|
|
578
578
|
if (!i || !r || !p) {
|
|
579
579
|
s.current.visible = !1;
|
|
@@ -584,11 +584,11 @@ function to({ call: e }) {
|
|
|
584
584
|
ne(a.a, a.c, a.b, e.phase === "call" ? m : 1 - m, a.h), s.current.visible = h < 1, s.current.position.copy(a.h), s.current.scale.setScalar(1);
|
|
585
585
|
}), /* @__PURE__ */ u("sprite", { ref: s, material: n, visible: !1 });
|
|
586
586
|
}
|
|
587
|
-
const Ve = 24, he = 40,
|
|
588
|
-
function
|
|
587
|
+
const Ve = 24, he = 40, we = 3;
|
|
588
|
+
function no() {
|
|
589
589
|
const e = P(() => {
|
|
590
590
|
const s = new o.BufferGeometry();
|
|
591
|
-
return s.setAttribute("position", new o.BufferAttribute(new Float32Array(Ve *
|
|
591
|
+
return s.setAttribute("position", new o.BufferAttribute(new Float32Array(Ve * we * he * 2 * 3), 3)), s.setAttribute("color", new o.BufferAttribute(new Float32Array(Ve * we * he * 2 * 3), 3)), s.boundingSphere = new o.Sphere(new o.Vector3(), 1e4), s;
|
|
592
592
|
}, []), r = P(() => new o.LineBasicMaterial({ vertexColors: !0, transparent: !0, blending: o.AdditiveBlending, depthWrite: !1, toneMapped: !1 }), []), t = P(() => new ze(Ve), []), n = P(() => ({ a: new o.Vector3(), b: new o.Vector3(), c: new o.Vector3(), p: new o.Vector3(), col: new o.Color(), k: new o.Color() }), []);
|
|
593
593
|
return re(({ clock: s }) => {
|
|
594
594
|
const a = performance.now(), i = fe ? 0 : s.elapsedTime, p = e.getAttribute("position"), h = e.getAttribute("color");
|
|
@@ -596,54 +596,54 @@ function oo() {
|
|
|
596
596
|
t.begin();
|
|
597
597
|
const M = (S, F, C, g) => {
|
|
598
598
|
if (m >= Ve) return;
|
|
599
|
-
const c = ge(S), A = L.mcpServers.get(F),
|
|
600
|
-
if (!c || !A || !
|
|
599
|
+
const c = ge(S), A = L.mcpServers.get(F), y = Ye(F);
|
|
600
|
+
if (!c || !A || !y) return;
|
|
601
601
|
const { a: B, b: x, c: _, p: k, col: G, k: f } = n;
|
|
602
|
-
B.copy(c), x.copy(
|
|
602
|
+
B.copy(c), x.copy(y), Oe(B, x, 1, _), G.set(A.color);
|
|
603
603
|
let T;
|
|
604
|
-
C === 0 ? (G.lerp(
|
|
605
|
-
const
|
|
606
|
-
for (let V = 0; V <
|
|
607
|
-
const
|
|
604
|
+
C === 0 ? (G.lerp(Yt, ee(g / 1.2)), g > 1.2 && G.lerp(Zt, ee((g - 1.2) / 1)), T = (0.22 + Math.min(0.6, g * 0.25)) * Ie(g / 0.3)) : (f.copy(G).lerp(Je, 0.35), T = 1.3 * (g < 0.75 ? 1 : 1 - (g - 0.75) / 0.25));
|
|
605
|
+
const W = 1 - Me(g / 0.75), I = C === 0 ? 0.025 : 0.07;
|
|
606
|
+
for (let V = 0; V < we; V++) {
|
|
607
|
+
const j = (V - 1) * I;
|
|
608
608
|
for (let N = 0; N < he; N++)
|
|
609
|
-
for (let
|
|
610
|
-
const $ = (N +
|
|
609
|
+
for (let w = 0; w < 2; w++) {
|
|
610
|
+
const $ = (N + w) / he;
|
|
611
611
|
ne(B, _, x, $, k);
|
|
612
|
-
const X = ((m *
|
|
613
|
-
p.setXYZ(X, k.x +
|
|
612
|
+
const X = ((m * we + V) * he + N) * 2 + w;
|
|
613
|
+
p.setXYZ(X, k.x + j, k.y - j, k.z + j * 0.5);
|
|
614
614
|
let d;
|
|
615
615
|
if (C === 0) {
|
|
616
616
|
const O = Math.pow(Math.max(0, Math.sin($ * 20 - i * 2.2)), 8);
|
|
617
617
|
d = T * (0.3 + O * 1.5) * (V === 1 ? 1 : 0.25);
|
|
618
618
|
} else
|
|
619
|
-
d = T * (0.3 + Math.exp(-((($ -
|
|
619
|
+
d = T * (0.3 + Math.exp(-((($ - W) / 0.07) ** 2)) * 3.2 * (g < 0.8 ? 1 : 0)) * (V === 1 ? 1 : 0.65);
|
|
620
620
|
const b = C === 0 ? G : f;
|
|
621
621
|
h.setXYZ(X, b.r * d, b.g * d, b.b * d);
|
|
622
622
|
}
|
|
623
623
|
}
|
|
624
624
|
C === 0 ? t.add(B, _, x, 0.92, 1, 0.48, G, 0.4 + T * 1.4) : t.add(B, _, x, 0.08, -1, 0.66, f, T * 1.6), m++;
|
|
625
625
|
};
|
|
626
|
-
for (const S of L.mcpPending.values()) M(S.instance, S.server, 0,
|
|
626
|
+
for (const S of L.mcpPending.values()) M(S.instance, S.server, 0, At(S, a));
|
|
627
627
|
for (const S of L.mcpCalls) S.phase === "result" && M(S.instance, S.server, 1, ee((a - S.start) / S.dur));
|
|
628
|
-
e.setDrawRange(0, m *
|
|
628
|
+
e.setDrawRange(0, m * we * he * 2), p.needsUpdate = !0, h.needsUpdate = !0, t.end();
|
|
629
629
|
}), /* @__PURE__ */ Y(de, { children: [
|
|
630
630
|
/* @__PURE__ */ u("lineSegments", { geometry: e, material: r, frustumCulled: !1 }),
|
|
631
631
|
/* @__PURE__ */ u("primitive", { object: t.mesh })
|
|
632
632
|
] });
|
|
633
633
|
}
|
|
634
|
-
function
|
|
634
|
+
function ro() {
|
|
635
635
|
const [e, r] = $e([]), t = z({ n: -1, first: -1, last: -1 });
|
|
636
636
|
return re(() => {
|
|
637
637
|
const n = t.current, s = L.mcpCalls, a = s.length ? s[0].id : -1, i = s.length ? s[s.length - 1].id : -1;
|
|
638
638
|
(s.length !== n.n || a !== n.first || i !== n.last) && (n.n = s.length, n.first = a, n.last = i, r(s.slice()));
|
|
639
639
|
}), /* @__PURE__ */ Y(de, { children: [
|
|
640
|
-
e.map((n) => /* @__PURE__ */ u(
|
|
641
|
-
/* @__PURE__ */ u(
|
|
640
|
+
e.map((n) => /* @__PURE__ */ u(oo, { call: n }, n.id)),
|
|
641
|
+
/* @__PURE__ */ u(no, {})
|
|
642
642
|
] });
|
|
643
643
|
}
|
|
644
|
-
function
|
|
644
|
+
function fo() {
|
|
645
645
|
return /* @__PURE__ */ Y(
|
|
646
|
-
|
|
646
|
+
xt,
|
|
647
647
|
{
|
|
648
648
|
title: "neural · living brain",
|
|
649
649
|
subtitle: "Agents are neurons (spiky = thinking, smooth = waiting, amber ring = waiting on MCP) · ⬢ MCP servers wire to their backends · graph memory lights up on reads/writes",
|
|
@@ -654,24 +654,24 @@ function po() {
|
|
|
654
654
|
fit: { nRef: 4, min: 0.62, max: 1.6, minRadius: 5.5 },
|
|
655
655
|
agentRadius: 1.25,
|
|
656
656
|
graph: { natural: oe * 1.08, radius: 2.1 },
|
|
657
|
-
Background: /* @__PURE__ */ u(
|
|
658
|
-
Agent:
|
|
659
|
-
RunMarker:
|
|
660
|
-
McpServer:
|
|
661
|
-
Backend:
|
|
662
|
-
GraphResource:
|
|
657
|
+
Background: /* @__PURE__ */ u(at, { radius: 80, depth: 40, count: fe ? 1200 : 3500, factor: 2.6, saturation: 0.6, fade: !0, speed: 0.4 }),
|
|
658
|
+
Agent: _t,
|
|
659
|
+
RunMarker: Xt,
|
|
660
|
+
McpServer: to,
|
|
661
|
+
Backend: eo,
|
|
662
|
+
GraphResource: $t,
|
|
663
663
|
cluster: { radius: 1.45, variant: "orb" },
|
|
664
|
-
PostFX: /* @__PURE__ */ Y(
|
|
665
|
-
/* @__PURE__ */ u(
|
|
666
|
-
/* @__PURE__ */ u(
|
|
664
|
+
PostFX: /* @__PURE__ */ Y(st, { multisampling: 0, children: [
|
|
665
|
+
/* @__PURE__ */ u(it, { mipmapBlur: !0, intensity: 1.1, luminanceThreshold: 0.2, luminanceSmoothing: 0.3, radius: 0.75 }),
|
|
666
|
+
/* @__PURE__ */ u(ct, { eskil: !1, offset: 0.22, darkness: 0.9 })
|
|
667
667
|
] }),
|
|
668
668
|
children: [
|
|
669
|
-
/* @__PURE__ */ u(
|
|
670
|
-
/* @__PURE__ */ u(
|
|
669
|
+
/* @__PURE__ */ u(Kt, {}),
|
|
670
|
+
/* @__PURE__ */ u(ro, {})
|
|
671
671
|
]
|
|
672
672
|
}
|
|
673
673
|
);
|
|
674
674
|
}
|
|
675
675
|
export {
|
|
676
|
-
|
|
676
|
+
fo as default
|
|
677
677
|
};
|