@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,506 +0,0 @@
1
- import { y as e } from "./run-receipt-Bvi4-KVM.js";
2
- import { C as t, T as n, _ as r, a as i, b as a, h as o, j as s, s as c, t as l, v as u, w as d, x as f } from "./ui-D8QZRsC3.js";
3
- import { t as p } from "./plain-words-CgvxtEOa.js";
4
- import { agentParam as m } from "./RunPage-CkkcBEUe.js";
5
- import { useMemo as h, useRef as g } from "react";
6
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
7
- import { Popover as b, PopoverContent as x, PopoverTrigger as S } from "@tangle-network/ui/primitives";
8
- //#region src/workspace/run/Overview.tsx
9
- function C(e, t = Infinity) {
10
- if (!e) return "";
11
- let n = e.replace(/\/(home|mnt|Users|tmp|private)\/\S+/g, "").replace(/:?\s*\b[0-9a-f]{10,40}\b/g, "").replace(/\s+/g, " ").trim();
12
- n = n.replace(/^(?:[\w-]+(?: [\w-]+){0,3}: )+(?=\S)/, (e) => e.split(": ").length > 2 ? "" : e), n = n.split(/(?<=[.;])\s|;\s|, the |, starting /)[0] ?? n;
13
- let r = n.split(" ");
14
- return r.length > t ? `${r.slice(0, t).join(" ").replace(/[.;,:]+$/, "")}…` : n.replace(/[.;,:]$/, "");
15
- }
16
- function w(e) {
17
- let t = e.steps.filter(({ step: e }) => e.kind !== "waiting").map(({ step: e }) => [e.t, e.t + e.d]).sort((e, t) => e[0] - t[0]), n = [];
18
- for (let [e, r] of t) {
19
- let t = n[n.length - 1];
20
- t && e <= t[1] + 3e4 ? t[1] = Math.max(t[1], r) : n.push([e, r]);
21
- }
22
- return n;
23
- }
24
- function T(e, t) {
25
- let n = Math.max(1, e.duration) / t, r = Array.from({ length: t }, () => /* @__PURE__ */ new Set());
26
- for (let { agent: i, step: a } of e.steps) if (a.kind !== "waiting") for (let e = Math.max(0, Math.floor(a.t / n)); e <= Math.min(t - 1, Math.floor((a.t + a.d) / n)); e++) r[e].add(i.id);
27
- return r.map((e) => e.size);
28
- }
29
- function E(t) {
30
- let { m: n, doc: r, play: a, route: o } = t, c = r.view, l = r.run, u = r.execution, f = (a?.runs ?? []).filter((e) => e.id !== r.run.id && e.startedAt && r.run.startedAt && e.startedAt > r.run.startedAt).sort((e, t) => e.startedAt < t.startedAt ? -1 : 1)[0], p = h(() => w(n), [n]), m = new Date(n.t0).toISOString().slice(0, 10) !== new Date(n.t0 + n.duration).toISOString().slice(0, 10), g = p.reduce((e, [t, n]) => e + (n - t), 0), _ = n.best, b = _ && _.passed !== null && _.passed !== void 0 && _.total && _.passed === _.total, x = c?.status.label ?? r.run.state, S = n.live ? `Running for ${d(n.duration)}${_ ? `; best release ${_.release} passed ${_.passed}/${_.total} steps` : ", no release checked yet"}.` : b ? `Solved in ${d(n.duration)}: ${_.release} passed every step.` : `${x} after ${d(n.duration)}${_ ? `; best release ${_.release} passed ${_.passed ?? 0}/${_.total ?? "?"} steps` : " with no release checked"}.`, T = C(l.ending?.reason ?? c?.blocker?.why ?? c?.blocker?.sentence, 26), E = u?.failedAttempts ?? 0, O = [T && `${T}.`, E && n.totals.lastStep !== null ? `Agents worked for ${d(g)}; ${E} later tries failed${u?.lastAttempt?.error ? `, the last on “${C(u.lastAttempt.error, 8)}”` : ""}.` : ""].filter(Boolean).join(" "), A = n.live ? "clock" : b ? "check" : "stop", M = [
31
- {
32
- at: r.run.startedAt,
33
- title: "Run started",
34
- sub: `${n.agents.length} agents${n.root?.model ? ` on ${n.root.model}` : ""}`,
35
- tone: ""
36
- },
37
- ...n.totals.lastStep === null ? [] : [{
38
- at: new Date(n.t0 + n.totals.lastStep).toISOString(),
39
- title: n.live ? "Latest agent step" : "Last agent step",
40
- sub: `+${d(n.totals.lastStep)} into the run`,
41
- tone: n.duration - n.totals.lastStep > 18e5 ? "warn" : ""
42
- }],
43
- ...u?.lastAttempt?.error ? [{
44
- at: u.lastAttempt.at ?? null,
45
- title: "Last try failed",
46
- sub: C(u.lastAttempt.error, 10),
47
- tone: "fail"
48
- }] : [],
49
- n.live ? {
50
- at: (/* @__PURE__ */ new Date()).toISOString(),
51
- title: "Running now",
52
- sub: `${n.agents.filter((e) => e.state.tone === "live").length} agents live`,
53
- tone: "next"
54
- } : {
55
- at: l.ending?.at ?? r.run.settledAt,
56
- title: x,
57
- sub: f ? `continued in run ${e(r.run.play, f.id)}` : C(l.ending?.sentence, 8),
58
- tone: "next"
59
- }
60
- ];
61
- return /* @__PURE__ */ y("div", {
62
- className: "rp-ov",
63
- children: [
64
- /* @__PURE__ */ y("section", {
65
- className: "rp-card rp-vd",
66
- "aria-label": "Verdict",
67
- children: [/* @__PURE__ */ y("div", {
68
- className: "rp-vd-top",
69
- children: [
70
- /* @__PURE__ */ v("div", {
71
- className: "rp-vd-ic",
72
- children: /* @__PURE__ */ v(i, {
73
- name: A,
74
- size: 22
75
- })
76
- }),
77
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
78
- className: "rp-verdict",
79
- children: S
80
- }), O && /* @__PURE__ */ v("p", {
81
- className: "rp-lede",
82
- children: O
83
- })] }),
84
- /* @__PURE__ */ y("div", {
85
- className: "rp-vd-act",
86
- children: [n.live ? /* @__PURE__ */ y("a", {
87
- className: "rp-btn primary",
88
- href: o.href("timeline"),
89
- children: ["Watch the timeline", /* @__PURE__ */ v(i, { name: "arrow" })]
90
- }) : f ? /* @__PURE__ */ y("a", {
91
- className: "rp-btn primary",
92
- href: `/run/${encodeURIComponent(f.id)}`,
93
- children: [
94
- "Open run ",
95
- e(r.run.play, f.id),
96
- /* @__PURE__ */ v(i, { name: "arrow" })
97
- ]
98
- }) : _ ? /* @__PURE__ */ y("a", {
99
- className: "rp-btn primary",
100
- href: o.href("checks"),
101
- children: [
102
- "Review ",
103
- _.release,
104
- /* @__PURE__ */ v(i, { name: "arrow" })
105
- ]
106
- }) : /* @__PURE__ */ y("a", {
107
- className: "rp-btn primary",
108
- href: o.href("files"),
109
- children: ["Open the files", /* @__PURE__ */ v(i, { name: "arrow" })]
110
- }), (n.live || f || _) && /* @__PURE__ */ v("a", {
111
- className: "rp-btn framed",
112
- href: o.href("files"),
113
- children: "Files"
114
- })]
115
- })
116
- ]
117
- }), /* @__PURE__ */ v("ol", {
118
- className: "rp-story",
119
- children: M.map((e, t) => /* @__PURE__ */ y("li", { children: [
120
- /* @__PURE__ */ v("span", { className: `sd ${e.tone}` }),
121
- /* @__PURE__ */ v("time", { children: e.at ? s(e.at, m) : "—" }),
122
- /* @__PURE__ */ v("b", { children: e.title }),
123
- /* @__PURE__ */ v("span", {
124
- title: e.sub,
125
- children: e.sub
126
- })
127
- ] }, t))
128
- })]
129
- }),
130
- /* @__PURE__ */ v(D, { ...t }),
131
- /* @__PURE__ */ y("div", {
132
- className: "rp-ov-b",
133
- children: [/* @__PURE__ */ v(k, {
134
- m: n,
135
- working: g,
136
- failed: E
137
- }), /* @__PURE__ */ v(j, { ...t })]
138
- })
139
- ]
140
- });
141
- }
142
- function D({ m: e, doc: n, route: r }) {
143
- let o = n.run.check, s = o?.checkerNames?.find((e) => e.current) ?? o?.checkerNames?.[0], l = p(n.input?.objective), u = (n.findings?.items ?? []).filter((e) => e.path), d = e.agents.filter((e) => e.node.hasCode).length, f = e.agents.reduce((e, t) => e + (t.commits ?? 0), 0), m = e.best, h = a(o), g = o?.counts?.checks ? `${s ? `Checker ${s.label}` : "The checker"} ran ${t(o.counts.checks)} times` : "No check has run";
144
- return /* @__PURE__ */ y("section", {
145
- className: "rp-card rp-sum",
146
- "aria-label": "Summary",
147
- children: [
148
- /* @__PURE__ */ y("div", { children: [
149
- /* @__PURE__ */ v("h3", { children: "Goal" }),
150
- /* @__PURE__ */ v("div", {
151
- className: "goal",
152
- children: C(l) || "Not recorded"
153
- }),
154
- l && /* @__PURE__ */ y(b, { children: [/* @__PURE__ */ v(S, {
155
- asChild: !0,
156
- children: /* @__PURE__ */ v("button", {
157
- type: "button",
158
- className: "rp-link",
159
- children: "Read the goal"
160
- })
161
- }), /* @__PURE__ */ y(x, {
162
- className: "rp-pop wide",
163
- align: "start",
164
- children: [/* @__PURE__ */ y("div", {
165
- className: "ph",
166
- children: [/* @__PURE__ */ v("b", { children: "Goal" }), /* @__PURE__ */ v("span", { children: "as pressed" })]
167
- }), /* @__PURE__ */ v("div", {
168
- className: "rp-pop-goal",
169
- children: l
170
- })]
171
- })] })
172
- ] }),
173
- /* @__PURE__ */ y("div", { children: [
174
- /* @__PURE__ */ v("h3", { children: "Check" }),
175
- /* @__PURE__ */ y("div", {
176
- className: "v",
177
- children: [/* @__PURE__ */ v(c, { tone: h.tone }), h.word]
178
- }),
179
- /* @__PURE__ */ v("div", {
180
- className: "sub",
181
- children: h.note ? `${h.note}.` : `${g}.`
182
- }),
183
- /* @__PURE__ */ v("a", {
184
- className: "rp-link",
185
- href: r.href("checks"),
186
- children: "See the checks"
187
- })
188
- ] }),
189
- /* @__PURE__ */ y("div", { children: [
190
- /* @__PURE__ */ v("h3", { children: "Best release" }),
191
- /* @__PURE__ */ v("div", {
192
- className: "v",
193
- children: m ? `${m.release}${m.total ? ` · ${m.passed ?? 0}/${m.total}` : ""}` : "None"
194
- }),
195
- /* @__PURE__ */ v("div", {
196
- className: "sub",
197
- children: m ? m.sentence ? C(m.sentence, 14) : `${e.releases.length} releases checked` : e.releases.length ? `${e.releases.length} releases, none scored` : `${t(f)} commits, none tagged`
198
- })
199
- ] }),
200
- /* @__PURE__ */ y("div", { children: [
201
- /* @__PURE__ */ v("h3", { children: "Work kept" }),
202
- /* @__PURE__ */ y("div", {
203
- className: "v",
204
- children: [
205
- t(u.length),
206
- " pages · ",
207
- t(d),
208
- " branches"
209
- ]
210
- }),
211
- /* @__PURE__ */ y("div", {
212
- className: "files",
213
- children: [u.slice(0, 3).map((e, t, n) => /* @__PURE__ */ y("a", {
214
- href: r.href("files", { file: `page:${e.path}` }),
215
- title: e.path,
216
- children: [/* @__PURE__ */ v(i, {
217
- name: "file",
218
- size: 14
219
- }), /* @__PURE__ */ v("span", { children: O(e.path, n.map((e) => e.path)) })]
220
- }, e.path)), u.length > 3 && /* @__PURE__ */ v("a", {
221
- href: r.href("files"),
222
- children: /* @__PURE__ */ y("span", { children: [u.length - 3, " more"] })
223
- })]
224
- })
225
- ] })
226
- ]
227
- });
228
- }
229
- function O(e, t) {
230
- let n = e.split("/"), r = (e, t) => e.split("/").slice(-t).join("/"), i = 1;
231
- for (; i < n.length && t.some((t) => t !== e && r(t, i) === r(e, i));) i++;
232
- return r(e, i);
233
- }
234
- function k({ m: e, working: t, failed: n }) {
235
- let r = h(() => T(e, 96), [e]), i = Math.max(1, ...r), a = (t) => `${Math.max(0, Math.min(100, t / Math.max(1, e.duration) * 100))}%`, o = e.duration > 36e5 ? Math.floor(e.duration / 36e5) : 0, c = new Date(e.t0).toISOString().slice(0, 10) !== new Date(e.t0 + e.duration).toISOString().slice(0, 10), l = e.duration * (c ? .16 : .08), u = o <= 10 ? 1 : Math.ceil(o / 8), p = o ? Array.from({ length: o }, (e, t) => t + 1).filter((t) => t % u === 0 && t * 36e5 >= l && (t + u) * 36e5 <= e.duration && t * 36e5 <= e.duration - l) : [], m = e.tree.filter((e) => e.restarts.length).sort((e, t) => t.restarts.length - e.restarts.length).slice(0, 14), g = (t) => c ? s(new Date(e.t0 + t).toISOString(), !0).replace(" UTC", "") : f(e.t0)(t);
236
- return /* @__PURE__ */ y("section", {
237
- className: "rp-card",
238
- "aria-label": "Where the time went",
239
- children: [/* @__PURE__ */ y("div", {
240
- className: "rp-hd sm",
241
- children: [/* @__PURE__ */ y("h2", { children: [
242
- "Where the ",
243
- d(e.duration),
244
- " went"
245
- ] }), /* @__PURE__ */ y("span", {
246
- className: "end rp-keys",
247
- children: [
248
- /* @__PURE__ */ y("span", {
249
- className: "rp-key",
250
- children: [
251
- /* @__PURE__ */ v("i", { className: "work" }),
252
- /* @__PURE__ */ v("b", { children: d(t) }),
253
- " agents working"
254
- ]
255
- }),
256
- /* @__PURE__ */ y("span", {
257
- className: "rp-key",
258
- children: [
259
- /* @__PURE__ */ v("i", { className: "hatch" }),
260
- /* @__PURE__ */ v("b", { children: d(Math.max(0, e.duration - t)) }),
261
- " idle"
262
- ]
263
- }),
264
- n > 0 && /* @__PURE__ */ y("span", {
265
- className: "rp-key",
266
- children: [
267
- /* @__PURE__ */ v("span", {
268
- className: "x",
269
- children: "✕"
270
- }),
271
- /* @__PURE__ */ v("b", { children: n }),
272
- " tries failed"
273
- ]
274
- })
275
- ]
276
- })]
277
- }), /* @__PURE__ */ v("div", {
278
- className: "rp-twrap",
279
- children: /* @__PURE__ */ y("div", {
280
- className: "rp-tg",
281
- children: [
282
- /* @__PURE__ */ v("span", {
283
- className: "nm h",
284
- children: "Agents at once"
285
- }),
286
- /* @__PURE__ */ v("div", {
287
- className: "rp-strip",
288
- role: "img",
289
- "aria-label": `Agents working at once over the run, peak ${i}; they worked ${d(t)} of ${d(e.duration)}`,
290
- children: r.map((t, n) => /* @__PURE__ */ v("i", {
291
- className: t ? void 0 : "idle",
292
- title: `${g(n * e.duration / r.length)}: ${t} working`,
293
- style: {
294
- left: `${n * 100 / r.length}%`,
295
- width: `${100 / r.length}%`,
296
- height: t ? `${Math.max(10, t / i * 100)}%` : void 0
297
- }
298
- }, n))
299
- }),
300
- /* @__PURE__ */ y("span", {
301
- className: "ct",
302
- children: ["peak ", i]
303
- }),
304
- /* @__PURE__ */ v("span", {}),
305
- /* @__PURE__ */ y("div", {
306
- className: "rp-strip-ax",
307
- children: [
308
- /* @__PURE__ */ v("span", {
309
- className: "first",
310
- style: { left: 0 },
311
- children: g(0)
312
- }),
313
- p.map((e) => /* @__PURE__ */ y("span", {
314
- className: e % 4 ? "ph-hide" : void 0,
315
- style: { left: a(e * 36e5) },
316
- children: [e, "h"]
317
- }, e)),
318
- /* @__PURE__ */ v("span", {
319
- className: "last",
320
- style: { left: "100%" },
321
- children: g(e.duration)
322
- })
323
- ]
324
- }),
325
- /* @__PURE__ */ v("span", {}),
326
- m.length > 0 && /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ y("div", {
327
- className: "rp-tries-h",
328
- children: [/* @__PURE__ */ v("b", { children: "Restarts by agent" }), /* @__PURE__ */ y("span", {
329
- className: "end rp-keys",
330
- children: [/* @__PURE__ */ y("span", {
331
- className: "rp-key",
332
- children: [/* @__PURE__ */ v("span", {
333
- className: "x",
334
- children: "✕"
335
- }), "Restart"]
336
- }), /* @__PURE__ */ y("span", {
337
- className: "rp-key",
338
- children: [/* @__PURE__ */ v("span", { className: "rp-dot ok" }), "Finished"]
339
- })]
340
- })]
341
- }), m.map((t) => /* @__PURE__ */ v(A, {
342
- m: e,
343
- a: t,
344
- X: a
345
- }, t.id))] })
346
- ]
347
- })
348
- })]
349
- });
350
- }
351
- function A({ m: e, a: t, X: r }) {
352
- let i = o(() => /* @__PURE__ */ v(l, {
353
- m: e,
354
- a: t
355
- }), { wide: t.tools.length > 0 });
356
- return /* @__PURE__ */ y(_, { children: [
357
- /* @__PURE__ */ v("span", {
358
- className: "nm",
359
- title: t.name,
360
- children: t.name
361
- }),
362
- /* @__PURE__ */ y("div", {
363
- className: "rp-tr-row",
364
- tabIndex: 0,
365
- "aria-label": `${t.name}: ${t.restarts.length} restarts`,
366
- ...i,
367
- children: [
368
- /* @__PURE__ */ v("span", {
369
- className: "life",
370
- style: {
371
- left: r(Math.max(0, t.start ?? 0)),
372
- right: `calc(100% - ${r(t.end ?? e.duration)})`
373
- }
374
- }),
375
- t.restarts.map((e, t) => /* @__PURE__ */ v("span", {
376
- className: "mk",
377
- style: { left: r(e) },
378
- children: "✕"
379
- }, t)),
380
- n(t.state.tone) && t.end !== null && /* @__PURE__ */ v("span", {
381
- className: "mk ok",
382
- style: { left: r(t.end) }
383
- })
384
- ]
385
- }),
386
- /* @__PURE__ */ v("span", {
387
- className: "ct",
388
- children: t.restarts.length || "—"
389
- })
390
- ] });
391
- }
392
- function j({ m: e, route: t, doc: n }) {
393
- let a = h(() => [...e.agents].sort((e, t) => (t.tokens ?? -1) - (e.tokens ?? -1)), [e]), o = g(null), s = r(o, a.length, 32), c = e.totals.lastStep ?? e.duration, l = h(() => {
394
- let t = 1;
395
- for (let n of e.agents) {
396
- let e = Array(28).fill(0);
397
- for (let t of n.steps) t.t <= c && e[Math.min(27, Math.floor(t.t / Math.max(1, c) * 28))]++;
398
- t = Math.max(t, ...e);
399
- }
400
- return t;
401
- }, [e, c]);
402
- return /* @__PURE__ */ y("section", {
403
- className: "rp-card",
404
- "aria-label": "Agents",
405
- children: [
406
- /* @__PURE__ */ y("div", {
407
- className: "rp-hd sm",
408
- children: [/* @__PURE__ */ y("h2", { children: ["Agents", /* @__PURE__ */ v("span", {
409
- className: "ct",
410
- children: e.agents.length
411
- })] }), /* @__PURE__ */ v("span", {
412
- className: "end",
413
- children: /* @__PURE__ */ y("a", {
414
- className: "rp-btn sm",
415
- href: t.href("topology"),
416
- children: ["Topology", /* @__PURE__ */ v(i, {
417
- name: "arrow",
418
- size: 14
419
- })]
420
- })
421
- })]
422
- }),
423
- /* @__PURE__ */ y("div", {
424
- className: "rp-agt-h",
425
- children: [
426
- /* @__PURE__ */ v("span", {}),
427
- /* @__PURE__ */ v("span", { children: "Agent" }),
428
- /* @__PURE__ */ y("span", {
429
- className: "ph-hide",
430
- title: `When each agent worked, over the run's ${d(c)}`,
431
- children: ["Activity · ", d(c).split(" ")[0]]
432
- }),
433
- /* @__PURE__ */ v("span", { children: "Steps" }),
434
- /* @__PURE__ */ v("span", { children: "Tokens" })
435
- ]
436
- }),
437
- /* @__PURE__ */ y("div", {
438
- className: "rp-scroll",
439
- ref: o,
440
- children: [
441
- /* @__PURE__ */ v("div", { style: { height: s.before } }),
442
- a.slice(s.first, s.last).map((r) => /* @__PURE__ */ v(M, {
443
- m: e,
444
- a: r,
445
- bins: 28,
446
- end: c,
447
- peak: l,
448
- href: t.href("timeline", { agent: m(n.run.id, r.id) })
449
- }, r.id)),
450
- /* @__PURE__ */ v("div", { style: { height: s.after } })
451
- ]
452
- })
453
- ]
454
- });
455
- }
456
- function M({ m: e, a: n, bins: r, end: i, peak: a, href: s }) {
457
- let d = o(() => /* @__PURE__ */ v(l, {
458
- m: e,
459
- a: n
460
- }), { wide: n.tools.length > 0 }), f = Array(r).fill(0);
461
- for (let e of n.steps) e.t <= i && f[Math.min(r - 1, Math.floor(e.t / Math.max(1, i) * r))]++;
462
- let p = 120 / r;
463
- return /* @__PURE__ */ y("a", {
464
- className: "rp-agt",
465
- href: s,
466
- ...d,
467
- children: [
468
- /* @__PURE__ */ v(c, { tone: n.state.tone }),
469
- /* @__PURE__ */ v("span", {
470
- className: "nm",
471
- children: n.name
472
- }),
473
- /* @__PURE__ */ y("svg", {
474
- className: "ph-hide",
475
- viewBox: "0 0 120 16",
476
- "aria-hidden": "true",
477
- children: [/* @__PURE__ */ v("line", {
478
- x1: "0",
479
- x2: "120",
480
- y1: "15.5",
481
- y2: "15.5",
482
- className: "base"
483
- }), f.map((e, t) => {
484
- let n = e ? 6 + Math.sqrt(e / a) * 10 : 0;
485
- return n ? /* @__PURE__ */ v("rect", {
486
- x: t * p + .5,
487
- width: p - 1.2,
488
- y: 16 - n,
489
- height: n,
490
- rx: "1"
491
- }, t) : null;
492
- })]
493
- }),
494
- /* @__PURE__ */ v("span", {
495
- className: "v",
496
- children: n.steps.length ? t(n.steps.length) : "—"
497
- }),
498
- /* @__PURE__ */ v("span", {
499
- className: "v",
500
- children: n.tokens === null ? "—" : u(n.tokens)
501
- })
502
- ]
503
- });
504
- }
505
- //#endregion
506
- export { E as Overview, C as clause };