@tangle-network/sandbox-cli 0.21.64 → 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 +9 -8
  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,258 +0,0 @@
1
- import { A as e, y as t } from "./run-receipt-Bvi4-KVM.js";
2
- import { n, p as r } from "./data-BJmP7F1M.js";
3
- import { C as i, M as a, o, r as s, v as c, w as l, y as u } from "./ui-D8QZRsC3.js";
4
- import { o as d } from "./lazy-pages-DM0cZM10.js";
5
- import { Suspense as f, lazy as p, useCallback as m, useEffect as h, useMemo as g, useRef as _, useState as v } from "react";
6
- import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
7
- import { PageHeader as S } from "@tangle-network/ui/primitives";
8
- //#region src/workspace/run/RunPage.tsx
9
- var C = [
10
- "overview",
11
- "timeline",
12
- "files",
13
- "topology",
14
- "conversations",
15
- "traces",
16
- "analytics",
17
- "checks"
18
- ], w = {
19
- overview: "Overview",
20
- timeline: "Timeline",
21
- files: "Files",
22
- topology: "Topology",
23
- conversations: "Conversations",
24
- traces: "Traces",
25
- analytics: "Analytics",
26
- checks: "Checks"
27
- }, T = p(() => import("./Overview-BjeLsA2I.js").catch(d).then((e) => ({ default: e.Overview }))), E = p(() => import("./Timeline-C2Xolk0t.js").catch(d).then((e) => ({ default: e.TimelineTab }))), D = p(() => import("./Files-DtZhf0ii.js").catch(d).then((e) => ({ default: e.Files }))), O = p(() => import("./Topology-DO5XX8e4.js").catch(d).then((e) => ({ default: e.Topology }))), k = p(() => import("./Conversations-CGB45kpj.js").catch(d).then((e) => ({ default: e.Conversations }))), A = p(() => import("./Traces-BhMxjNgw.js").catch(d).then((e) => ({ default: e.Traces }))), j = p(() => import("./Analytics-DFWW8Phh.js").catch(d).then((e) => ({ default: e.Analytics }))), M = p(() => import("./Checks-qgqV4xgV.js").catch(d).then((e) => ({ default: e.Checks }))), N = {
28
- agents: "conversations",
29
- spend: "analytics",
30
- progress: "overview"
31
- }, P = [
32
- ["findings", "Findings"],
33
- ["outputs", "Outputs and grades"],
34
- ["readout", "Readout"],
35
- ["versions", "Versions"],
36
- ["graph", "Knowledge graph"],
37
- ["profiles", "Profiles"],
38
- ["assessments", "Assessments"],
39
- ["coverage", "Capture"],
40
- ["input", "Input"]
41
- ];
42
- function F(e) {
43
- let t = () => {
44
- let e = window.location.pathname.split("/").filter(Boolean), t = e[0] === "run" ? decodeURIComponent(e[2] ?? "") : "";
45
- return {
46
- tab: C.includes(t) ? t : null,
47
- search: window.location.search
48
- };
49
- }, [n, r] = v(t);
50
- h(() => {
51
- let e = () => r(t());
52
- return window.addEventListener("popstate", e), () => window.removeEventListener("popstate", e);
53
- }, []);
54
- let i = g(() => new URLSearchParams(n.search), [n.search]), a = m((t, n = {}, r = !0) => {
55
- let i = r ? new URLSearchParams(window.location.search) : new URLSearchParams();
56
- for (let e of [
57
- "section",
58
- "node",
59
- "view",
60
- "details",
61
- "tab"
62
- ]) i.delete(e);
63
- let a = new URLSearchParams(window.location.search).get("theme");
64
- a && i.set("theme", a);
65
- for (let [e, t] of Object.entries(n)) t == null || t === "" ? i.delete(e) : i.set(e, t);
66
- let o = i.toString();
67
- return `/run/${encodeURIComponent(e)}/${t}${o ? `?${o}` : ""}`;
68
- }, [e]), o = m((e, t = {}, n = !1) => {
69
- let r = a(e, t);
70
- r !== window.location.pathname + window.location.search && (n ? window.history.replaceState(null, "", r) : window.history.pushState(null, "", r), window.dispatchEvent(new PopStateEvent("popstate")));
71
- }, [a]);
72
- return {
73
- tab: n.tab,
74
- params: i,
75
- href: a,
76
- go: o
77
- };
78
- }
79
- var I = (e, t) => t === e ? "root" : t.startsWith(`${e}:`) ? t.slice(e.length + 1) : t, L = (e, t, n) => {
80
- if (!n) return null;
81
- let r = n === "root" ? e.root?.id ?? t : e.byId.has(n) ? n : `${t}:${n}`;
82
- return e.byId.has(r) ? r : null;
83
- };
84
- function R({ api: a, id: c, legacy: l }) {
85
- let d = F(c), p = `${a}/runs/${encodeURIComponent(c)}`, v = r(p, void 0, !0), R = !!v.data?.execution?.alive, B = r(`${p}/workspace`, R ? 15e3 : void 0, !0), V = r(v.data ? `${a}/plays/${encodeURIComponent(v.data.run.play)}` : null), H = g(() => B.data && v.data ? u(B.data, v.data.run) : null, [B.data, v.data]), U = d.params.get("section"), W = U ? N[U] : void 0;
86
- h(() => {
87
- if (!W) return;
88
- let e = d.params.get("node");
89
- d.go(W, {
90
- agent: e ? I(c, e) : void 0,
91
- file: d.params.get("file") ?? void 0
92
- }, !0);
93
- }, [W]);
94
- let G = d.tab ?? "overview", K = H ? L(H, c, d.params.get("agent")) ?? H.root?.id ?? null : null, q = m((e, t) => d.go(t ?? G, { agent: e ? I(c, e) : null }), [
95
- d,
96
- G,
97
- c
98
- ]), J = _(null);
99
- if (v.error && !v.data) return /* @__PURE__ */ x("p", {
100
- className: "ws-status",
101
- role: "alert",
102
- children: ["This run is unavailable: ", v.error]
103
- });
104
- if (!v.data) return /* @__PURE__ */ b("p", {
105
- className: "ws-status",
106
- role: "status",
107
- children: "Loading…"
108
- });
109
- let Y = v.data, X = H ? {
110
- conversations: i(H.agents.filter((e) => e.steps.length || e.turns).length),
111
- traces: i(H.totals.steps),
112
- checks: i(Y.run.check?.counts?.checks ?? H.releases.length)
113
- } : {}, Z = (e) => {
114
- let t = C.indexOf(G), n = {
115
- ArrowRight: t + 1,
116
- ArrowLeft: t - 1,
117
- Home: 0,
118
- End: C.length - 1
119
- }[e.key];
120
- if (n === void 0) return;
121
- e.preventDefault();
122
- let r = C[(n + C.length) % C.length];
123
- d.go(r), requestAnimationFrame(() => J.current?.querySelector(`[data-tab="${r}"]`)?.focus());
124
- }, Q = U && !W && l ? l(U) : null, $ = H ? {
125
- api: a,
126
- runUrl: p,
127
- doc: Y,
128
- play: V.data ?? null,
129
- m: H,
130
- route: {
131
- ...d,
132
- tab: G
133
- },
134
- agent: K,
135
- selectAgent: q
136
- } : null;
137
- return /* @__PURE__ */ b(s, { children: /* @__PURE__ */ x("div", {
138
- className: "rp rp-run",
139
- "data-run": c,
140
- "data-tab": Q ? void 0 : G,
141
- children: [
142
- /* @__PURE__ */ b(S, {
143
- className: "rp-head",
144
- title: /* @__PURE__ */ x(y, { children: [
145
- /* @__PURE__ */ b("a", {
146
- href: `/play/${encodeURIComponent(Y.run.play)}`,
147
- children: Y.run.play
148
- }),
149
- /* @__PURE__ */ b("span", {
150
- className: "sep",
151
- "aria-hidden": "true",
152
- children: "/"
153
- }),
154
- /* @__PURE__ */ x("span", { children: ["Run ", t(Y.run.play, Y.run.id)] })
155
- ] }),
156
- description: Y.view ? /* @__PURE__ */ b(n, {
157
- status: e(Y.view.status),
158
- title: Y.view.status.reason ?? void 0
159
- }) : void 0,
160
- actions: H ? /* @__PURE__ */ b(z, {
161
- m: H,
162
- doc: Y
163
- }) : void 0
164
- }),
165
- /* @__PURE__ */ x("nav", {
166
- ref: J,
167
- className: "rp-tabs",
168
- role: "tablist",
169
- "aria-label": "Run",
170
- onKeyDown: Z,
171
- children: [C.map((e) => /* @__PURE__ */ x("a", {
172
- role: "tab",
173
- "data-tab": e,
174
- href: d.href(e),
175
- "aria-selected": !Q && e === G,
176
- tabIndex: e === G ? 0 : -1,
177
- "aria-controls": "rp-panel",
178
- onClick: (t) => {
179
- t.metaKey || t.ctrlKey || t.shiftKey || t.button !== 0 || (t.preventDefault(), d.go(e));
180
- },
181
- children: [w[e], X[e] ? /* @__PURE__ */ b("span", {
182
- className: "ct",
183
- children: X[e]
184
- }) : null]
185
- }, e)), /* @__PURE__ */ b("span", {
186
- className: "rp-more",
187
- children: /* @__PURE__ */ b(o, {
188
- label: "More run sections",
189
- options: P.map(([e, t]) => ({
190
- id: e,
191
- label: t
192
- })),
193
- value: Q ? U : null,
194
- width: 260,
195
- placeholder: "Find a section",
196
- onChange: (e) => {
197
- e && (window.history.pushState(null, "", `/run/${encodeURIComponent(c)}?section=${e}`), window.dispatchEvent(new PopStateEvent("popstate")));
198
- },
199
- children: Q ? P.find(([e]) => e === U)?.[1] ?? "More" : "More"
200
- })
201
- })]
202
- }),
203
- /* @__PURE__ */ b("main", {
204
- id: "rp-panel",
205
- className: "rp-work",
206
- role: "tabpanel",
207
- "aria-label": Q ? U ?? void 0 : w[G],
208
- children: Q ?? ($ ? /* @__PURE__ */ x(f, {
209
- fallback: /* @__PURE__ */ b("p", {
210
- className: "ws-status",
211
- role: "status",
212
- children: "Loading…"
213
- }),
214
- children: [
215
- G === "overview" && /* @__PURE__ */ b(T, { ...$ }),
216
- G === "timeline" && /* @__PURE__ */ b(E, { ...$ }),
217
- G === "files" && /* @__PURE__ */ b(D, { ...$ }),
218
- G === "topology" && /* @__PURE__ */ b(O, { ...$ }),
219
- G === "conversations" && /* @__PURE__ */ b(k, { ...$ }),
220
- G === "traces" && /* @__PURE__ */ b(A, { ...$ }),
221
- G === "analytics" && /* @__PURE__ */ b(j, { ...$ }),
222
- G === "checks" && /* @__PURE__ */ b(M, { ...$ })
223
- ]
224
- }) : /* @__PURE__ */ b("p", {
225
- className: "ws-status",
226
- role: B.error ? "alert" : "status",
227
- children: B.error ? `The run's agents are unavailable: ${B.error}` : "Reading the run…"
228
- }))
229
- })
230
- ]
231
- }) });
232
- }
233
- function z({ m: e, doc: t }) {
234
- let n = e.totals.billedUsd, r = [
235
- [l(e.duration), e.live ? "running" : "run"],
236
- [i(e.agents.length), e.agents.length === 1 ? "agent" : "agents"],
237
- [i(e.totals.steps), "steps"],
238
- [
239
- c(e.totals.tokens),
240
- "tokens",
241
- e.totals.byClass ? `${c(e.totals.byClass.input)} in · ${c(e.totals.byClass.output)} out · ${c(e.totals.byClass.cacheRead)} cached` : void 0
242
- ],
243
- e.totals.listUsd === null ? [a(n ?? t.spend.paidUsd ?? null), "billed"] : [a(e.totals.listUsd), "list"]
244
- ];
245
- return /* @__PURE__ */ b("ul", {
246
- className: "rp-stats",
247
- children: r.map(([e, t, n]) => /* @__PURE__ */ x("li", {
248
- title: n,
249
- children: [
250
- /* @__PURE__ */ b("b", { children: e }),
251
- " ",
252
- t
253
- ]
254
- }, t))
255
- });
256
- }
257
- //#endregion
258
- export { C as RUN_PAGE_TABS, R as RunPage, L as agentFromParam, I as agentParam, F as useRunRoute };
@@ -1,293 +0,0 @@
1
- import { C as e, E as t, a as n, l as r, n as i, s as a, v as o, w as s, x as c } from "./ui-D8QZRsC3.js";
2
- import { agentParam as l } from "./RunPage-CkkcBEUe.js";
3
- import { useEffect as u, useMemo as d, useRef as f, useState as p } from "react";
4
- import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
5
- import { FlowWaterfall as _ } from "@tangle-network/charts/react";
6
- //#region src/workspace/run/Timeline.tsx
7
- function v(e) {
8
- let t = e.root?.model ?? null, n = [];
9
- for (let r of e.agents) {
10
- if (r.start === null) continue;
11
- let i = r.state.tone === "live", a = i ? e.duration : Math.max(r.start, r.end ?? r.last ?? r.start);
12
- n.push({
13
- id: r.id,
14
- ...r.parent ? { parentId: r.parent } : {},
15
- kind: "pipeline",
16
- name: r.name,
17
- ...r.model && r.model !== t ? { detail: r.model } : {},
18
- startMs: Math.max(0, r.start),
19
- endMs: a,
20
- status: i ? "running" : r.status === "failed" ? "failed" : "done",
21
- ...r.commits === null ? {} : { outcome: r.commits ? {
22
- tone: "ok",
23
- label: "Shipped"
24
- } : r.status === "failed" ? {
25
- tone: "failed",
26
- label: "Failed"
27
- } : i ? {
28
- tone: "warn",
29
- label: "Running"
30
- } : {
31
- tone: "neutral",
32
- label: "Nothing shipped"
33
- } },
34
- ...r.listUsd ? { costUsd: r.listUsd } : r.billedUsd ? { costUsd: r.billedUsd } : {},
35
- ...r.byClass ? {
36
- promptTokens: r.byClass.input + r.byClass.cacheRead,
37
- completionTokens: r.byClass.output,
38
- cachedTokens: r.byClass.cacheRead
39
- } : {},
40
- marks: r.restarts.map((t) => ({
41
- at: t,
42
- kind: "restart",
43
- label: `Restarted ${c(e.t0)(t)} UTC`
44
- })),
45
- facts: [
46
- {
47
- label: "Commits",
48
- value: r.commits === null ? "—" : String(r.commits)
49
- },
50
- {
51
- label: "Restarts",
52
- value: String(r.restarts.length)
53
- },
54
- ...r.turns === null ? [] : [{
55
- label: "Turns",
56
- value: String(r.turns)
57
- }],
58
- ...r.harness ? [{
59
- label: "Harness",
60
- value: r.harness
61
- }] : []
62
- ]
63
- }), r.steps.forEach((e, t) => {
64
- n.push({
65
- id: `${r.id}#${t}`,
66
- parentId: r.id,
67
- kind: e.kind,
68
- name: e.kind === "model" ? e.model ? e.model.split("/").pop() ?? "model call" : "model call" : e.kind === "tool" ? e.tool ?? "tool" : "waiting",
69
- ...e.target ? { detail: e.target } : {},
70
- startMs: Math.max(0, e.t),
71
- endMs: Math.max(0, e.t + e.d),
72
- status: e.failed ? "failed" : "done",
73
- ...e.tokens ? {
74
- promptTokens: e.tokens.input + e.tokens.cacheRead,
75
- completionTokens: e.tokens.output,
76
- cachedTokens: e.tokens.cacheRead
77
- } : {},
78
- ...e.usd ? { costUsd: e.usd } : {}
79
- });
80
- });
81
- }
82
- let r = e.totals.byClass;
83
- return {
84
- spans: n,
85
- totalMs: e.duration,
86
- promptTokens: r ? r.input + r.cacheRead : e.totals.tokens ?? 0,
87
- completionTokens: r?.output ?? 0,
88
- ...e.totals.listUsd === null ? {} : {
89
- costUsd: e.totals.listUsd,
90
- costBasis: "list"
91
- },
92
- ...e.totals.billedUsd === null ? {} : { billedUsd: e.totals.billedUsd },
93
- modelCalls: e.totals.model,
94
- toolCalls: e.totals.tool,
95
- errors: e.totals.failed,
96
- pauses: e.pauses.map((e) => ({
97
- startMs: e.from,
98
- endMs: e.to,
99
- label: `No agent turn ${s(e.to - e.from)}`,
100
- detail: e.reason
101
- }))
102
- };
103
- }
104
- function y({ m: e, agent: t, selectAgent: n, route: r, doc: i }) {
105
- let a = d(() => v(e), [e]), o = d(() => e.releases.filter((t, n, r) => t.taggedAt && Date.parse(t.taggedAt) >= e.t0 && (n === r.length - 1 || t.passed !== r[n - 1]?.passed)).map((t) => ({
106
- at: Date.parse(t.taggedAt) - e.t0,
107
- label: `${t.release}${t.total ? ` ${t.passed ?? 0}/${t.total}` : ""}`,
108
- kind: "release",
109
- tone: t.total && t.passed === t.total ? "ok" : "neutral"
110
- })), [e]), s = f(null), [c, m] = p(480);
111
- u(() => {
112
- let e = s.current;
113
- if (!e) return;
114
- let t = new ResizeObserver(() => m(e.clientHeight));
115
- return t.observe(e), () => t.disconnect();
116
- }, []);
117
- let y = r.params.get("agent") ? t : null, x = y ? e.byId.get(y) ?? null : null;
118
- return /* @__PURE__ */ g("div", {
119
- className: "rp-tl",
120
- children: [/* @__PURE__ */ h("section", {
121
- className: "rp-tl-chart",
122
- "aria-label": "Agents over time",
123
- ref: s,
124
- children: /* @__PURE__ */ h(_, {
125
- trace: a,
126
- live: e.live,
127
- label: "Agents over time",
128
- defaultView: "agents",
129
- summary: !1,
130
- markers: o,
131
- maxHeight: Math.max(200, c - 230),
132
- selectedId: y ?? void 0,
133
- onDeselect: () => n(null),
134
- onSelect: (t) => {
135
- let r = t.kind === "pipeline" ? t.id : t.parentId;
136
- r && e.byId.has(r) && n(r);
137
- }
138
- })
139
- }), x && /* @__PURE__ */ h(b, {
140
- m: e,
141
- a: x,
142
- href: (e) => r.href(e, { agent: l(i.run.id, x.id) })
143
- })]
144
- });
145
- }
146
- function b({ m: l, a: u, href: d }) {
147
- let f = c(l.t0), p = Math.max(1, ...u.tools.map((e) => e.calls));
148
- return /* @__PURE__ */ g("section", {
149
- className: "rp-card rp-insp",
150
- "aria-label": `${u.name}: whole run`,
151
- children: [/* @__PURE__ */ g("div", {
152
- className: "rp-hd sm",
153
- children: [
154
- /* @__PURE__ */ g("h2", { children: [/* @__PURE__ */ h(a, { tone: u.state.tone }), u.name] }),
155
- /* @__PURE__ */ h("span", {
156
- className: `rp-pill ${u.state.tone}`,
157
- children: u.state.label
158
- }),
159
- /* @__PURE__ */ h("span", {
160
- className: "muted ph-hide",
161
- children: [u.model, u.harness].filter(Boolean).join(" · ")
162
- }),
163
- /* @__PURE__ */ g("span", {
164
- className: "end",
165
- children: [/* @__PURE__ */ g("a", {
166
- className: "rp-btn sm",
167
- href: d("conversations"),
168
- children: ["Conversation", /* @__PURE__ */ h(n, {
169
- name: "arrow",
170
- size: 14
171
- })]
172
- }), /* @__PURE__ */ g("a", {
173
- className: "rp-btn sm ph-hide",
174
- href: d("traces"),
175
- children: ["Traces", /* @__PURE__ */ h(n, {
176
- name: "arrow",
177
- size: 14
178
- })]
179
- })]
180
- })
181
- ]
182
- }), /* @__PURE__ */ g("div", {
183
- className: "rp-ig",
184
- children: [
185
- /* @__PURE__ */ g("div", { children: [
186
- /* @__PURE__ */ h("h4", { children: "Tokens" }),
187
- /* @__PURE__ */ h("div", {
188
- className: "big",
189
- children: u.tokens === null ? "—" : o(u.tokens)
190
- }),
191
- /* @__PURE__ */ g("dl", { children: [
192
- u.byClass ? /* @__PURE__ */ g(m, { children: [
193
- /* @__PURE__ */ h("dt", { children: "In" }),
194
- /* @__PURE__ */ h("dd", { children: o(u.byClass.input) }),
195
- /* @__PURE__ */ h("dt", { children: "Out" }),
196
- /* @__PURE__ */ h("dd", { children: o(u.byClass.output) }),
197
- /* @__PURE__ */ h("dt", { children: "Cached" }),
198
- /* @__PURE__ */ h("dd", { children: o(u.byClass.cacheRead) })
199
- ] }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h("dt", { children: "In · out split" }), /* @__PURE__ */ h("dd", {
200
- className: "dim",
201
- children: "not recorded"
202
- })] }),
203
- /* @__PURE__ */ h("dt", { children: "Cost" }),
204
- /* @__PURE__ */ h("dd", { children: r(u) })
205
- ] })
206
- ] }),
207
- /* @__PURE__ */ g("div", { children: [
208
- /* @__PURE__ */ h("h4", { children: "Model calls" }),
209
- /* @__PURE__ */ h("div", {
210
- className: "big",
211
- children: e(u.modelCalls)
212
- }),
213
- /* @__PURE__ */ g("dl", { children: [
214
- /* @__PURE__ */ h("dt", { children: "p50" }),
215
- /* @__PURE__ */ h("dd", { children: t(u.latency.p50) }),
216
- /* @__PURE__ */ h("dt", { children: "p90" }),
217
- /* @__PURE__ */ h("dd", { children: t(u.latency.p90) }),
218
- /* @__PURE__ */ h("dt", { children: "p99" }),
219
- /* @__PURE__ */ h("dd", { children: t(u.latency.p99) }),
220
- /* @__PURE__ */ h("dt", { children: "Busy" }),
221
- /* @__PURE__ */ h("dd", { children: s(u.busy) })
222
- ] })
223
- ] }),
224
- /* @__PURE__ */ g("div", { children: [
225
- /* @__PURE__ */ h("h4", { children: "Tool calls" }),
226
- /* @__PURE__ */ g("div", {
227
- className: "big",
228
- children: [e(u.toolCalls), u.toolFailures ? /* @__PURE__ */ g("small", {
229
- className: "f",
230
- children: [
231
- " ",
232
- u.toolFailures,
233
- " failed"
234
- ]
235
- }) : null]
236
- }),
237
- u.tools.length ? /* @__PURE__ */ h("div", {
238
- className: "rp-tbars",
239
- children: u.tools.slice(0, 4).map((t) => /* @__PURE__ */ g("div", {
240
- className: "row",
241
- children: [
242
- /* @__PURE__ */ h("span", {
243
- className: "l",
244
- title: t.name,
245
- children: t.name
246
- }),
247
- /* @__PURE__ */ h(i, {
248
- ok: t.calls - t.failures,
249
- failed: t.failures,
250
- max: p
251
- }),
252
- /* @__PURE__ */ h("span", {
253
- className: "n",
254
- children: e(t.calls)
255
- })
256
- ]
257
- }, t.name))
258
- }) : /* @__PURE__ */ h("span", {
259
- className: "dim",
260
- children: "No tool calls"
261
- })
262
- ] }),
263
- /* @__PURE__ */ g("div", { children: [
264
- /* @__PURE__ */ h("h4", { children: "Reliability" }),
265
- /* @__PURE__ */ g("div", {
266
- className: "big",
267
- children: [
268
- u.failedSteps,
269
- " ",
270
- /* @__PURE__ */ h("small", { children: "failed steps" })
271
- ]
272
- }),
273
- /* @__PURE__ */ g("dl", { children: [
274
- /* @__PURE__ */ h("dt", { children: "Retried steps" }),
275
- /* @__PURE__ */ h("dd", { children: u.retries }),
276
- /* @__PURE__ */ h("dt", { children: "Restarts" }),
277
- /* @__PURE__ */ h("dd", { children: u.restarts.length }),
278
- /* @__PURE__ */ h("dt", { children: "Spawned · commits" }),
279
- /* @__PURE__ */ g("dd", { children: [
280
- u.children.length,
281
- " · ",
282
- u.commits ?? "—"
283
- ] }),
284
- /* @__PURE__ */ h("dt", { children: "Active" }),
285
- /* @__PURE__ */ h("dd", { children: u.first === null ? "never" : `${f(u.first)}–${u.state.tone === "live" ? "now" : f(u.last ?? u.first)}` })
286
- ] })
287
- ] })
288
- ]
289
- })]
290
- });
291
- }
292
- //#endregion
293
- export { b as AgentInspector, y as TimelineTab, v as flowTrace };