agentglow 0.2.5 → 0.2.7
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/cli/agentglow.mjs +74 -3
- package/cli/lib/autostart.mjs +159 -0
- package/cli/lib/server.mjs +10 -3
- package/dist/chunks/{KitScene-C3SZiKL5.js → KitScene-BZtsx51r.js} +1824 -1593
- package/dist/chunks/{index-CvDEulcq.js → index-B5zc-pNd.js} +1 -1
- package/dist/chunks/{index-C4F16M9q.js → index-BCfJ-w3o.js} +1 -1
- package/dist/chunks/{index-CRRHsMqy.js → index-BLui9fiT.js} +15 -15
- package/dist/chunks/{index-Bm4te7Ug.js → index-BO7u06kP.js} +1 -1
- package/dist/chunks/{index-BfGluv59.js → index-BbVDdhDk.js} +1 -1
- package/dist/chunks/{index-Bw31uayO.js → index-Bf3wbpgc.js} +1 -1
- package/dist/chunks/{index-Bsmr7FwH.js → index-BflIFHAh.js} +1 -1
- package/dist/chunks/{index-Bqv_wy49.js → index-CdGkRbWi.js} +1 -1
- package/dist/chunks/{index-CdzGoWrn.js → index-CfKe9fU0.js} +1 -1
- package/dist/chunks/{index-BZOG_CQS.js → index-D2jsa-xs.js} +1 -1
- package/dist/chunks/{index-DdCs_ye9.js → index-HcaVLPZo.js} +1 -1
- package/dist/chunks/{index-CS8eZTr_.js → index-Ofl4pl62.js} +1 -1
- package/dist/chunks/{index--dwzdFRh.js → index-T1KK0afI.js} +1 -1
- package/dist/chunks/{index-DXBfdHew.js → index-cB0OFPT_.js} +1 -1
- package/dist/chunks/{index-B2PGx_wt.js → index-dlKd-7aA.js} +1 -1
- package/dist/chunks/{index-_KrED-np.js → index-z7UiIHw8.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/types/world.d.ts +37 -0
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { EffectComposer as je, Bloom as Ke, Vignette as Qe, Noise as Je } from "
|
|
|
4
4
|
import { useFrame as U } from "@react-three/fiber";
|
|
5
5
|
import { useRef as S, useMemo as T, useEffect as et, useState as De } from "react";
|
|
6
6
|
import * as e from "three";
|
|
7
|
-
import { h as se, i as tt, T as pe, f as nt, a as Z, p as ot, e as rt, l as st, s as at, L as fe, w as E, K as ct, G as it, b as Q, c as Ge, d as lt, g as Me, S as re, R as ut, u as pt, j as ft } from "./KitScene-
|
|
7
|
+
import { h as se, i as tt, T as pe, f as nt, a as Z, p as ot, e as rt, l as st, s as at, L as fe, w as E, K as ct, G as it, b as Q, c as Ge, d as lt, g as Me, S as re, R as ut, u as pt, j as ft } from "./KitScene-BZtsx51r.js";
|
|
8
8
|
var Ye;
|
|
9
9
|
const F = typeof window < "u" && !!((Ye = window.matchMedia) != null && Ye.call(window, "(prefers-reduced-motion: reduce)").matches), _e = Math.PI * 2, Be = { plan: Math.PI * 0.5, research: Math.PI * 0.5 + _e / 3, write: Math.PI * 0.5 + _e * 2 / 3 }, Fe = tt, dt = (t) => (se(t, 11) - 0.5) * 2.4, N = {
|
|
10
10
|
/** the galaxy's inner (tilted) group; its matrixWorld includes the kit's side placement + scale */
|
|
@@ -4,7 +4,7 @@ import { useFrame as ie, useThree as Mt } from "@react-three/fiber";
|
|
|
4
4
|
import { EffectComposer as vt, Bloom as wt, Vignette as xt, Noise as bt } from "@react-three/postprocessing";
|
|
5
5
|
import * as n from "three";
|
|
6
6
|
import { useRef as x, useMemo as i, useEffect as Le, useState as St } from "react";
|
|
7
|
-
import { k as te, y as At, f as Me, z as Gt, w as J, a as Ct, i as Bt, h as Ke, c as Et, K as Pt, m as Lt, T as xe, L as Ye, G as zt, n as Rt, q as _e, S as we, x as Ae, R as Ft, A as Tt, r as ue, d as kt, b as Ue, g as Vt, l as It, e as st, p as _t, j as Wt, B as Ot } from "./KitScene-
|
|
7
|
+
import { k as te, y as At, f as Me, z as Gt, w as J, a as Ct, i as Bt, h as Ke, c as Et, K as Pt, m as Lt, T as xe, L as Ye, G as zt, n as Rt, q as _e, S as we, x as Ae, R as Ft, A as Tt, r as ue, d as kt, b as Ue, g as Vt, l as It, e as st, p as _t, j as Wt, B as Ot } from "./KitScene-BZtsx51r.js";
|
|
8
8
|
const Dt = (
|
|
9
9
|
/* glsl */
|
|
10
10
|
`
|
|
@@ -33,21 +33,21 @@ const M = ["orbit", "neural", "subway", "city", "ocean", "circuit", "tunnel", "f
|
|
|
33
33
|
mycelium: { name: "Mycelium", tagline: "A fungal network: agents bloom as fruiting bodies on spreading glowing threads." },
|
|
34
34
|
atom: { name: "Atom", tagline: "An atom: agents are electrons in shells, subagents jump orbits, LLM calls flash photons." }
|
|
35
35
|
}, k = {
|
|
36
|
-
orbit: () => import("./index-
|
|
37
|
-
neural: () => import("./index-
|
|
38
|
-
subway: () => import("./index-
|
|
39
|
-
city: () => import("./index-
|
|
40
|
-
ocean: () => import("./index-
|
|
41
|
-
circuit: () => import("./index-
|
|
42
|
-
tunnel: () => import("./index
|
|
43
|
-
flow: () => import("./index-
|
|
44
|
-
hive: () => import("./index-
|
|
45
|
-
forest: () => import("./index-
|
|
46
|
-
constellation: () => import("./index-
|
|
47
|
-
factory: () => import("./index-
|
|
48
|
-
airport: () => import("./index-
|
|
49
|
-
mycelium: () => import("./index-
|
|
50
|
-
atom: () => import("./index-
|
|
36
|
+
orbit: () => import("./index-B5zc-pNd.js"),
|
|
37
|
+
neural: () => import("./index-z7UiIHw8.js"),
|
|
38
|
+
subway: () => import("./index-HcaVLPZo.js"),
|
|
39
|
+
city: () => import("./index-BCfJ-w3o.js"),
|
|
40
|
+
ocean: () => import("./index-Ofl4pl62.js"),
|
|
41
|
+
circuit: () => import("./index-BflIFHAh.js"),
|
|
42
|
+
tunnel: () => import("./index-T1KK0afI.js"),
|
|
43
|
+
flow: () => import("./index-CdGkRbWi.js"),
|
|
44
|
+
hive: () => import("./index-BO7u06kP.js"),
|
|
45
|
+
forest: () => import("./index-cB0OFPT_.js"),
|
|
46
|
+
constellation: () => import("./index-Bf3wbpgc.js"),
|
|
47
|
+
factory: () => import("./index-dlKd-7aA.js"),
|
|
48
|
+
airport: () => import("./index-BbVDdhDk.js"),
|
|
49
|
+
mycelium: () => import("./index-CfKe9fU0.js"),
|
|
50
|
+
atom: () => import("./index-D2jsa-xs.js")
|
|
51
51
|
}, g = /* @__PURE__ */ new Map();
|
|
52
52
|
function L(e) {
|
|
53
53
|
let n = g.get(e);
|
|
@@ -6,7 +6,7 @@ import { useFrame as Q, useThree as zt } from "@react-three/fiber";
|
|
|
6
6
|
import { EffectComposer as Tt, Bloom as Et, Vignette as Rt } from "@react-three/postprocessing";
|
|
7
7
|
import * as n from "three";
|
|
8
8
|
import { useRef as B, useMemo as L, useEffect as ft, useState as tt } from "react";
|
|
9
|
-
import { T as Bt, p as _t, e as Lt, w as F, a as ge, f as Ge, d as pt, s as kt, L as Ee, g as Nt, b as nt, h as Me, K as Ft, k as be, G as Ot, t as It, n as Ht, v as Ut, c as dt, R as Kt, u as Wt, o as jt, j as qt } from "./KitScene-
|
|
9
|
+
import { T as Bt, p as _t, e as Lt, w as F, a as ge, f as Ge, d as pt, s as kt, L as Ee, g as Nt, b as nt, h as Me, K as Ft, k as be, G as Ot, t as It, n as Ht, v as Ut, c as dt, R as Kt, u as Wt, o as jt, j as qt } from "./KitScene-BZtsx51r.js";
|
|
10
10
|
var ut;
|
|
11
11
|
const ee = typeof window < "u" && !!((ut = window.matchMedia) != null && ut.call(window, "(prefers-reduced-motion: reduce)").matches), le = new n.Color("#ffb627"), xe = new n.Color("#f59e0b"), J = new n.Color("#ffd166");
|
|
12
12
|
new n.Color("#1f1206");
|
|
@@ -6,7 +6,7 @@ import { EffectComposer as Qe, Bloom as et, Vignette as tt } from "@react-three/
|
|
|
6
6
|
import * as r from "three";
|
|
7
7
|
import { useFrame as W } from "@react-three/fiber";
|
|
8
8
|
import { useRef as E, useMemo as R, useEffect as ot } from "react";
|
|
9
|
-
import { T as He, r as L, h as xe, k as Y, w as V, L as re, d as nt, p as rt, s as st, D as at, R as it, S as qe, u as lt, o as ct, n as Re, v as pt, m as ut, G as ft, j as dt } from "./KitScene-
|
|
9
|
+
import { T as He, r as L, h as xe, k as Y, w as V, L as re, d as nt, p as rt, s as st, D as at, R as it, S as qe, u as lt, o as ct, n as Re, v as pt, m as ut, G as ft, j as dt } from "./KitScene-BZtsx51r.js";
|
|
10
10
|
const K = new r.Color("#46ff9a"), ie = new r.Color("#38e8ff"), Le = new r.Color("#ffb547"), Se = new r.Color("#ff4a4a"), j = new r.Color(1, 1, 1), ht = Object.fromEntries(
|
|
11
11
|
Object.entries(He).map(([e, o]) => [e, new r.Color(o).lerp(K, 0.28)])
|
|
12
12
|
), B = (e) => e < 0 ? 0 : e > 1 ? 1 : e, Ge = (e) => 1 - Math.pow(1 - B(e), 3), Q = (e) => (e = B(e), e < 0.5 ? 4 * e * e * e : 1 - Math.pow(-2 * e + 2, 3) / 2), I = { r: 6 };
|
|
@@ -4,7 +4,7 @@ var L = (e, n, r) => st(e, typeof n != "symbol" ? n + "" : n, r);
|
|
|
4
4
|
import { jsxs as q, Fragment as de, jsx as g } from "react/jsx-runtime";
|
|
5
5
|
import { EffectComposer as at, Bloom as it, Vignette as ct } from "@react-three/postprocessing";
|
|
6
6
|
import * as t from "three";
|
|
7
|
-
import { T as We, h as X, K as lt, k as je, w as N, a as ce, v as ft, E as ut, L as ye, G as dt, n as pt, c as qe, d as ht, F as Ye, R as mt, u as vt, o as gt, e as bt, s as wt, f as Ve, j as yt } from "./KitScene-
|
|
7
|
+
import { T as We, h as X, K as lt, k as je, w as N, a as ce, v as ft, E as ut, L as ye, G as dt, n as pt, c as qe, d as ht, F as Ye, R as mt, u as vt, o as gt, e as bt, s as wt, f as Ve, j as yt } from "./KitScene-BZtsx51r.js";
|
|
8
8
|
import { useThree as Re, useFrame as se } from "@react-three/fiber";
|
|
9
9
|
import { useMemo as P, useRef as T, useEffect as Mt } from "react";
|
|
10
10
|
var et;
|
|
@@ -6,7 +6,7 @@ import { useFrame as ht, useThree as Be } from "@react-three/fiber";
|
|
|
6
6
|
import { EffectComposer as Ge, Bloom as Pe, Vignette as Re, Noise as _e } from "@react-three/postprocessing";
|
|
7
7
|
import * as s from "three";
|
|
8
8
|
import { useRef as z, useMemo as D, useLayoutEffect as fe } from "react";
|
|
9
|
-
import { f as ct, q as Et, i as Ee, v as Te, K as te, w as Q, L as vt, G as Ie, n as Le, T as yt, a as dt, r as Y, p as jt, e as Oe, l as Ve, k as st, S as zt, x as Pt, R as We, t as Ne, d as Ue, j as De, B as $e } from "./KitScene-
|
|
9
|
+
import { f as ct, q as Et, i as Ee, v as Te, K as te, w as Q, L as vt, G as Ie, n as Le, T as yt, a as dt, r as Y, p as jt, e as Oe, l as Ve, k as st, S as zt, x as Pt, R as We, t as Ne, d as Ue, j as De, B as $e } from "./KitScene-BZtsx51r.js";
|
|
10
10
|
import { RoundedBoxGeometry as Fe } from "three/examples/jsm/geometries/RoundedBoxGeometry.js";
|
|
11
11
|
const je = -1.9, St = () => je * ct.spread;
|
|
12
12
|
function Zt(t, e) {
|
|
@@ -6,7 +6,7 @@ import { useFrame as ft, useThree as le } from "@react-three/fiber";
|
|
|
6
6
|
import { EffectComposer as he, Bloom as fe, Vignette as ue, Noise as de } from "@react-three/postprocessing";
|
|
7
7
|
import { useMemo as pe, useRef as $, useEffect as At } from "react";
|
|
8
8
|
import * as x from "three";
|
|
9
|
-
import { K as ge, v as me, f as nt, k as Z, w as q, q as ee, x as se, R as Me, d as $t, p as ye, e as be, S as st, c as Tt, T as ne, i as Ae, j as xe, G as we, L as xt, u as Re, t as Ge } from "./KitScene-
|
|
9
|
+
import { K as ge, v as me, f as nt, k as Z, w as q, q as ee, x as se, R as Me, d as $t, p as ye, e as be, S as st, c as Tt, T as ne, i as Ae, j as xe, G as we, L as xt, u as Re, t as Ge } from "./KitScene-BZtsx51r.js";
|
|
10
10
|
var te;
|
|
11
11
|
const mt = typeof window < "u" && !!((te = window.matchMedia) != null && te.call(window, "(prefers-reduced-motion: reduce)").matches), it = mt ? 0.3 : 1, W = mt ? 9e3 : 24e3, ot = mt ? 3500 : 8e3, B = 12, J = mt ? 450 : 1100, kt = 9e3, Y = 64, Et = 31, Se = 4.6, rt = 28, _t = 64, St = 18, Lt = 16, ut = 8, X = Math.PI * 2, et = 200, Dt = 5.4, vt = 3.2, ze = ["planner", "researcher", "writer"], bt = Object.fromEntries(Object.entries(ne).map(([u, e]) => [u, new x.Color(e)])), ve = Ae, Ie = () => ({ used: !1, id: "", inst: null, seen: 0, x: 0, y: 0, z: 0, r: 1, g: 1, b: 1, omega: 0, bright: 0, swirl: 0, rscale: 1, tiltA: 0, tiltB: 0, count: 0, want: 0, rank: 0, ka: null, released: !1, p: 0, e: 0, waitMcp: 0 }), zt = et * 3, Ce = (u) => {
|
|
12
12
|
let e = 7;
|
|
@@ -6,7 +6,7 @@ import { EffectComposer as _t, Bloom as Ot, Vignette as Et } from "@react-three/
|
|
|
6
6
|
import { useFrame as fe, useThree as pt } from "@react-three/fiber";
|
|
7
7
|
import { useMemo as R, useRef as F, useState as mt, useEffect as Lt } from "react";
|
|
8
8
|
import * as n from "three";
|
|
9
|
-
import { T as dt, k as ge, h as Ie, w as W, L as Re, d as It, a as We, c as Wt, K as Xt, m as kt, G as Dt, n as Yt, D as Ht, p as Nt, e as Kt, s as jt, q as Ut, f as nt, R as qt, u as $t, o as Zt, j as Jt } from "./KitScene-
|
|
9
|
+
import { T as dt, k as ge, h as Ie, w as W, L as Re, d as It, a as We, c as Wt, K as Xt, m as kt, G as Dt, n as Yt, D as Ht, p as Nt, e as Kt, s as jt, q as Ut, f as nt, R as qt, u as $t, o as Zt, j as Jt } from "./KitScene-BZtsx51r.js";
|
|
10
10
|
var ft;
|
|
11
11
|
const ne = typeof window < "u" && !!((ft = window.matchMedia) != null && ft.call(window, "(prefers-reduced-motion: reduce)").matches), vt = new n.Color("#a855f7"), Ye = new n.Color("#2dd4bf"), ue = new n.Color(1, 1, 1), ht = new n.Color("#fbbf24"), gt = new n.Color("#ff3b5c"), Qt = new n.Color("#3b3346"), Pe = Object.fromEntries(
|
|
12
12
|
Object.entries(dt).map(([e, a]) => {
|
|
@@ -6,7 +6,7 @@ import { EffectComposer as Vt, Bloom as zt, Vignette as Gt } from "@react-three/
|
|
|
6
6
|
import { useRef as B, useMemo as E, useEffect as Et, useState as Ft } from "react";
|
|
7
7
|
import * as t from "three";
|
|
8
8
|
import { useFrame as he } from "@react-three/fiber";
|
|
9
|
-
import { T as Mt, w as K, L as Ie, d as Bt, a as xe, c as ft, h as Ae, l as Rt, H as It, p as Ot, e as Tt, f as be, s as Lt, S as Le, q as _t, R as Nt, k as Me, u as Ut, A as Xt, o as Ht, K as Kt, m as jt, G as Yt, n as qt, j as Wt } from "./KitScene-
|
|
9
|
+
import { T as Mt, w as K, L as Ie, d as Bt, a as xe, c as ft, h as Ae, l as Rt, H as It, p as Ot, e as Tt, f as be, s as Lt, S as Le, q as _t, R as Nt, k as Me, u as Ut, A as Xt, o as Ht, K as Kt, m as jt, G as Yt, n as qt, j as Wt } from "./KitScene-BZtsx51r.js";
|
|
10
10
|
var bt;
|
|
11
11
|
const j = typeof window < "u" && !!((bt = window.matchMedia) != null && bt.call(window, "(prefers-reduced-motion: reduce)").matches), pt = new t.Color("#3db8ff"), Se = new t.Color("#9fdcff"), He = new t.Color("#ff4fa8"), mt = new t.Color("#ff9ccf"), oe = new t.Color(1, 1, 1), Fe = new t.Color("#ffc24a"), $t = new t.Color("#ff2d55"), Dt = new t.Color("#3a4560"), lt = Object.fromEntries(Object.entries(Mt).map(([e, r]) => [e, new t.Color(r)])), q = (e) => e < 0 ? 0 : e > 1 ? 1 : e, je = (e) => 1 - Math.pow(1 - q(e), 3), Re = (e) => (e = q(e), e < 0.5 ? 4 * e * e * e : 1 - Math.pow(-2 * e + 2, 3) / 2);
|
|
12
12
|
let _e = null;
|
|
@@ -4,7 +4,7 @@ import { EffectComposer as ut, Bloom as ft, Vignette as dt, Noise as mt } from "
|
|
|
4
4
|
import * as n from "three";
|
|
5
5
|
import { useFrame as J } from "@react-three/fiber";
|
|
6
6
|
import { useRef as v, useMemo as A, useEffect as ht } from "react";
|
|
7
|
-
import { k as Se, f as be, i as Mt, q as et, K as gt, w as T, r as H, G as yt, t as tt, T as ke, n as wt, L as Ae, v as bt, a as ge, R as xt, S as Oe, x as Ce, u as vt, p as St, e as At, l as Bt, M as Ct, c as nt, d as Gt, j as Rt } from "./KitScene-
|
|
7
|
+
import { k as Se, f as be, i as Mt, q as et, K as gt, w as T, r as H, G as yt, t as tt, T as ke, n as wt, L as Ae, v as bt, a as ge, R as xt, S as Oe, x as Ce, u as vt, p as St, e as At, l as Bt, M as Ct, c as nt, d as Gt, j as Rt } from "./KitScene-BZtsx51r.js";
|
|
8
8
|
const $ = 0.05, Ge = 0.3, Pt = Mt;
|
|
9
9
|
function I(e, t) {
|
|
10
10
|
return new n.Color(e).multiplyScalar(t);
|
|
@@ -3,7 +3,7 @@ import { EffectComposer as Et, Bloom as Vt, Vignette as Ot, Noise as kt } from "
|
|
|
3
3
|
import { useThree as Wt, useFrame as le } from "@react-three/fiber";
|
|
4
4
|
import { useMemo as i, useRef as _, useEffect as Ct, useState as Lt } from "react";
|
|
5
5
|
import * as t from "three";
|
|
6
|
-
import { C as ht, r as Bt, k as dt, w as Z, L as Ze, a as ie, d as Dt, T as Ke, q as Nt, x as Ue, l as Xt, e as qt, f as ze, S as Se, R as jt, g as Pt, b as ct, K as lt, m as Ht, G as Zt, n as Kt, j as $t } from "./KitScene-
|
|
6
|
+
import { C as ht, r as Bt, k as dt, w as Z, L as Ze, a as ie, d as Dt, T as Ke, q as Nt, x as Ue, l as Xt, e as qt, f as ze, S as Se, R as jt, g as Pt, b as ct, K as lt, m as Ht, G as Zt, n as Kt, j as $t } from "./KitScene-BZtsx51r.js";
|
|
7
7
|
import { Trail as Tt } from "@react-three/drei";
|
|
8
8
|
const Ee = Bt ? 0.25 : 1, Yt = {
|
|
9
9
|
...ht,
|
|
@@ -3,7 +3,7 @@ import { EffectComposer as ht, Bloom as mt, ChromaticAberration as Mt, Vignette
|
|
|
3
3
|
import { useMemo as x, useRef as w, useEffect as Je, useState as wt } from "react";
|
|
4
4
|
import * as e from "three";
|
|
5
5
|
import { useFrame as te, useThree as ot } from "@react-three/fiber";
|
|
6
|
-
import { k as Pe, K as st, w as Q, a as he, m as xt, G as bt, L as et, n as St, c as Qe, d as At, T as tt, R as vt, S as Se, x as Le, f as Fe, p as Ct, e as ut, j as Bt, q as Gt } from "./KitScene-
|
|
6
|
+
import { k as Pe, K as st, w as Q, a as he, m as xt, G as bt, L as et, n as St, c as Qe, d as At, T as tt, R as vt, S as Se, x as Le, f as Fe, p as Ct, e as ut, j as Bt, q as Gt } from "./KitScene-BZtsx51r.js";
|
|
7
7
|
var dt;
|
|
8
8
|
const Ve = typeof window < "u" && !!((dt = window.matchMedia) != null && dt.call(window, "(prefers-reduced-motion: reduce)").matches), $ = Ve ? 0.15 : 1, re = 7, Oe = 1.3, ue = { speed: 1, paused: !1 }, we = { ax: re, ay: re }, xe = /* @__PURE__ */ new Map(), We = (r) => 1 - Math.pow(1 - Math.min(1, Math.max(0, r)), 3);
|
|
9
9
|
let Ie = null;
|
|
@@ -4,7 +4,7 @@ var ae = (e, o, t) => jt(e, typeof o != "symbol" ? o + "" : o, t);
|
|
|
4
4
|
import { jsxs as H, Fragment as ce, jsx as c } from "react/jsx-runtime";
|
|
5
5
|
import { EffectComposer as Kt, Bloom as Ht, Vignette as $t } from "@react-three/postprocessing";
|
|
6
6
|
import * as n from "three";
|
|
7
|
-
import { D as Yt, h as Re, T as _t, k as me, S as lt, w as J, R as Zt, q as Jt, f as Qe, u as Qt, L as Ee, o as eo, d as to, a as Gt, c as oo, K as no, m as ro, G as ao, n as so, p as io, e as lo, s as co, g as uo, b as Ct, j as fo } from "./KitScene-
|
|
7
|
+
import { D as Yt, h as Re, T as _t, k as me, S as lt, w as J, R as Zt, q as Jt, f as Qe, u as Qt, L as Ee, o as eo, d as to, a as Gt, c as oo, K as no, m as ro, G as ao, n as so, p as io, e as lo, s as co, g as uo, b as Ct, j as fo } from "./KitScene-BZtsx51r.js";
|
|
8
8
|
import { useFrame as Z, useThree as rt } from "@react-three/fiber";
|
|
9
9
|
import { useMemo as S, useRef as _, useState as et } from "react";
|
|
10
10
|
import { Stars as po } from "@react-three/drei";
|
|
@@ -6,7 +6,7 @@ import { useFrame as H, useThree as Yt } from "@react-three/fiber";
|
|
|
6
6
|
import { EffectComposer as Zt, Bloom as $t, Vignette as Jt } from "@react-three/postprocessing";
|
|
7
7
|
import { useRef as z, useMemo as A, useEffect as pe } from "react";
|
|
8
8
|
import * as n from "three";
|
|
9
|
-
import { a as je, h as Qt, k as ie, x as Xe, c as eo, f as Ke, r as N, T as ke, w as V, L as ve, d as to, F as oo, q as Ye, S as Se, R as no, u as Gt, o as so, s as ao, K as ro, m as io, G as lo, n as co, j as po, B as uo } from "./KitScene-
|
|
9
|
+
import { a as je, h as Qt, k as ie, x as Xe, c as eo, f as Ke, r as N, T as ke, w as V, L as ve, d as to, F as oo, q as Ye, S as Se, R as no, u as Gt, o as so, s as ao, K as ro, m as io, G as lo, n as co, j as po, B as uo } from "./KitScene-BZtsx51r.js";
|
|
10
10
|
const Ct = 1.6, Rt = 1.1;
|
|
11
11
|
function _t(e, t) {
|
|
12
12
|
const o = Ke.spread;
|
|
@@ -7,7 +7,7 @@ import { EffectComposer as at, Bloom as st, Vignette as it } from "@react-three/
|
|
|
7
7
|
import { useFrame as re, useThree as ct } from "@react-three/fiber";
|
|
8
8
|
import { useRef as z, useMemo as P, useEffect as lt, 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 ut, e as pt, s as ft, r as fe, L as be, l as dt, g as mt, b as Ue, K as ht, k as gt, m as vt, G as yt, n as wt, R as bt, u as Mt, o as St, c as De, d as Ct, j as At } from "./KitScene-
|
|
10
|
+
import { T as Xe, w as L, a as ge, f as Ee, p as ut, e as pt, s as ft, r as fe, L as be, l as dt, g as mt, b as Ue, K as ht, k as gt, m as vt, G as yt, n as wt, R as bt, u as Mt, o as St, c as De, d as Ct, j as At } from "./KitScene-BZtsx51r.js";
|
|
11
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), xt = (e) => {
|
|
12
12
|
e = ee(e);
|
|
13
13
|
const r = 2.2;
|
package/dist/index.js
CHANGED
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.scene-root{position:fixed;top:0;right:0;bottom:0;left:0;background:#03050b;color:#e8edf5;font-family:Public Sans,system-ui,sans-serif;overflow:hidden}.scene-root canvas{display:block}.hud{position:absolute;z-index:10;background:#0a0e1a8c;border:1px solid rgba(148,163,255,.16);border-radius:14px;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff0a}.hud-topwrap{position:absolute;z-index:10;top:12px;left:12px;max-width:calc(100% - var(--hud-side, 320px) - 36px);display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;pointer-events:none}.hud-topwrap.is-rail{--hud-side: 40px}.hud-topwrap>*{pointer-events:auto}.hud-top{position:relative;padding:6px 8px 6px 12px;min-width:0}.hud-bar{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}.hud-bar .hud-run{margin-top:0}.hud-info{all:unset;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:italic 600 11px/1 Georgia,serif;color:#94a3b8;border:1px solid rgba(148,163,184,.35)}.hud-info:hover,.hud-info.on{color:#e2e8f0;border-color:#818cf8}.hud-theme{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#03050b8c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2394a3b8'/%3E%3C/svg%3E") no-repeat right 9px center;color:#cbd5e1;border:1px solid rgba(148,163,255,.22);border-radius:999px;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:4px 24px 4px 10px;cursor:pointer;outline:none}.hud-theme:hover{border-color:#818cf8}.hud-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.hud-sub{margin:6px 0 2px;max-width:460px;font-size:12px;line-height:1.45;color:#94a3b8}.hud-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 10px #22c55e;animation:hud-ping 1.6s ease-out infinite}@keyframes hud-ping{0%{box-shadow:0 0 #22c55eb3}to{box-shadow:0 0 0 10px #22c55e00}}.hud-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;background:#94a3b829;color:#cbd5e1}.hud-stats{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.hud-stat{font-size:11px;color:#94a3b8;padding:2px 8px;border-radius:999px;background:#03050b66;white-space:nowrap}.hud-stat b{color:#f1f5f9;font-weight:700;font-variant-numeric:tabular-nums}.scene-root :focus-visible{outline:2px solid #818cf8;outline-offset:2px}.hud-side{top:12px;right:12px;bottom:12px;width:320px;display:flex;flex-direction:column;padding:8px 10px 10px;font-size:13px;box-sizing:border-box;animation:hs-in .18s ease-out}.hud-side.is-rail{width:40px;padding:6px 0;align-items:center}@keyframes hs-in{0%{opacity:.4}}.hs-head{display:flex;align-items:center;gap:2px;padding-bottom:8px;margin:0 -2px 2px;border-bottom:1px solid rgba(148,163,255,.12)}.hs-head button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;padding:5px 9px;border-radius:999px}.hs-head button:hover{color:#e2e8f0}.hs-head button.on{color:#f1f5f9;background:#818cf838}.hs-head em,.hs-icon em{font-style:normal;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:#c7d2fe;letter-spacing:0}.hs-head .hs-collapse{margin-left:auto;font-size:14px;padding:2px 8px;letter-spacing:0}.hs-rail{display:flex;flex-direction:column;align-items:center;gap:6px}.hs-rail button{all:unset;cursor:pointer;position:relative;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:#94a3b8}.hs-rail button:hover{color:#e2e8f0;background:#94a3ff1a}.hs-rail .hs-collapse{font-size:14px;margin-bottom:4px}.hs-icon em{position:absolute;top:-3px;right:-5px;min-width:14px;height:14px;padding:0 3px;box-sizing:border-box;border-radius:999px;display:grid;place-items:center;font-size:9px;background:#4f46e5;color:#eef2ff}.hs-icon em:empty{min-width:8px;width:8px;height:8px;padding:0;top:1px;right:1px;background:#22d3ee;box-shadow:0 0 8px #22d3ee}.hs-body{flex:1;min-height:0;display:flex;flex-direction:column}.hs-body[hidden]{display:none}.hs-empty{margin:14px 4px;font-size:12px;line-height:1.5;color:#64748b}.hs-events{list-style:none;margin:6px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1;font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hs-events li>*{all:unset;box-sizing:border-box;width:100%;display:flex;gap:8px;align-items:baseline;padding:4px 6px;border-radius:7px;color:#cbd5e1;line-height:1.4}.hs-events li>button{cursor:pointer}.hs-events li>button:hover{background:#94a3ff1a;color:#f1f5f9}.hs-events i{flex:0 0 7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);transform:translateY(-1px)}.hs-events span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.ap-head{display:flex;align-items:center;gap:8px;margin-top:6px}.ap-count{flex:none;color:#64748b;font-size:11px;font-variant-numeric:tabular-nums}.ap-link{all:unset;cursor:pointer;font-size:12px;color:#93c5fd}.ap-link:hover{color:#bfdbfe}.ap-searchrow{display:flex;align-items:center;gap:8px;margin-top:8px}.ap-search{flex:1;min-width:0;width:100%;box-sizing:border-box;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:8px;color:inherit;font:inherit;font-size:12px;padding:6px 9px;outline:none}.ap-search:focus{border-color:#818cf8}.ap-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.ap-chips button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,255,.15);color:#cbd5e1}.ap-chips button.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 18%,transparent);color:#f8fafc}.ap-chips i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-chips em{font-style:normal;color:var(--c);font-weight:700;font-variant-numeric:tabular-nums}.ap-row-filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.ap-seg{display:flex;border:1px solid rgba(148,163,255,.15);border-radius:8px;overflow:hidden}.ap-seg{flex:none}.ap-seg button{all:unset;cursor:pointer;font-size:11px;padding:3px 6px;color:#94a3b8;text-transform:capitalize}.ap-seg button.on{background:#818cf840;color:#f1f5f9}.ap-row-filters select{flex:1;min-width:64px;background:#03050b99;color:#cbd5e1;border:1px solid rgba(148,163,255,.15);border-radius:8px;font:inherit;font-size:11px;padding:3px 6px}.ap-list{list-style:none;margin:8px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1}.ap-list li button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;align-items:center;gap:8px;padding:6px;border-radius:8px}.ap-list li button:hover{background:#94a3ff1a}.ap-list li button.is-done{opacity:.55}.ap-list i{flex:0 0 9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-list i[data-status=thinking]{animation:ap-pulse .9s ease-in-out infinite}.ap-list i[data-status=waiting]{opacity:.5}.ap-list i[data-status=done]{background:transparent;border:1.5px solid var(--c);box-shadow:none}@keyframes ap-pulse{50%{transform:scale(1.5)}}.ap-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:12px;color:#e2e8f0}.ap-name small{color:#64748b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-meta{text-align:right;font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums;display:flex;flex-direction:column}.ap-meta b{color:var(--c);font-weight:600;text-transform:lowercase}.ap-more{padding:6px;color:#64748b;font-size:11px}.ap-detail{overflow-y:auto;min-height:0;margin-top:8px;flex:1}.ap-detail h3{margin:0;display:flex;align-items:center;gap:8px;font-size:15px;color:var(--c)}.ap-detail h3 i{width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}.ap-detail h3 small{color:#64748b;font-size:11px;font-weight:500}.ap-status{margin-top:3px;font-size:12px;color:#cbd5e1}.ap-status[data-status=thinking]{color:#fde68a}.ap-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(46px,1fr));gap:4px;margin:10px 0 4px}.ap-stats div{background:#03050b73;border-radius:8px;padding:6px;text-align:center}.ap-stats dt{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.ap-stats dd{margin:2px 0 0;font-size:15px;font-weight:700;color:#f1f5f9;font-variant-numeric:tabular-nums}.ap-detail section{margin-top:10px}.ap-detail h4{margin:0 0 4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.ap-detail p{margin:0;font-size:12px;color:#cbd5e1}.ap-steps{display:flex;gap:4px;margin-top:4px}.ap-steps span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid #334155;color:#64748b}.ap-steps span[data-status=running]{border-color:#fbbf24;color:#fde68a}.ap-steps span[data-status=done]{border-color:#22c55e;color:#86efac}.ap-chip-link{all:unset;cursor:pointer;display:block;font-size:12px;color:#e2e8f0;padding:3px 6px;border-left:2px solid var(--c);margin:2px 0;border-radius:0 6px 6px 0}.ap-chip-link:hover{background:#94a3ff1a}.ap-wait{color:#fbbf24!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ap-nodes{line-height:1.5}.ap-events{margin:0;padding-left:14px;display:grid;gap:3px;font-size:11px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hud-badge--live{background:#22c55e2e;color:#86efac}.hud-badge--denied{background:#f871712e;color:#fca5a5;text-transform:none;letter-spacing:.02em}.hud-chip{text-transform:none;letter-spacing:.02em;font-weight:500;background:#818cf829;color:#c7d2fe;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.hud-chip b{font-weight:650;color:#e0e7ff}.hud-run{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}.hud-run input{flex:1;min-width:160px;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:999px;color:inherit;font:inherit;font-size:12px;padding:6px 11px;outline:none}.hud-run button{border:0;border-radius:999px;padding:6px 13px;font:inherit;font-size:12px;font-weight:600;background:linear-gradient(135deg,#818cf8,#22d3ee);color:#03050b;cursor:pointer}.hud-run button:disabled{opacity:.5}.hud-run span{font-size:11px;color:#86efac}.agentglow-embed{position:relative;overflow:hidden;width:100%;height:100%;min-height:320px;isolation:isolate}.agentglow-embed .scene-root{position:absolute;top:0;right:0;bottom:0;left:0}.lod-cluster-label{all:unset;box-sizing:border-box;display:grid;gap:1px;text-align:center;cursor:pointer;pointer-events:auto;font-size:12px;font-weight:600;color:#f8fafc;padding:4px 11px 5px;border-radius:12px;white-space:nowrap;background:#03050b9e;border:1px solid color-mix(in srgb,var(--c, #818cf8) 60%,transparent);text-shadow:0 0 10px var(--c, #818cf8);box-shadow:0 0 18px color-mix(in srgb,var(--c, #818cf8) 22%,transparent);transition:border-color .2s,background .2s}.lod-cluster-label:hover{background:color-mix(in srgb,var(--c, #818cf8) 22%,rgba(3,5,11,.7));border-color:var(--c, #818cf8)}.lod-cluster-label b{font-weight:700;letter-spacing:-.01em}.lod-cluster-label small{font-size:10px;font-weight:500;color:#94a3b8;text-shadow:none;font-variant-numeric:tabular-nums}.hud-dock{display:flex;align-items:center;gap:8px}.hud-dock:empty{display:none}.hud-dock>.hud{position:static}.hud-lod{padding:6px 8px 6px 12px;display:flex;align-items:center;gap:8px;font-size:12px;color:#cbd5e1;white-space:nowrap}.hud-lod span b{margin:0 1px}.hud-lod b{color:#f1f5f9;font-variant-numeric:tabular-nums}.hud-lod i{width:7px;height:7px;border-radius:50%;background:#a5b4fc;box-shadow:0 0 8px #a5b4fc}.hud-lod button{all:unset;cursor:pointer;font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid rgba(148,163,255,.25);color:#c7d2fe}.hud-lod button:hover{background:#818cf833;color:#f8fafc}.scene-root{container:agscene / size}@container agscene (max-width: 719px){.scene-root .hud-top{padding:5px 7px 5px 10px}.scene-root .hud-title{font-size:13px}.scene-root .hud-theme{padding:3px 20px 3px 8px;font-size:10px;background-position:right 7px center}.scene-root .hud-stat:nth-child(n+3){display:none}.scene-root .hud-side:not(.is-rail){width:min(290px,calc(100% - 64px));padding:6px 8px 8px}.scene-root .hs-head button{padding:4px 6px;letter-spacing:.04em;font-size:10.5px}.scene-root .hs-head .hs-collapse{padding:2px 4px}.scene-root .ap-list li button{padding:4px 6px}.scene-root .hud-topwrap:not(.is-rail){--hud-side: min(290px, calc(100% - 64px) )}}@container agscene (max-height: 520px){.scene-root .hud-sub{max-height:4.5em;overflow:auto}}.scene-label.subway-station{font-size:10px;font-weight:500;padding:1px 6px;letter-spacing:.08em;text-transform:uppercase;color:#cbd5e1;opacity:.85}.scene-label.subway-airport{font-size:11px}.scene-label.subway-run{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:4px 9px;border-radius:10px;font-size:11px}.subway-steps{display:flex;gap:4px}.subway-steps b{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:0 5px;border-radius:999px;color:#94a3b8;border:1px solid #334155;text-shadow:none}.subway-steps b[data-st=running]{color:#fde68a;border-color:#fbbf24;box-shadow:0 0 8px #fbbf2499}.subway-steps b[data-st=done]{color:#bbf7d0;border-color:#22c55e}.subway-steps b[data-st=failed]{color:#fecaca;border-color:#ef4444}.scene-label.subway-flare{font-size:10px;transition:opacity .2s}.city-root{background:#05040d}.city-district{display:grid;gap:4px;padding:5px 10px 6px;border-radius:10px;transition:opacity .4s}.city-district-top{display:flex;align-items:baseline;gap:8px}.city-district-top b{font-size:12px;color:#f8fafc}.city-count{font-size:10px;font-weight:500;color:#a5b4fc;text-shadow:none}.city-steps{display:flex;gap:4px}.city-chip{--sc: #3b4256;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:1px 7px;border-radius:999px;color:var(--sc);border:1px solid color-mix(in srgb,var(--sc) 70%,transparent);text-shadow:none}.city-chip[data-st=running]{color:#03050b;background:var(--sc);box-shadow:0 0 10px var(--sc)}.city-chip[data-st=done]{color:var(--sc);background:color-mix(in srgb,var(--sc) 18%,transparent)}.city-chip[data-st=queued]{color:#64748b;border-color:#334155}.city-chip+.city-chip:before{content:""}.city-tower-label{font-size:13px}.city-mcp-label{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.city-tower-label{font-size:15px;font-weight:800;letter-spacing:.06em;padding:3px 12px}.city-node-label{font-size:10px;transition:opacity .2s}.tunnel-pause{padding:7px 14px;color:#e2e8f0;font:600 11px/1 Public Sans,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.flow-run{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.flow-run .scene-label{font-size:11px;max-width:220px;overflow:hidden;text-overflow:ellipsis}.flow-steps{display:flex;gap:3px;font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.06em}.flow-steps span{padding:2px 5px;border-radius:999px;color:#64748b;background:#03050b8c;border:1px solid rgba(100,116,139,.35)}.flow-steps span[data-s=running]{color:#03050b;background:var(--c);border-color:var(--c);box-shadow:0 0 12px var(--c)}.flow-steps span[data-s=done]{color:var(--c);border-color:color-mix(in srgb,var(--c) 60%,transparent)}.flow-steps span[data-s=failed]{color:#fecaca;background:#7f1d1d}.flow-step{font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--c) 70%,white);text-shadow:0 0 8px var(--c);opacity:.55;pointer-events:none;white-space:nowrap;transition:opacity .3s}.flow-step[data-s=running]{opacity:1}.flow-hint{font-size:10px;padding:1px 7px;opacity:.9}.flow-label-core{font-size:11px;letter-spacing:.04em}.ap-root{background:radial-gradient(ellipse at 45% 50%,#03140e,#010604 60%,#000302)}.ap-root,.ap-tag,.ap-airport,.ap-gate,.ap-strip,.ap-wp,.ap-bearing{--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}.ap-bearing{font:600 9px/1 var(--mono);color:#2fae6e;letter-spacing:.08em;opacity:.85;text-shadow:0 0 6px rgba(70,255,154,.5)}.ap-tag{position:relative;width:0;height:0;pointer-events:none;transition:none}.ap-leader{position:absolute;left:6px;top:-22px;overflow:visible}.ap-leader line{stroke:color-mix(in srgb,var(--c) 45%,#46ff9a);stroke-width:1;opacity:.7}.ap-tag-box{position:absolute;left:28px;top:-38px;display:grid;gap:1px;padding:2px 6px 2px 5px;border-left:2px solid var(--c);background:#010c089e;white-space:nowrap}.ap-call{font:700 10px/1.15 var(--mono);letter-spacing:.06em;color:#d9ffe9;text-shadow:0 0 8px color-mix(in srgb,var(--c) 70%,transparent)}.ap-data{font:500 9px/1.15 var(--mono);letter-spacing:.05em;color:#57d897}.ap-tag-big .ap-call{font-size:12px}.ap-tag-big .ap-data{font-size:10px}.ap-airport{width:max-content;display:flex;align-items:center;gap:6px;white-space:nowrap;font:600 10px/1 var(--mono);color:#c8f7de;letter-spacing:.04em;padding:3px 7px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:#010a07b3;text-shadow:0 0 8px color-mix(in srgb,var(--c) 60%,transparent)}.ap-airport-code{font-weight:800;color:var(--c);letter-spacing:.1em}.ap-gate{white-space:nowrap;font:500 9px/1 var(--mono);color:#a6e9c6;letter-spacing:.03em;padding:2px 5px;background:#010a078c;border-bottom:1px solid color-mix(in srgb,var(--c) 50%,transparent)}.ap-gate.ap-hot{color:#fff;font-weight:700;border-bottom-color:var(--c);box-shadow:0 0 10px color-mix(in srgb,var(--c) 50%,transparent)}.ap-strip{width:max-content;display:grid;gap:2px;text-align:left;padding:4px 9px 4px 8px;border-left:3px solid var(--c);background:#010c08b8;outline:1px solid rgba(70,255,154,.14);max-width:260px}.ap-strip-topic{font:600 11px/1.25 Public Sans,system-ui,sans-serif;color:#e8fff1;white-space:normal}.ap-strip-sub{font:500 9px/1.2 var(--mono);color:#5fbf8d;letter-spacing:.05em;white-space:nowrap}.ap-wp{white-space:nowrap;font:600 9px/1 var(--mono);letter-spacing:.05em;color:#e9fffb;padding:2px 5px;border:1px solid color-mix(in srgb,var(--c, #38e8ff) 60%,transparent);background:#010a0aa6;text-shadow:0 0 8px var(--c, #38e8ff)}.ap-tag-left .ap-leader{left:-28px;transform:scaleX(-1)}.ap-tag-left .ap-tag-box{left:auto;right:28px;text-align:right;border-left:0;border-right:2px solid var(--c);padding:2px 5px 2px 6px}
|
|
1
|
+
.scene-root{position:fixed;top:0;right:0;bottom:0;left:0;background:#03050b;color:#e8edf5;font-family:Public Sans,system-ui,sans-serif;overflow:hidden}.scene-root canvas{display:block}.hud{position:absolute;z-index:10;background:#0a0e1a8c;border:1px solid rgba(148,163,255,.16);border-radius:14px;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff0a}.hud-topwrap{position:absolute;z-index:10;top:12px;left:12px;max-width:calc(100% - var(--hud-side, 320px) - 36px);display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;pointer-events:none}.hud-topwrap.is-rail{--hud-side: 40px}.hud-topwrap>*{pointer-events:auto}.hud-top{position:relative;padding:6px 8px 6px 12px;min-width:0}.hud-bar{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}.hud-bar .hud-run{margin-top:0}.hud-info{all:unset;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:italic 600 11px/1 Georgia,serif;color:#94a3b8;border:1px solid rgba(148,163,184,.35)}.hud-info:hover,.hud-info.on{color:#e2e8f0;border-color:#818cf8}.hud-theme{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#03050b8c url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2394a3b8'/%3E%3C/svg%3E") no-repeat right 9px center;color:#cbd5e1;border:1px solid rgba(148,163,255,.22);border-radius:999px;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:4px 24px 4px 10px;cursor:pointer;outline:none}.hud-theme:hover{border-color:#818cf8}.hud-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.hud-sub{margin:6px 0 2px;max-width:460px;font-size:12px;line-height:1.45;color:#94a3b8}.hud-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 10px #22c55e;animation:hud-ping 1.6s ease-out infinite}@keyframes hud-ping{0%{box-shadow:0 0 #22c55eb3}to{box-shadow:0 0 0 10px #22c55e00}}.hud-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;background:#94a3b829;color:#cbd5e1}.hud-stats{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.hud-stat{font-size:11px;color:#94a3b8;padding:2px 8px;border-radius:999px;background:#03050b66;white-space:nowrap}.hud-stat b{color:#f1f5f9;font-weight:700;font-variant-numeric:tabular-nums}.scene-root :focus-visible{outline:2px solid #818cf8;outline-offset:2px}.hud-side{top:12px;right:12px;bottom:12px;width:320px;display:flex;flex-direction:column;padding:8px 10px 10px;font-size:13px;box-sizing:border-box;animation:hs-in .18s ease-out}.hud-side.is-rail{width:40px;padding:6px 0;align-items:center}@keyframes hs-in{0%{opacity:.4}}.hs-head{display:flex;align-items:center;gap:2px;padding-bottom:8px;margin:0 -2px 2px;border-bottom:1px solid rgba(148,163,255,.12)}.hs-head button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;padding:5px 9px;border-radius:999px}.hs-head button:hover{color:#e2e8f0}.hs-head button.on{color:#f1f5f9;background:#818cf838}.hs-head em,.hs-icon em{font-style:normal;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:#c7d2fe;letter-spacing:0}.hs-head .hs-collapse{margin-left:auto;font-size:14px;padding:2px 8px;letter-spacing:0}.hs-rail{display:flex;flex-direction:column;align-items:center;gap:6px}.hs-rail button{all:unset;cursor:pointer;position:relative;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:#94a3b8}.hs-rail button:hover{color:#e2e8f0;background:#94a3ff1a}.hs-rail .hs-collapse{font-size:14px;margin-bottom:4px}.hs-icon em{position:absolute;top:-3px;right:-5px;min-width:14px;height:14px;padding:0 3px;box-sizing:border-box;border-radius:999px;display:grid;place-items:center;font-size:9px;background:#4f46e5;color:#eef2ff}.hs-icon em:empty{min-width:8px;width:8px;height:8px;padding:0;top:1px;right:1px;background:#22d3ee;box-shadow:0 0 8px #22d3ee}.hs-body{flex:1;min-height:0;display:flex;flex-direction:column}.hs-body[hidden]{display:none}.hs-empty{margin:14px 4px;font-size:12px;line-height:1.5;color:#64748b}.hs-events{list-style:none;margin:6px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1;font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hs-events li>*{all:unset;box-sizing:border-box;width:100%;display:flex;gap:8px;align-items:baseline;padding:4px 6px;border-radius:7px;color:#cbd5e1;line-height:1.4}.hs-events li>button{cursor:pointer}.hs-events li>button:hover{background:#94a3ff1a;color:#f1f5f9}.hs-events i{flex:0 0 7px;height:7px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);transform:translateY(-1px)}.hs-events span{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.ap-head{display:flex;align-items:center;gap:8px;margin-top:6px}.ap-count{flex:none;color:#64748b;font-size:11px;font-variant-numeric:tabular-nums}.ap-link{all:unset;cursor:pointer;font-size:12px;color:#93c5fd}.ap-link:hover{color:#bfdbfe}.ap-searchrow{display:flex;align-items:center;gap:8px;margin-top:8px}.ap-search{flex:1;min-width:0;width:100%;box-sizing:border-box;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:8px;color:inherit;font:inherit;font-size:12px;padding:6px 9px;outline:none}.ap-search:focus{border-color:#818cf8}.ap-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.ap-chips button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:11px;padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,255,.15);color:#cbd5e1}.ap-chips button.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 18%,transparent);color:#f8fafc}.ap-chips i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-chips em{font-style:normal;color:var(--c);font-weight:700;font-variant-numeric:tabular-nums}.ap-row-filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.ap-seg{display:flex;border:1px solid rgba(148,163,255,.15);border-radius:8px;overflow:hidden}.ap-seg{flex:none}.ap-seg button{all:unset;cursor:pointer;font-size:11px;padding:3px 6px;color:#94a3b8;text-transform:capitalize}.ap-seg button.on{background:#818cf840;color:#f1f5f9}.ap-row-filters select{flex:1;min-width:64px;background:#03050b99;color:#cbd5e1;border:1px solid rgba(148,163,255,.15);border-radius:8px;font:inherit;font-size:11px;padding:3px 6px}.ap-list{list-style:none;margin:8px -4px 0;padding:0;overflow-y:auto;min-height:0;flex:1}.ap-list li button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:flex;align-items:center;gap:8px;padding:6px;border-radius:8px}.ap-list li button:hover{background:#94a3ff1a}.ap-list li button.is-done{opacity:.55}.ap-list i{flex:0 0 9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.ap-list i[data-status=thinking]{animation:ap-pulse .9s ease-in-out infinite}.ap-list i[data-status=waiting]{opacity:.5}.ap-list i[data-status=done]{background:transparent;border:1.5px solid var(--c);box-shadow:none}@keyframes ap-pulse{50%{transform:scale(1.5)}}.ap-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:12px;color:#e2e8f0}.ap-name small{color:#64748b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-meta{text-align:right;font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums;display:flex;flex-direction:column}.ap-meta b{color:var(--c);font-weight:600;text-transform:lowercase}.hs-events li.is-skill>*{background:#f5b83d12}.hs-skill{flex:0 0 auto;font-size:9.5px;font-weight:600;line-height:1.5;text-transform:uppercase;letter-spacing:.06em;color:#fcd581;padding:0 6px;border-radius:999px;border:1px solid rgba(245,184,61,.55);background:#f5b83d1f}.ap-title{display:flex;align-items:center;gap:6px;min-width:0}.ap-skill{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;font-size:9.5px;font-weight:600;color:#fcd581;padding:0 6px;border-radius:999px;border:1px solid rgba(245,184,61,.55);background:#f5b83d1f}.ap-skill:before{content:"skill:";color:#b8893a;font-weight:500}.hs-skill:before{content:"";display:inline-block;width:6px;height:6px;margin:0 4px 0 -1px;border:1px solid currentColor;border-radius:50%;vertical-align:0;box-shadow:0 0 4px #f5b83d99}.ap-skills{display:flex;flex-wrap:wrap;gap:4px}.ap-skills span{font-size:11px;color:#e2e8f0;padding:2px 8px;border-radius:999px;border:1px solid rgba(245,184,61,.35);background:#f5b83d0f;display:inline-flex;gap:5px;align-items:baseline}.ap-skills span.on{border-color:#f5b83d;background:#f5b83d2e;color:#fde7b0;box-shadow:0 0 10px #f5b83d40}.ap-skills em{font-style:normal;font-size:10px;color:#b8893a;font-variant-numeric:tabular-nums}.ap-more{padding:6px;color:#64748b;font-size:11px}.ap-detail{overflow-y:auto;min-height:0;margin-top:8px;flex:1}.ap-detail h3{margin:0;display:flex;align-items:center;gap:8px;font-size:15px;color:var(--c)}.ap-detail h3 i{width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}.ap-detail h3 small{color:#64748b;font-size:11px;font-weight:500}.ap-status{margin-top:3px;font-size:12px;color:#cbd5e1}.ap-status[data-status=thinking]{color:#fde68a}.ap-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(46px,1fr));gap:4px;margin:10px 0 4px}.ap-stats div{background:#03050b73;border-radius:8px;padding:6px;text-align:center}.ap-stats dt{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.ap-stats dd{margin:2px 0 0;font-size:15px;font-weight:700;color:#f1f5f9;font-variant-numeric:tabular-nums}.ap-detail section{margin-top:10px}.ap-detail h4{margin:0 0 4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.ap-detail p{margin:0;font-size:12px;color:#cbd5e1}.ap-steps{display:flex;gap:4px;margin-top:4px}.ap-steps span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;border:1px solid #334155;color:#64748b}.ap-steps span[data-status=running]{border-color:#fbbf24;color:#fde68a}.ap-steps span[data-status=done]{border-color:#22c55e;color:#86efac}.ap-chip-link{all:unset;cursor:pointer;display:block;font-size:12px;color:#e2e8f0;padding:3px 6px;border-left:2px solid var(--c);margin:2px 0;border-radius:0 6px 6px 0}.ap-chip-link:hover{background:#94a3ff1a}.ap-wait{color:#fbbf24!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ap-nodes{line-height:1.5}.ap-events{margin:0;padding-left:14px;display:grid;gap:3px;font-size:11px;color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.hud-badge--live{background:#22c55e2e;color:#86efac}.hud-badge--denied{background:#f871712e;color:#fca5a5;text-transform:none;letter-spacing:.02em}.hud-chip{text-transform:none;letter-spacing:.02em;font-weight:500;background:#818cf829;color:#c7d2fe;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.hud-chip b{font-weight:650;color:#e0e7ff}.hud-run{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}.hud-run input{flex:1;min-width:160px;background:#03050b99;border:1px solid rgba(148,163,255,.2);border-radius:999px;color:inherit;font:inherit;font-size:12px;padding:6px 11px;outline:none}.hud-run button{border:0;border-radius:999px;padding:6px 13px;font:inherit;font-size:12px;font-weight:600;background:linear-gradient(135deg,#818cf8,#22d3ee);color:#03050b;cursor:pointer}.hud-run button:disabled{opacity:.5}.hud-run span{font-size:11px;color:#86efac}.agentglow-embed{position:relative;overflow:hidden;width:100%;height:100%;min-height:320px;isolation:isolate}.agentglow-embed .scene-root{position:absolute;top:0;right:0;bottom:0;left:0}.lod-cluster-label{all:unset;box-sizing:border-box;display:grid;gap:1px;text-align:center;cursor:pointer;pointer-events:auto;font-size:12px;font-weight:600;color:#f8fafc;padding:4px 11px 5px;border-radius:12px;white-space:nowrap;background:#03050b9e;border:1px solid color-mix(in srgb,var(--c, #818cf8) 60%,transparent);text-shadow:0 0 10px var(--c, #818cf8);box-shadow:0 0 18px color-mix(in srgb,var(--c, #818cf8) 22%,transparent);transition:border-color .2s,background .2s}.lod-cluster-label:hover{background:color-mix(in srgb,var(--c, #818cf8) 22%,rgba(3,5,11,.7));border-color:var(--c, #818cf8)}.lod-cluster-label b{font-weight:700;letter-spacing:-.01em}.lod-cluster-label small{font-size:10px;font-weight:500;color:#94a3b8;text-shadow:none;font-variant-numeric:tabular-nums}.hud-dock{display:flex;align-items:center;gap:8px}.hud-dock:empty{display:none}.hud-dock>.hud{position:static}.hud-lod{padding:6px 8px 6px 12px;display:flex;align-items:center;gap:8px;font-size:12px;color:#cbd5e1;white-space:nowrap}.hud-lod span b{margin:0 1px}.hud-lod b{color:#f1f5f9;font-variant-numeric:tabular-nums}.hud-lod i{width:7px;height:7px;border-radius:50%;background:#a5b4fc;box-shadow:0 0 8px #a5b4fc}.hud-lod button{all:unset;cursor:pointer;font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid rgba(148,163,255,.25);color:#c7d2fe}.hud-lod button:hover{background:#818cf833;color:#f8fafc}.scene-root{container:agscene / size}@container agscene (max-width: 719px){.scene-root .hud-top{padding:5px 7px 5px 10px}.scene-root .hud-title{font-size:13px}.scene-root .hud-theme{padding:3px 20px 3px 8px;font-size:10px;background-position:right 7px center}.scene-root .hud-stat:nth-child(n+3){display:none}.scene-root .hud-side:not(.is-rail){width:min(290px,calc(100% - 64px));padding:6px 8px 8px}.scene-root .hs-head button{padding:4px 6px;letter-spacing:.04em;font-size:10.5px}.scene-root .hs-head .hs-collapse{padding:2px 4px}.scene-root .ap-list li button{padding:4px 6px}.scene-root .hud-topwrap:not(.is-rail){--hud-side: min(290px, calc(100% - 64px) )}}@container agscene (max-height: 520px){.scene-root .hud-sub{max-height:4.5em;overflow:auto}}.scene-label.subway-station{font-size:10px;font-weight:500;padding:1px 6px;letter-spacing:.08em;text-transform:uppercase;color:#cbd5e1;opacity:.85}.scene-label.subway-airport{font-size:11px}.scene-label.subway-run{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:4px 9px;border-radius:10px;font-size:11px}.subway-steps{display:flex;gap:4px}.subway-steps b{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:0 5px;border-radius:999px;color:#94a3b8;border:1px solid #334155;text-shadow:none}.subway-steps b[data-st=running]{color:#fde68a;border-color:#fbbf24;box-shadow:0 0 8px #fbbf2499}.subway-steps b[data-st=done]{color:#bbf7d0;border-color:#22c55e}.subway-steps b[data-st=failed]{color:#fecaca;border-color:#ef4444}.scene-label.subway-flare{font-size:10px;transition:opacity .2s}.city-root{background:#05040d}.city-district{display:grid;gap:4px;padding:5px 10px 6px;border-radius:10px;transition:opacity .4s}.city-district-top{display:flex;align-items:baseline;gap:8px}.city-district-top b{font-size:12px;color:#f8fafc}.city-count{font-size:10px;font-weight:500;color:#a5b4fc;text-shadow:none}.city-steps{display:flex;gap:4px}.city-chip{--sc: #3b4256;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:1px 7px;border-radius:999px;color:var(--sc);border:1px solid color-mix(in srgb,var(--sc) 70%,transparent);text-shadow:none}.city-chip[data-st=running]{color:#03050b;background:var(--sc);box-shadow:0 0 10px var(--sc)}.city-chip[data-st=done]{color:var(--sc);background:color-mix(in srgb,var(--sc) 18%,transparent)}.city-chip[data-st=queued]{color:#64748b;border-color:#334155}.city-chip+.city-chip:before{content:""}.city-tower-label{font-size:13px}.city-mcp-label{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.city-tower-label{font-size:15px;font-weight:800;letter-spacing:.06em;padding:3px 12px}.city-node-label{font-size:10px;transition:opacity .2s}.tunnel-pause{padding:7px 14px;color:#e2e8f0;font:600 11px/1 Public Sans,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.flow-run{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.flow-run .scene-label{font-size:11px;max-width:220px;overflow:hidden;text-overflow:ellipsis}.flow-steps{display:flex;gap:3px;font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.06em}.flow-steps span{padding:2px 5px;border-radius:999px;color:#64748b;background:#03050b8c;border:1px solid rgba(100,116,139,.35)}.flow-steps span[data-s=running]{color:#03050b;background:var(--c);border-color:var(--c);box-shadow:0 0 12px var(--c)}.flow-steps span[data-s=done]{color:var(--c);border-color:color-mix(in srgb,var(--c) 60%,transparent)}.flow-steps span[data-s=failed]{color:#fecaca;background:#7f1d1d}.flow-step{font:600 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb,var(--c) 70%,white);text-shadow:0 0 8px var(--c);opacity:.55;pointer-events:none;white-space:nowrap;transition:opacity .3s}.flow-step[data-s=running]{opacity:1}.flow-hint{font-size:10px;padding:1px 7px;opacity:.9}.flow-label-core{font-size:11px;letter-spacing:.04em}.ap-root{background:radial-gradient(ellipse at 45% 50%,#03140e,#010604 60%,#000302)}.ap-root,.ap-tag,.ap-airport,.ap-gate,.ap-strip,.ap-wp,.ap-bearing{--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}.ap-bearing{font:600 9px/1 var(--mono);color:#2fae6e;letter-spacing:.08em;opacity:.85;text-shadow:0 0 6px rgba(70,255,154,.5)}.ap-tag{position:relative;width:0;height:0;pointer-events:none;transition:none}.ap-leader{position:absolute;left:6px;top:-22px;overflow:visible}.ap-leader line{stroke:color-mix(in srgb,var(--c) 45%,#46ff9a);stroke-width:1;opacity:.7}.ap-tag-box{position:absolute;left:28px;top:-38px;display:grid;gap:1px;padding:2px 6px 2px 5px;border-left:2px solid var(--c);background:#010c089e;white-space:nowrap}.ap-call{font:700 10px/1.15 var(--mono);letter-spacing:.06em;color:#d9ffe9;text-shadow:0 0 8px color-mix(in srgb,var(--c) 70%,transparent)}.ap-data{font:500 9px/1.15 var(--mono);letter-spacing:.05em;color:#57d897}.ap-tag-big .ap-call{font-size:12px}.ap-tag-big .ap-data{font-size:10px}.ap-airport{width:max-content;display:flex;align-items:center;gap:6px;white-space:nowrap;font:600 10px/1 var(--mono);color:#c8f7de;letter-spacing:.04em;padding:3px 7px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:#010a07b3;text-shadow:0 0 8px color-mix(in srgb,var(--c) 60%,transparent)}.ap-airport-code{font-weight:800;color:var(--c);letter-spacing:.1em}.ap-gate{white-space:nowrap;font:500 9px/1 var(--mono);color:#a6e9c6;letter-spacing:.03em;padding:2px 5px;background:#010a078c;border-bottom:1px solid color-mix(in srgb,var(--c) 50%,transparent)}.ap-gate.ap-hot{color:#fff;font-weight:700;border-bottom-color:var(--c);box-shadow:0 0 10px color-mix(in srgb,var(--c) 50%,transparent)}.ap-strip{width:max-content;display:grid;gap:2px;text-align:left;padding:4px 9px 4px 8px;border-left:3px solid var(--c);background:#010c08b8;outline:1px solid rgba(70,255,154,.14);max-width:260px}.ap-strip-topic{font:600 11px/1.25 Public Sans,system-ui,sans-serif;color:#e8fff1;white-space:normal}.ap-strip-sub{font:500 9px/1.2 var(--mono);color:#5fbf8d;letter-spacing:.05em;white-space:nowrap}.ap-wp{white-space:nowrap;font:600 9px/1 var(--mono);letter-spacing:.05em;color:#e9fffb;padding:2px 5px;border:1px solid color-mix(in srgb,var(--c, #38e8ff) 60%,transparent);background:#010a0aa6;text-shadow:0 0 8px var(--c, #38e8ff)}.ap-tag-left .ap-leader{left:-28px;transform:scaleX(-1)}.ap-tag-left .ap-tag-box{left:auto;right:28px;text-align:right;border-left:0;border-right:2px solid var(--c);padding:2px 5px 2px 6px}
|
package/dist/types/world.d.ts
CHANGED
|
@@ -68,6 +68,13 @@ export type WorldEvent = {
|
|
|
68
68
|
run_id: string;
|
|
69
69
|
text: string;
|
|
70
70
|
ts: number;
|
|
71
|
+
} | {
|
|
72
|
+
type: "skill";
|
|
73
|
+
run_id: string;
|
|
74
|
+
id: string;
|
|
75
|
+
name: string;
|
|
76
|
+
status: "start" | "end";
|
|
77
|
+
ts: number;
|
|
71
78
|
} | {
|
|
72
79
|
type: "mcp_register";
|
|
73
80
|
run_id?: string;
|
|
@@ -126,7 +133,33 @@ export type Instance = {
|
|
|
126
133
|
toolCalls: number;
|
|
127
134
|
mcpCalls: number;
|
|
128
135
|
nodes: Set<string>;
|
|
136
|
+
/** skills this agent used: name -> active now, times started, performance.now() of the last start/end */
|
|
137
|
+
skills: Map<string, SkillUse>;
|
|
138
|
+
/** newest started skill ("" = none yet) and when the last active one ended (0 while one is active) */
|
|
139
|
+
skill: string;
|
|
140
|
+
skillEndAt: number;
|
|
141
|
+
};
|
|
142
|
+
/** one skill on one agent; startAt / endAt (performance.now()) drive its sigil ring (endAt 0 while active) */
|
|
143
|
+
export type SkillUse = {
|
|
144
|
+
active: boolean;
|
|
145
|
+
count: number;
|
|
146
|
+
last: number;
|
|
147
|
+
startAt: number;
|
|
148
|
+
endAt: number;
|
|
129
149
|
};
|
|
150
|
+
/** Skill sigil timing (ms): fade in, minimum time shown after a start (Claude Code skills are instantaneous tool
|
|
151
|
+
* calls, start and end arrive ms apart), fade out after the (effective) end. */
|
|
152
|
+
export declare const SKILL_IN_MS = 450;
|
|
153
|
+
export declare const SKILL_MIN_MS = 4000;
|
|
154
|
+
export declare const SKILL_OUT_MS = 1100;
|
|
155
|
+
/** a skill that never reports an end (crashed tool, lost event) is treated as ended after this long */
|
|
156
|
+
export declare const SKILL_MAX_MS = 60000;
|
|
157
|
+
/** when a skill's sigil starts fading out: its end, but never before SKILL_MIN_MS after its start (0 = active) */
|
|
158
|
+
export declare function skillOffAt(u: SkillUse): number;
|
|
159
|
+
/** 0..1 visibility of one skill's sigil: eases in after a start, holds while active (>= SKILL_MIN_MS), then fades. */
|
|
160
|
+
export declare function skillUseMix(u: SkillUse, now?: number): number;
|
|
161
|
+
/** 0..1: the strongest skill sigil on this agent (0 = none shown) */
|
|
162
|
+
export declare function skillMix(i: Instance, now?: number): number;
|
|
130
163
|
export type Run = {
|
|
131
164
|
id: string;
|
|
132
165
|
topic: string;
|
|
@@ -207,6 +240,10 @@ export declare const isDone: (i: Instance) => boolean;
|
|
|
207
240
|
export declare const isLive: (i: Instance) => boolean;
|
|
208
241
|
/** A started run whose agents are all finished and that got no completion for this long fades out anyway (ms). */
|
|
209
242
|
export declare const ORPHAN_RUN_MS = 120000;
|
|
243
|
+
/** A finished subagent (has a parent) fades after this long even if its run is still active (e.g. a long-lived
|
|
244
|
+
* session whose root agent never finishes) - otherwise it would stay dimmed forever waiting for a run end
|
|
245
|
+
* that, for that kind of run, never comes. Root/main agents are unaffected: they still fade with their run. */
|
|
246
|
+
export declare const SUBAGENT_DONE_MS = 3000;
|
|
210
247
|
/** How long finished instances/runs stay visible while fading out (ms). */
|
|
211
248
|
export declare const FADE_MS = 2500;
|
|
212
249
|
export declare const RUN_LINGER_MS = 6000;
|