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