@tangle-network/sandbox-cli 0.21.63 → 0.21.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +31 -3
  2. package/SKILL.md +29 -1
  3. package/dist/graph-native-CS_TmaCK.mjs +1 -0
  4. package/dist/graph-viewer/Analytics-bWsqhurt.js +1001 -0
  5. package/dist/graph-viewer/{AnswerStrip-DhwqOyxI.js → AnswerStrip-COxV7gLW.js} +2 -2
  6. package/dist/graph-viewer/Checks-CQGmKcQ0.js +164 -0
  7. package/dist/graph-viewer/Conversations-DgCshBAf.js +627 -0
  8. package/dist/graph-viewer/{Files-DtZhf0ii.js → Files-CvIOGrAs.js} +81 -90
  9. package/dist/graph-viewer/LiveRun-DHmsr6F7.js +311 -0
  10. package/dist/graph-viewer/{Outputs-QET3nPPp.js → Outputs-rwBg_x36.js} +4 -4
  11. package/dist/graph-viewer/Overview-C150tkVa.js +194 -0
  12. package/dist/graph-viewer/{RunOverview-DJQDAMIx.js → RunOverview-CSqsunqf.js} +2 -2
  13. package/dist/graph-viewer/RunPage-F_prVwiV.js +286 -0
  14. package/dist/graph-viewer/Timeline-BFDywlmz.js +335 -0
  15. package/dist/graph-viewer/Today-BdDuqZGF.js +623 -0
  16. package/dist/graph-viewer/Topology-SAfGtd5u.js +238 -0
  17. package/dist/graph-viewer/Traces-BYqXaS_s.js +254 -0
  18. package/dist/graph-viewer/{WallPages-4d9QUZDq.js → WallPages-MM70VZrC.js} +48 -30
  19. package/dist/graph-viewer/agent-runtime.js +55 -55
  20. package/dist/graph-viewer/{data-BJmP7F1M.js → data-DTGmre1W.js} +31 -27
  21. package/dist/graph-viewer/harness-sessions.js +1 -1
  22. package/dist/graph-viewer/index.js +1357 -1392
  23. package/dist/graph-viewer/{lazy-pages-DM0cZM10.js → lazy-pages-BYuq_L_n.js} +9 -5
  24. package/dist/graph-viewer/{outputs-model-CGdvjkQh.js → outputs-model-CHTx8rMz.js} +2 -2
  25. package/dist/graph-viewer/{viewer/plain-words-CgvxtEOa.js → plain-words-BrMHl0On.js} +9 -4
  26. package/dist/graph-viewer/receipt.js +2 -2
  27. package/dist/graph-viewer/record-CsP_3NJS.js +612 -0
  28. package/dist/graph-viewer/record-part-CuT9Xw37.js +334 -0
  29. package/dist/graph-viewer/record.js +2 -336
  30. package/dist/graph-viewer/report-viewer.js +65 -65
  31. package/dist/graph-viewer/report.js +1 -1
  32. package/dist/graph-viewer/research-publication.js +1 -1
  33. package/dist/graph-viewer/{run-files-C1NgzM0l.js → run-files-BckQDdTD.js} +1 -1
  34. package/dist/graph-viewer/{run-receipt-Bvi4-KVM.js → run-receipt-Bt2iXJUy.js} +1 -0
  35. package/dist/graph-viewer/schemas/agent-workspace.play.v1.json +3 -0
  36. package/dist/graph-viewer/schemas/agent-workspace.plays.v1.json +2 -0
  37. package/dist/graph-viewer/schemas/agent-workspace.run.v1.json +1 -0
  38. package/dist/graph-viewer/styles.css +4559 -2385
  39. package/dist/graph-viewer/trace-spans.js +1 -1
  40. package/dist/graph-viewer/ui-xa5w5bEN.js +889 -0
  41. package/dist/graph-viewer/viewer/{AgentGraphCanvas-CMdOlSlh-4EervjeC.js → AgentGraphCanvas-B74GN1o6-BZEumF7-.js} +2610 -2707
  42. package/dist/graph-viewer/viewer/Analytics-E3XS570U.js +1002 -0
  43. package/dist/graph-viewer/viewer/{AnswerStrip-CGUyXuYH.js → AnswerStrip-B7xMU57A.js} +2 -2
  44. package/dist/graph-viewer/viewer/Checks-CJ5XSHbv.js +165 -0
  45. package/dist/graph-viewer/viewer/Conversations-AX8G7Qyl.js +904 -0
  46. package/dist/graph-viewer/viewer/Files-DxL1576V.js +630 -0
  47. package/dist/graph-viewer/viewer/LiveRun-B-BckyEj.js +820 -0
  48. package/dist/graph-viewer/viewer/{Outputs-CumGyjQo.js → Outputs-BoIpgfMv.js} +24 -23
  49. package/dist/graph-viewer/viewer/Overview-Dzg5XJgy.js +436 -0
  50. package/dist/graph-viewer/viewer/RunPage-NtevWXBs.js +285 -0
  51. package/dist/graph-viewer/viewer/{Scores-ZS16yk0n.js → Scores-Dgv4WePL.js} +3 -3
  52. package/dist/graph-viewer/viewer/Timeline-CzY3LVDu.js +335 -0
  53. package/dist/graph-viewer/viewer/Today-Bi9IIwuh.js +623 -0
  54. package/dist/graph-viewer/viewer/Topology-CzjqSFXH.js +239 -0
  55. package/dist/graph-viewer/viewer/Traces-CMX0H1VU.js +254 -0
  56. package/dist/graph-viewer/viewer/{WallPages-CzWpyIfp.js → WallPages-Clj4bORg.js} +50 -32
  57. package/dist/graph-viewer/viewer/addon-webgl-BSCscllv.js +4027 -0
  58. package/dist/graph-viewer/viewer/agent-record-BrP-ENHg.css +2 -0
  59. package/dist/graph-viewer/viewer/{bot-D6Nrej7Z.js → bot-BaQU59LG.js} +1 -1
  60. package/dist/graph-viewer/viewer/{chevron-right-D_5IKLxu.js → chevron-right-Xn05jYLT.js} +1 -1
  61. package/dist/graph-viewer/viewer/{createLucideIcon-yH0cxLMy.js → createLucideIcon-BSphcoOJ.js} +1 -1
  62. package/dist/graph-viewer/viewer/dashboard-D3JhmRhe-DSl0zhkw.js +371 -0
  63. package/dist/graph-viewer/viewer/{data-CkWfWr7i.js → data-CVHeKhrh.js} +144 -139
  64. package/dist/graph-viewer/viewer/dist-4_KJz8ZM.js +349 -0
  65. package/dist/graph-viewer/viewer/dist-Dy-wrdTt.js +1615 -0
  66. package/dist/graph-viewer/viewer/es2015-utW4DTOJ.js +3506 -0
  67. package/dist/graph-viewer/viewer/{final-output-kwY11u9X.js → final-output-BYT-g-9j.js} +1 -1
  68. package/dist/graph-viewer/viewer/flow-waterfall-model-DvrgPLGS-BdThSFH-.js +2696 -0
  69. package/dist/graph-viewer/viewer/git-branch-BzTbIcYL.js +28 -0
  70. package/dist/graph-viewer/viewer/{highlights-Btsi5OXl.js → highlights-DWeSCtiR.js} +4 -4
  71. package/dist/graph-viewer/viewer/jsx-runtime-DPT6sCLq.js +319 -0
  72. package/dist/graph-viewer/viewer/lazy-pages-ChiMJ8r_.js +803 -0
  73. package/dist/graph-viewer/viewer/{markdown-CX_sVrXB.js → markdown-lADwhD7y.js} +2324 -2608
  74. package/dist/graph-viewer/viewer/model-brand-bTcMjQtB-RSb7EbGB.js +476 -0
  75. package/dist/graph-viewer/viewer/{page-header-Brq611fd.js → page-header-QbUg8F8i.js} +12 -11
  76. package/dist/graph-viewer/{plain-words-CgvxtEOa.js → viewer/plain-words-BrMHl0On.js} +9 -4
  77. package/dist/graph-viewer/viewer/primitives-znfPK9NP-B6UO7uDr.js +346 -0
  78. package/dist/graph-viewer/viewer/react-DQ7E2Epi.js +4254 -0
  79. package/dist/graph-viewer/viewer/{react-dom-t1L4_-il.js → react-dom-BEusmvQH.js} +1 -1
  80. package/dist/graph-viewer/viewer/record-DZnT6SWN-H-ul3U3a.js +3523 -0
  81. package/dist/graph-viewer/viewer/record-W39D5MO-.js +1 -0
  82. package/dist/graph-viewer/viewer/record-part-CbweyYoV.js +335 -0
  83. package/dist/graph-viewer/viewer/{segmented-control-BaJmvTNd.js → segmented-control-Di1mbQlP.js} +27 -26
  84. package/dist/graph-viewer/viewer/{shiki-Qnby7Sh6.js → shiki-BfNNlmfZ.js} +15 -15
  85. package/dist/graph-viewer/viewer/status-meta-S0kV_RDp.js +273 -0
  86. package/dist/graph-viewer/viewer/{stream-tokenizer-CWtnjmRd.js → stream-tokenizer-B5wWaM3U.js} +12 -12
  87. package/dist/graph-viewer/viewer/{themes-1i1fzpRk.js → themes-DuRxHiga.js} +1 -1
  88. package/dist/graph-viewer/viewer/ui-Co03nZUX.js +889 -0
  89. package/dist/graph-viewer/viewer/utils-BuObIC0n.js +1815 -0
  90. package/dist/graph-viewer/viewer/workbench-E6_5q_oL.js +28351 -0
  91. package/dist/graph-viewer/viewer/workflows--mZpHYqo.js +3298 -0
  92. package/dist/graph-viewer/viewer/workspace-cKs9sGEO.js +2468 -0
  93. package/dist/graph-viewer/{workspace-model-Ewf17pTW.js → workspace-model-BkPl_J8E.js} +1 -1
  94. package/dist/graph-viewer/workspace-viewer.js +7452 -7489
  95. package/dist/graph-viewer/workspace.js +1 -1
  96. package/dist/index.mjs +27 -22
  97. package/package.json +10 -9
  98. package/dist/graph-viewer/Analytics-DFWW8Phh.js +0 -938
  99. package/dist/graph-viewer/Checks-qgqV4xgV.js +0 -155
  100. package/dist/graph-viewer/Conversations-CGB45kpj.js +0 -545
  101. package/dist/graph-viewer/LiveRun-C21wUKAY.js +0 -210
  102. package/dist/graph-viewer/Overview-BjeLsA2I.js +0 -506
  103. package/dist/graph-viewer/RunPage-CkkcBEUe.js +0 -258
  104. package/dist/graph-viewer/Timeline-C2Xolk0t.js +0 -293
  105. package/dist/graph-viewer/Today-BVVDtSVN.js +0 -660
  106. package/dist/graph-viewer/Topology-DO5XX8e4.js +0 -545
  107. package/dist/graph-viewer/Traces-BhMxjNgw.js +0 -259
  108. package/dist/graph-viewer/part-events-BrLrg_EV.js +0 -276
  109. package/dist/graph-viewer/record-part-CZal_IMH.js +0 -1408
  110. package/dist/graph-viewer/ui-D8QZRsC3.js +0 -938
  111. package/dist/graph-viewer/viewer/Analytics-DD__nbLm.js +0 -939
  112. package/dist/graph-viewer/viewer/Checks-Ds5M7eAW.js +0 -156
  113. package/dist/graph-viewer/viewer/Conversations-C1n0EBBd.js +0 -819
  114. package/dist/graph-viewer/viewer/Files-Cjr7NMU_.js +0 -448
  115. package/dist/graph-viewer/viewer/LiveRun-uPTkPSjo.js +0 -6772
  116. package/dist/graph-viewer/viewer/Overview-4Umk14_2.js +0 -507
  117. package/dist/graph-viewer/viewer/RunPage-DZlBW7Va.js +0 -257
  118. package/dist/graph-viewer/viewer/Timeline-BnK6-yBR.js +0 -294
  119. package/dist/graph-viewer/viewer/Today-a_-oNigi.js +0 -660
  120. package/dist/graph-viewer/viewer/Topology-CQPCLQT6.js +0 -546
  121. package/dist/graph-viewer/viewer/Traces-C0IGk0L4.js +0 -259
  122. package/dist/graph-viewer/viewer/WorkflowGraph-DZ3xejKE-jRXKeSrg.js +0 -1559
  123. package/dist/graph-viewer/viewer/agent-record-Dw772ROs.css +0 -2
  124. package/dist/graph-viewer/viewer/agent-timeline-Cs9Qbpvo.js +0 -1798
  125. package/dist/graph-viewer/viewer/dist-C1-7EfoW.js +0 -488
  126. package/dist/graph-viewer/viewer/file-text-m7a3piQF.js +0 -47
  127. package/dist/graph-viewer/viewer/jsx-runtime-DQWyJOhv.js +0 -2136
  128. package/dist/graph-viewer/viewer/lazy-pages-BowaGsg-.js +0 -20
  129. package/dist/graph-viewer/viewer/model-brand-bTcMjQtB-fagiBQam.js +0 -723
  130. package/dist/graph-viewer/viewer/popover-CvOAjlnk.js +0 -5329
  131. package/dist/graph-viewer/viewer/react-CY3IbSNO.js +0 -4262
  132. package/dist/graph-viewer/viewer/record-part-D3_Anfpe.js +0 -1329
  133. package/dist/graph-viewer/viewer/terminal-83J_I4Ne.js +0 -52
  134. package/dist/graph-viewer/viewer/ui-C9b1rIUH.js +0 -938
  135. package/dist/graph-viewer/viewer/workspace-CekmOBs3.js +0 -25100
  136. package/dist/graph-viewer/viewer/x-DOc2URqZ.js +0 -56
@@ -1,545 +0,0 @@
1
- import { C as e, E as t, T as n, a as r, c as i, d as a, f as o, g as s, l as c, m as l, n as u, o as d, s as f, t as p, u as m, v as h, x as g } from "./ui-D8QZRsC3.js";
2
- import { agentParam as _ } from "./RunPage-CkkcBEUe.js";
3
- import { useEffect as v, useLayoutEffect as y, useMemo as b, useRef as x, useState as S } from "react";
4
- import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
5
- //#region src/workspace/run/Topology.tsx
6
- function E(e, t, n, r, i) {
7
- let a = new Set(e.teams.map((e) => e.id)), o = i ? Math.min(280, t - 32) : a.size ? 216 : 272, s = o + (a.size ? 56 : 72), c = /* @__PURE__ */ new Map(), l = [], u = (i, d, f) => {
8
- let p = 24 + d * s;
9
- if (i.children.length > 8 && a.has(i.id)) {
10
- let e = 24 + (d + 1) * s, n = Math.max(1, Math.floor((t - e - 48 + 8) / 248)), a = r.has(i.id), u = Math.ceil(i.children.length / n), m = a ? 48 + u * 52 - 8 + 12 : 48;
11
- return l.push({
12
- id: i.id,
13
- x: e,
14
- y: f,
15
- w: n * 248 - 8 + 24,
16
- h: m,
17
- open: a
18
- }), a && i.children.forEach((t, r) => c.set(t, {
19
- x: e + 12 + r % n * 248,
20
- y: f + 48 + Math.floor(r / n) * 52,
21
- w: 240,
22
- h: 44,
23
- sm: !0,
24
- team: i.id
25
- })), c.set(i.id, {
26
- x: p,
27
- y: f + 24 - 29 + 4,
28
- w: o,
29
- h: 58
30
- }), Math.max(m, 58) + 16;
31
- }
32
- if (!i.children.length) return c.set(i.id, {
33
- x: p,
34
- y: f,
35
- w: o,
36
- h: 58
37
- }), 68;
38
- let m = f;
39
- for (let t of i.children) m += u(e.byId.get(t), d + 1, m);
40
- let h = m - f - 10, g = c.get(i.children[0]);
41
- return c.set(i.id, {
42
- x: p,
43
- y: h > n - 48 ? g.y : f + Math.max(0, h / 2 - 29),
44
- w: o,
45
- h: 58
46
- }), Math.max(m - f, 68);
47
- };
48
- if (i) {
49
- let t = 16;
50
- for (let n of e.tree) c.set(n.id, {
51
- x: 12 + Math.min(n.depth, 4) * 20,
52
- y: t,
53
- w: o - Math.min(n.depth, 4) * 20,
54
- h: 58
55
- }), t += 66;
56
- } else {
57
- let t = 24;
58
- for (let n of e.agents.filter((e) => !e.parent)) t += u(n, 0, t);
59
- }
60
- let d = [...c.values(), ...l], f = Math.max(0, ...d.map((e) => e.x + e.w)) + 24, p = Math.max(0, ...d.map((e) => e.y + e.h)) + 24, m = i ? 0 : Math.max(0, (t - f) / 2);
61
- for (let e of d) e.x += m;
62
- return {
63
- pos: c,
64
- frames: l,
65
- W: Math.max(t, f + m),
66
- H: Math.max(n, p),
67
- over: p > n + 160 || f > t + 160
68
- };
69
- }
70
- function D({ m: t, agent: c, selectAgent: u, route: g, doc: C }) {
71
- let D = x(null), A = s(), [j, M] = S({
72
- w: 1e3,
73
- h: 700
74
- }), [N, P] = S({
75
- top: 0,
76
- left: 0
77
- }), [F, I] = S(() => new Set(t.teams.length === 1 ? [t.teams[0].id] : [])), L = l();
78
- y(() => {
79
- let e = D.current;
80
- if (!e) return;
81
- let t = () => M({
82
- w: e.clientWidth,
83
- h: e.clientHeight
84
- });
85
- t();
86
- let n = new ResizeObserver(t);
87
- return n.observe(e), () => n.disconnect();
88
- }, []);
89
- let R = b(() => E(t, j.w, j.h, F, A), [
90
- t,
91
- j,
92
- F,
93
- A
94
- ]), z = c ?? t.root?.id ?? null, { anc: B, desc: V } = b(() => {
95
- let e = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
96
- for (let n = z ? t.byId.get(z)?.parent : null; n; n = t.byId.get(n)?.parent ?? null) e.add(n);
97
- let r = (e) => {
98
- for (let i of t.byId.get(e)?.children ?? []) n.add(i), r(i);
99
- };
100
- return z && r(z), {
101
- anc: e,
102
- desc: n
103
- };
104
- }, [t, z]), H = z !== null && z !== t.root?.id, U = (e) => !H || e === z || B.has(e) || V.has(e), W = (e) => {
105
- let t = R.pos.get(e);
106
- t && D.current && D.current.scrollTo({
107
- left: t.x + t.w / 2 - j.w / 2,
108
- top: t.y + t.h / 2 - j.h / 2,
109
- behavior: "smooth"
110
- });
111
- };
112
- v(() => {
113
- if (z) {
114
- let e = t.byId.get(z)?.team;
115
- e && e !== z && !F.has(e) && I(/* @__PURE__ */ new Set([...F, e]));
116
- }
117
- }, [z]);
118
- let G = (e) => [e.x + e.w, e.y + e.h / 2], K = (e) => [e.x, e.y + e.h / 2], q = (e, t, n, r) => {
119
- if (A) {
120
- let [i, a] = K(t);
121
- return /* @__PURE__ */ w("path", {
122
- d: `M${e.x + 16} ${e.y + e.h} V${a - 8} q0 8 8 8 H${i}`,
123
- className: n ? "hot" : ""
124
- }, r);
125
- }
126
- let [i, a] = G(e), [o, s] = K(t), c = (i + o) / 2;
127
- return /* @__PURE__ */ w("path", {
128
- d: `M${i} ${a} C${c} ${a} ${c} ${s} ${o} ${s}`,
129
- className: n ? "hot" : H ? "fade" : ""
130
- }, r);
131
- }, J = [];
132
- for (let e of t.agents) {
133
- let t = R.pos.get(e.id), n = e.parent ? R.pos.get(e.parent) : null;
134
- t && n && !t.team && J.push(q(n, t, e.id === z || e.parent === z || B.has(e.id) && (B.has(e.parent) || e.parent === z), e.id));
135
- }
136
- for (let e of R.frames) {
137
- let t = R.pos.get(e.id);
138
- t && J.push(q(t, {
139
- x: e.x,
140
- y: e.y,
141
- w: e.w,
142
- h: 48
143
- }, e.id === z || R.pos.get(z ?? "")?.team === e.id, `f:${e.id}`));
144
- }
145
- let Y = t.agents.filter((e) => {
146
- let t = R.pos.get(e.id);
147
- return t && t.y + t.h >= N.top - 400 && t.y <= N.top + j.h + 400 && t.x + t.w >= N.left - 400 && t.x <= N.left + j.w + 400;
148
- }), X = () => D.current?.getBoundingClientRect(), Z = z ? t.byId.get(z) ?? null : null, Q = b(() => {
149
- let e = /* @__PURE__ */ new Map();
150
- for (let n of t.agents) e.has(n.state.label) || e.set(n.state.label, n.state);
151
- return [...e.values()];
152
- }, [t]);
153
- return /* @__PURE__ */ T("div", {
154
- className: "rp-topo",
155
- children: [/* @__PURE__ */ T("section", {
156
- className: "rp-card",
157
- "aria-label": "Spawn tree",
158
- children: [/* @__PURE__ */ T("div", {
159
- className: "rp-hd rp-hd-tools",
160
- children: [/* @__PURE__ */ w("div", {
161
- className: "rp-legend",
162
- children: Q.map((e) => /* @__PURE__ */ T("span", {
163
- className: "rp-key",
164
- children: [/* @__PURE__ */ w(f, { tone: e.tone }), e.label]
165
- }, e.label))
166
- }), /* @__PURE__ */ T("span", {
167
- className: "end",
168
- children: [t.teams.length > 0 && !A && /* @__PURE__ */ T("span", {
169
- className: "rp-group",
170
- role: "group",
171
- "aria-label": "Teams",
172
- children: [/* @__PURE__ */ w("button", {
173
- type: "button",
174
- className: "rp-btn",
175
- onClick: () => I(new Set(t.teams.map((e) => e.id))),
176
- children: "Expand all"
177
- }), /* @__PURE__ */ w("button", {
178
- type: "button",
179
- className: "rp-btn",
180
- onClick: () => I(/* @__PURE__ */ new Set()),
181
- children: "Collapse all"
182
- })]
183
- }), /* @__PURE__ */ w(d, {
184
- label: "Go to agent",
185
- options: a(t),
186
- groups: m(t),
187
- value: z,
188
- placeholder: `Search ${t.agents.length} agents`,
189
- width: 340,
190
- style: { width: 220 },
191
- onChange: (e) => {
192
- e && (u(e), window.setTimeout(() => W(e), 60));
193
- },
194
- children: /* @__PURE__ */ w("span", {
195
- className: "dim",
196
- children: "Go to agent"
197
- })
198
- })]
199
- })]
200
- }), /* @__PURE__ */ T("div", {
201
- className: "rp-topo-wrap",
202
- children: [/* @__PURE__ */ T("div", {
203
- className: "rp-topo-canvas",
204
- ref: D,
205
- onScroll: (e) => P({
206
- top: e.currentTarget.scrollTop,
207
- left: e.currentTarget.scrollLeft
208
- }),
209
- children: [
210
- /* @__PURE__ */ w("svg", {
211
- className: "edges",
212
- width: R.W,
213
- height: R.H,
214
- "aria-hidden": "true",
215
- children: J
216
- }),
217
- R.frames.map((e) => {
218
- let a = t.teams.find((t) => t.id === e.id), o = a.members.map((e) => t.byId.get(e)), s = o.filter((e) => e.state.tone === "live").length, c = o.filter((e) => n(e.state.tone)).length, l = H && !(e.id === z || B.has(e.id) || R.pos.get(z ?? "")?.team === e.id);
219
- return /* @__PURE__ */ w("div", {
220
- className: `rp-team${l ? " fade" : ""}`,
221
- style: {
222
- left: e.x,
223
- top: e.y,
224
- width: e.w,
225
- height: e.h
226
- },
227
- children: /* @__PURE__ */ T("button", {
228
- type: "button",
229
- className: "rp-team-h",
230
- "aria-expanded": e.open,
231
- onClick: () => I((t) => {
232
- let n = new Set(t);
233
- return n.has(e.id) ? n.delete(e.id) : n.add(e.id), n;
234
- }),
235
- onPointerEnter: (e) => L.show({
236
- content: /* @__PURE__ */ w(i, {
237
- m: t,
238
- team: a
239
- }),
240
- rect: e.currentTarget.getBoundingClientRect(),
241
- bounds: X(),
242
- vertical: !0,
243
- wide: !0
244
- }),
245
- onPointerLeave: () => L.hide(),
246
- children: [
247
- /* @__PURE__ */ w("span", {
248
- className: "cv",
249
- children: /* @__PURE__ */ w(r, { name: "chevron" })
250
- }),
251
- /* @__PURE__ */ w("b", { children: a.label }),
252
- /* @__PURE__ */ w("span", {
253
- className: "ct",
254
- children: o.length
255
- }),
256
- /* @__PURE__ */ T("span", {
257
- className: "st",
258
- children: [
259
- /* @__PURE__ */ T("span", {
260
- className: "mb",
261
- children: [/* @__PURE__ */ w("i", {
262
- className: "ok",
263
- style: { width: `${c / o.length * 100}%` }
264
- }), /* @__PURE__ */ w("i", {
265
- className: "live",
266
- style: { width: `${s / o.length * 100}%` }
267
- })]
268
- }),
269
- s ? `${s} running · ` : "",
270
- h(o.reduce((e, t) => e + (t.tokens ?? 0), 0))
271
- ]
272
- })
273
- ]
274
- })
275
- }, e.id);
276
- }),
277
- Y.map((n) => {
278
- let r = R.pos.get(n.id), i = `rp-node${r.sm ? " sm" : ""}${n.id === z ? " sel" : ""}${U(n.id) || r.team && R.pos.get(z ?? "")?.team === r.team ? "" : " fade"}${n.state.tone === "none" ? " ghost" : ""}`;
279
- return /* @__PURE__ */ T("button", {
280
- type: "button",
281
- className: i,
282
- style: {
283
- left: r.x,
284
- top: r.y,
285
- width: r.w
286
- },
287
- "aria-pressed": n.id === z,
288
- onClick: () => u(n.id),
289
- onPointerEnter: (e) => L.show({
290
- content: /* @__PURE__ */ w(p, {
291
- m: t,
292
- a: n
293
- }),
294
- rect: e.currentTarget.getBoundingClientRect(),
295
- bounds: X(),
296
- vertical: !0,
297
- wide: n.tools.length > 0
298
- }),
299
- onPointerLeave: () => L.hide(),
300
- onFocus: (e) => L.show({
301
- content: /* @__PURE__ */ w(p, {
302
- m: t,
303
- a: n
304
- }),
305
- rect: e.currentTarget.getBoundingClientRect(),
306
- bounds: X(),
307
- vertical: !0,
308
- wide: n.tools.length > 0
309
- }),
310
- onBlur: () => L.hide(),
311
- children: [/* @__PURE__ */ T("span", {
312
- className: "r1",
313
- children: [
314
- /* @__PURE__ */ w(f, { tone: n.state.tone }),
315
- /* @__PURE__ */ w("span", {
316
- className: "nm",
317
- title: n.name,
318
- children: o(r.sm && n.parent && n.name.startsWith(`${t.byId.get(n.parent)?.name}-`) ? n.name.slice((t.byId.get(n.parent)?.name.length ?? 0) + 1) : n.name.length <= (r.sm ? 18 : 24) ? n.name : n.short, r.sm ? 18 : 24)
319
- }),
320
- r.sm && /* @__PURE__ */ w("span", {
321
- className: "dim",
322
- children: h(n.tokens)
323
- })
324
- ]
325
- }), !r.sm && /* @__PURE__ */ w("span", {
326
- className: "r2",
327
- children: [
328
- n.state.label,
329
- n.tokens === null ? "no usage recorded" : `${h(n.tokens)} tokens`,
330
- n.tokens === null ? "" : `${e(n.steps.length)} steps`,
331
- n.failedSteps ? `${n.failedSteps} failed` : ""
332
- ].filter(Boolean).join(" · ")
333
- })]
334
- }, n.id);
335
- }),
336
- /* @__PURE__ */ w("div", { style: {
337
- position: "absolute",
338
- left: 0,
339
- top: R.H - 1,
340
- width: R.W,
341
- height: 1
342
- } })
343
- ]
344
- }), R.over && !A && /* @__PURE__ */ w(O, {
345
- m: t,
346
- L: R,
347
- view: N,
348
- size: j,
349
- selected: z,
350
- onJump: (e, t) => D.current?.scrollTo({
351
- left: e - j.w / 2,
352
- top: t - j.h / 2
353
- })
354
- })]
355
- })]
356
- }), Z && /* @__PURE__ */ w(k, {
357
- m: t,
358
- a: Z,
359
- onSelect: (e) => {
360
- u(e), window.setTimeout(() => W(e), 60);
361
- },
362
- href: g.href("conversations", { agent: _(C.run.id, Z.id) })
363
- })]
364
- });
365
- }
366
- function O({ m: e, L: t, view: n, size: r, selected: i, onJump: a }) {
367
- let o = 184 / t.W, s = Math.min(160, t.H * o);
368
- return /* @__PURE__ */ T("div", {
369
- className: "rp-mm",
370
- onClick: (e) => {
371
- let t = e.currentTarget.querySelector("svg").getBoundingClientRect();
372
- a((e.clientX - t.left) / o, (e.clientY - t.top) / o);
373
- },
374
- children: [/* @__PURE__ */ T("div", {
375
- className: "mm-h",
376
- children: [/* @__PURE__ */ w("span", { children: "Map" }), /* @__PURE__ */ T("span", { children: [e.agents.length, " agents"] })]
377
- }), /* @__PURE__ */ T("svg", {
378
- viewBox: `0 0 184 ${s}`,
379
- style: { height: s },
380
- "aria-hidden": "true",
381
- children: [
382
- t.frames.map((e) => /* @__PURE__ */ w("rect", {
383
- x: e.x * o,
384
- y: e.y * o,
385
- width: e.w * o,
386
- height: e.h * o,
387
- rx: "1.5",
388
- className: "fr"
389
- }, e.id)),
390
- [...t.pos].map(([t, n]) => /* @__PURE__ */ w("rect", {
391
- x: n.x * o,
392
- y: n.y * o,
393
- width: Math.max(1.5, n.w * o),
394
- height: Math.max(1.5, n.h * o),
395
- rx: "1.5",
396
- className: t === i ? "sel" : e.byId.get(t)?.state.tone === "live" ? "live" : ""
397
- }, t)),
398
- /* @__PURE__ */ w("rect", {
399
- x: n.left * o,
400
- y: n.top * o,
401
- width: r.w * o,
402
- height: r.h * o,
403
- rx: "2",
404
- className: "vp"
405
- })
406
- ]
407
- })]
408
- });
409
- }
410
- function k({ m: n, a: i, onSelect: a, href: o }) {
411
- let s = g(n.t0), l = Math.max(1, ...i.tools.map((e) => e.calls)), d = i.parent ? n.byId.get(i.parent) : null, p = [[
412
- i.model ?? "model",
413
- i.latency.p50,
414
- i.latency.p90,
415
- i.latency.p99,
416
- i.modelCalls
417
- ], ...i.tools.slice(0, 5).map((e) => [
418
- e.name,
419
- e.p50,
420
- e.p90,
421
- e.p99,
422
- e.calls
423
- ])];
424
- return /* @__PURE__ */ T("aside", {
425
- className: "rp-card",
426
- "aria-label": i.name,
427
- children: [/* @__PURE__ */ T("div", {
428
- className: "rp-hd",
429
- children: [/* @__PURE__ */ T("h2", { children: [/* @__PURE__ */ w(f, { tone: i.state.tone }), i.name] }), /* @__PURE__ */ w("span", {
430
- className: "end",
431
- children: /* @__PURE__ */ w("span", {
432
- className: `rp-pill ${i.state.tone}`,
433
- children: i.state.label
434
- })
435
- })]
436
- }), /* @__PURE__ */ T("div", {
437
- className: "rp-scroll rp-tinsp",
438
- children: [
439
- /* @__PURE__ */ T("dl", {
440
- className: "rp-kv",
441
- children: [
442
- /* @__PURE__ */ w("dt", { children: "Model" }),
443
- /* @__PURE__ */ w("dd", { children: [i.model, i.harness].filter(Boolean).join(" · ") || "—" }),
444
- /* @__PURE__ */ w("dt", { children: "Spawned" }),
445
- /* @__PURE__ */ T("dd", { children: [d ? `by ${d.name} · ` : "", i.start === null ? "—" : `${s(Math.max(0, i.start))} UTC`] }),
446
- /* @__PURE__ */ w("dt", { children: "Ended" }),
447
- /* @__PURE__ */ w("dd", { children: i.state.tone === "live" ? "running" : i.end === null ? "—" : `${s(i.end)} UTC` }),
448
- /* @__PURE__ */ w("dt", { children: "Cost" }),
449
- /* @__PURE__ */ w("dd", { children: c(i) })
450
- ]
451
- }),
452
- /* @__PURE__ */ T("div", {
453
- className: "rp-stat3",
454
- children: [
455
- /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("b", { children: h(i.tokens) }), /* @__PURE__ */ w("span", { children: "tokens" })] }),
456
- /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("b", { children: e(i.modelCalls) }), /* @__PURE__ */ w("span", { children: "model calls" })] }),
457
- /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("b", { children: e(i.toolCalls) }), /* @__PURE__ */ w("span", { children: "tool calls" })] }),
458
- /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("b", { children: i.failedSteps }), /* @__PURE__ */ w("span", { children: "failed steps" })] }),
459
- /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("b", { children: i.restarts.length }), /* @__PURE__ */ w("span", { children: "restarts" })] }),
460
- /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("b", { children: i.commits ?? "—" }), /* @__PURE__ */ w("span", { children: "commits" })] })
461
- ]
462
- }),
463
- i.modelCalls > 0 && /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w("h5", {
464
- className: "rp-subh",
465
- children: "Latency"
466
- }), /* @__PURE__ */ T("table", {
467
- className: "rp-lt",
468
- children: [/* @__PURE__ */ w("thead", { children: /* @__PURE__ */ T("tr", { children: [
469
- /* @__PURE__ */ w("th", {}),
470
- /* @__PURE__ */ w("th", { children: "calls" }),
471
- /* @__PURE__ */ w("th", { children: "p50" }),
472
- /* @__PURE__ */ w("th", { children: "p90" }),
473
- /* @__PURE__ */ w("th", { children: "p99" })
474
- ] }) }), /* @__PURE__ */ w("tbody", { children: p.map(([n, r, i, a, o]) => /* @__PURE__ */ T("tr", { children: [
475
- /* @__PURE__ */ w("td", {
476
- title: n,
477
- children: n
478
- }),
479
- /* @__PURE__ */ w("td", { children: e(o) }),
480
- /* @__PURE__ */ w("td", { children: t(r) }),
481
- /* @__PURE__ */ w("td", { children: t(i) }),
482
- /* @__PURE__ */ w("td", { children: t(a) })
483
- ] }, n)) })]
484
- })] }),
485
- i.tools.length > 0 && /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w("h5", {
486
- className: "rp-subh",
487
- children: "Tool calls"
488
- }), /* @__PURE__ */ w("div", {
489
- className: "rp-tbars four",
490
- children: i.tools.slice(0, 8).map((t) => /* @__PURE__ */ T("div", {
491
- className: "row",
492
- children: [
493
- /* @__PURE__ */ w("span", {
494
- className: "l",
495
- title: t.name,
496
- children: t.name
497
- }),
498
- /* @__PURE__ */ w(u, {
499
- ok: t.calls - t.failures,
500
- failed: t.failures,
501
- max: l
502
- }),
503
- /* @__PURE__ */ w("span", {
504
- className: "n",
505
- children: e(t.calls)
506
- }),
507
- /* @__PURE__ */ w("span", {
508
- className: "n f",
509
- children: t.failures ? `${t.failures} ✕` : ""
510
- })
511
- ]
512
- }, t.name))
513
- })] }),
514
- i.children.length > 0 && /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ T("h5", {
515
- className: "rp-subh",
516
- children: ["Spawned · ", i.children.length]
517
- }), /* @__PURE__ */ T("div", {
518
- className: "rp-chips",
519
- children: [i.children.slice(0, 14).map((e) => {
520
- let t = n.byId.get(e);
521
- return /* @__PURE__ */ T("button", {
522
- type: "button",
523
- className: "rp-chip",
524
- onClick: () => a(e),
525
- children: [/* @__PURE__ */ w(f, { tone: t.state.tone }), t.name]
526
- }, e);
527
- }), i.children.length > 14 && /* @__PURE__ */ T("span", {
528
- className: "rp-chip dim",
529
- children: [i.children.length - 14, " more"]
530
- })]
531
- })] }),
532
- /* @__PURE__ */ w("p", { children: /* @__PURE__ */ T("a", {
533
- className: "rp-btn sm framed",
534
- href: o,
535
- children: ["Conversation", /* @__PURE__ */ w(r, {
536
- name: "arrow",
537
- size: 14
538
- })]
539
- }) })
540
- ]
541
- })]
542
- });
543
- }
544
- //#endregion
545
- export { D as Topology };