@tangle-network/sandbox-cli 0.21.26 → 0.21.28

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 (70) hide show
  1. package/dist/graph-viewer/{Analytics-DocMpB6T.js → Analytics-DFWW8Phh.js} +260 -275
  2. package/dist/graph-viewer/Checks-qgqV4xgV.js +155 -0
  3. package/dist/graph-viewer/{Conversations-CISiWrR9.js → Conversations-CGB45kpj.js} +112 -80
  4. package/dist/graph-viewer/{Files-Dh8p_Fpw.js → Files-DtZhf0ii.js} +121 -106
  5. package/dist/graph-viewer/LiveRun-C21wUKAY.js +210 -0
  6. package/dist/graph-viewer/Overview-BjeLsA2I.js +506 -0
  7. package/dist/graph-viewer/{RunPage-nJwCsArn.js → RunPage-CkkcBEUe.js} +22 -22
  8. package/dist/graph-viewer/{Timeline-bPjhV3il.js → Timeline-C2Xolk0t.js} +84 -84
  9. package/dist/graph-viewer/{Today-pebCsPJ1.js → Today-BVVDtSVN.js} +65 -58
  10. package/dist/graph-viewer/Topology-DO5XX8e4.js +545 -0
  11. package/dist/graph-viewer/{Traces-C5x2UvJh.js → Traces-BhMxjNgw.js} +79 -52
  12. package/dist/graph-viewer/{WallPages-DSmRm2v3.js → WallPages-4d9QUZDq.js} +3 -3
  13. package/dist/graph-viewer/index.js +103 -102
  14. package/dist/graph-viewer/{lazy-pages-CpmkG5o2.js → lazy-pages-DM0cZM10.js} +4 -4
  15. package/dist/graph-viewer/{record-part-Cx9GDQeo.js → record-part-CZal_IMH.js} +382 -352
  16. package/dist/graph-viewer/report-viewer.js +7 -7
  17. package/dist/graph-viewer/styles.css +596 -284
  18. package/dist/graph-viewer/{ui-CEhDqce8.js → ui-D8QZRsC3.js} +143 -111
  19. package/dist/graph-viewer/viewer/{AgentGraphCanvas-D7jjAE6i-DecKyUGA.js → AgentGraphCanvas-CMdOlSlh-4EervjeC.js} +54 -48
  20. package/dist/graph-viewer/viewer/{Analytics-CtKucZjs.js → Analytics-DD__nbLm.js} +203 -218
  21. package/dist/graph-viewer/viewer/{AnswerStrip-DsI9aF-i.js → AnswerStrip-CGUyXuYH.js} +2 -2
  22. package/dist/graph-viewer/viewer/Checks-Ds5M7eAW.js +156 -0
  23. package/dist/graph-viewer/viewer/{Conversations-DQBCyko6.js → Conversations-C1n0EBBd.js} +124 -92
  24. package/dist/graph-viewer/viewer/{Files-B-g25gSO.js → Files-Cjr7NMU_.js} +63 -48
  25. package/dist/graph-viewer/viewer/{LiveRun-BMQnTpTZ.js → LiveRun-uPTkPSjo.js} +1223 -1164
  26. package/dist/graph-viewer/viewer/{Outputs-DXnN1wEQ.js → Outputs-CumGyjQo.js} +6 -6
  27. package/dist/graph-viewer/viewer/Overview-4Umk14_2.js +507 -0
  28. package/dist/graph-viewer/viewer/{RunPage-ChipoSdO.js → RunPage-DZlBW7Va.js} +28 -28
  29. package/dist/graph-viewer/viewer/{Scores-CjriXjf_.js → Scores-ZS16yk0n.js} +3 -3
  30. package/dist/graph-viewer/viewer/{Timeline-DzEzobA0.js → Timeline-BnK6-yBR.js} +24 -24
  31. package/dist/graph-viewer/viewer/{Today-DLHe_wTA.js → Today-a_-oNigi.js} +69 -62
  32. package/dist/graph-viewer/viewer/Topology-CQPCLQT6.js +546 -0
  33. package/dist/graph-viewer/viewer/{Traces-BWBulSPE.js → Traces-C0IGk0L4.js} +75 -48
  34. package/dist/graph-viewer/viewer/{WallPages-Crj-qPoK.js → WallPages-CzWpyIfp.js} +8 -8
  35. package/dist/graph-viewer/viewer/{WorkflowGraph-DYsP_Kcg-C0O7M5iH.js → WorkflowGraph-DZ3xejKE-jRXKeSrg.js} +6 -6
  36. package/dist/graph-viewer/viewer/{agent-timeline-C-UIhXgu.js → agent-timeline-Cs9Qbpvo.js} +437 -425
  37. package/dist/graph-viewer/viewer/{bot-Bivadvxn.js → bot-D6Nrej7Z.js} +1 -1
  38. package/dist/graph-viewer/viewer/{chevron-right-WW7tFY6B.js → chevron-right-D_5IKLxu.js} +1 -1
  39. package/dist/graph-viewer/viewer/{createLucideIcon-Z6KTw8ff.js → createLucideIcon-yH0cxLMy.js} +1 -1
  40. package/dist/graph-viewer/viewer/{data-azhapQrS.js → data-CkWfWr7i.js} +1 -1
  41. package/dist/graph-viewer/viewer/{dist-CyOc-K4O.js → dist-C1-7EfoW.js} +3 -3
  42. package/dist/graph-viewer/viewer/{file-text-B34N7Soo.js → file-text-m7a3piQF.js} +1 -1
  43. package/dist/graph-viewer/viewer/{final-output-Db2D9cMT.js → final-output-kwY11u9X.js} +1 -1
  44. package/dist/graph-viewer/viewer/{highlights-Bgg6O5ub.js → highlights-Btsi5OXl.js} +2 -2
  45. package/dist/graph-viewer/viewer/{jsx-runtime-BSzbUOFc.js → jsx-runtime-DQWyJOhv.js} +1 -1
  46. package/dist/graph-viewer/viewer/{lazy-pages-fgtpXQ00.js → lazy-pages-BowaGsg-.js} +6 -6
  47. package/dist/graph-viewer/viewer/{markdown-BpJEJUTW.js → markdown-CX_sVrXB.js} +17 -17
  48. package/dist/graph-viewer/viewer/{model-brand-bTcMjQtB-C9bHPsPk.js → model-brand-bTcMjQtB-fagiBQam.js} +3 -3
  49. package/dist/graph-viewer/viewer/{page-header-C6YCPkzJ.js → page-header-Brq611fd.js} +3 -3
  50. package/dist/graph-viewer/viewer/{popover-DrLB9iar.js → popover-CvOAjlnk.js} +4 -4
  51. package/dist/graph-viewer/viewer/{react-CisnW4fB.js → react-CY3IbSNO.js} +24 -24
  52. package/dist/graph-viewer/viewer/{react-dom-C5NDYQCD.js → react-dom-t1L4_-il.js} +1 -1
  53. package/dist/graph-viewer/viewer/{record-part-d0gKKrMI.js → record-part-D3_Anfpe.js} +455 -425
  54. package/dist/graph-viewer/viewer/{segmented-control-ChhLMa6h.js → segmented-control-BaJmvTNd.js} +39 -39
  55. package/dist/graph-viewer/viewer/{shiki-BwlTRTY6.js → shiki-Qnby7Sh6.js} +2 -2
  56. package/dist/graph-viewer/viewer/{stream-tokenizer-CaVb21TO.js → stream-tokenizer-CWtnjmRd.js} +1 -1
  57. package/dist/graph-viewer/viewer/{terminal-BxRacTx0.js → terminal-83J_I4Ne.js} +1 -1
  58. package/dist/graph-viewer/viewer/{themes-BxrCCwH5.js → themes-1i1fzpRk.js} +1 -1
  59. package/dist/graph-viewer/viewer/{ui-DZiGjPwl.js → ui-C9b1rIUH.js} +222 -190
  60. package/dist/graph-viewer/viewer/{workspace-DalRxssx.js → workspace-CekmOBs3.js} +76 -76
  61. package/dist/graph-viewer/viewer/{x-B_F8B4lq.js → x-DOc2URqZ.js} +1 -1
  62. package/dist/graph-viewer/workspace-viewer.js +103 -102
  63. package/package.json +9 -9
  64. package/dist/graph-viewer/Checks-CbnY4tuh.js +0 -113
  65. package/dist/graph-viewer/LiveRun-C-yKwkKs.js +0 -190
  66. package/dist/graph-viewer/Overview-BaXPdCFC.js +0 -477
  67. package/dist/graph-viewer/Topology-CyhuK6XW.js +0 -550
  68. package/dist/graph-viewer/viewer/Checks-DZTgeYlV.js +0 -114
  69. package/dist/graph-viewer/viewer/Overview-u7-8-rGx.js +0 -478
  70. package/dist/graph-viewer/viewer/Topology-Dsmuu27J.js +0 -551
@@ -2,18 +2,18 @@
2
2
  "use client";
3
3
  import { A as e, C as t, S as n, T as r, _ as i, b as a, c as o, f as s, h as c, l, n as u, o as d, s as f, u as p, v as m, w as h, x as g, y as _ } from "./run-receipt-Bvi4-KVM.js";
4
4
  import { a as v, c as y, d as b, f as x, h as S, i as C, m as w, n as T, o as E, p as D, r as O, s as k, t as A, u as j } from "./data-BJmP7F1M.js";
5
- import { _ as M, a as N, b as P, c as F, d as I, f as ee, g as L, h as R, i as te, l as ne, m as z, n as B, o as V, p as re, r as ie, s as ae, u as oe, v as se, y as ce } from "./record-part-Cx9GDQeo.js";
5
+ import { _ as M, a as N, b as P, c as F, d as I, f as ee, g as L, h as R, i as te, l as ne, m as z, n as B, o as V, p as re, r as ie, s as ae, u as oe, v as se, y as ce } from "./record-part-CZal_IMH.js";
6
6
  import { parseRecord as le, recordSchema as ue } from "./record.js";
7
7
  import { parseResearchReport as de, reportToLatex as fe, researchReportSchema as pe } from "./report.js";
8
8
  import { A as me, B as he, C as ge, D as _e, E as ve, F as ye, I as be, L as xe, M as H, N as Se, O as Ce, P as we, R as Te, S as Ee, T as De, V as Oe, _ as ke, a as Ae, b as je, c as Me, d as Ne, f as Pe, g as Fe, h as Ie, i as Le, j as Re, k as ze, l as Be, m as Ve, n as He, o as Ue, p as We, r as Ge, s as Ke, t as qe, u as Je, v as Ye, w as Xe, x as Ze, y as Qe, z as $e } from "./workspace-model-Ewf17pTW.js";
9
9
  import { assessmentRowSchema as et, assessmentsDocumentSchema as tt, dimensionSchema as nt, dimensionsDocumentSchema as rt, polarities as it } from "./assessment.js";
10
- import { a as at, o as ot } from "./ui-CEhDqce8.js";
10
+ import { a as at, o as ot } from "./ui-D8QZRsC3.js";
11
11
  import { n as st } from "./use-file-text-BaE98QxE.js";
12
12
  import { n as ct, r as lt, t as ut } from "./plain-words-CgvxtEOa.js";
13
13
  import { D as dt, E as ft, S as pt, T as mt, _ as ht, a as gt, b as _t, c as vt, d as yt, f as bt, g as xt, i as St, l as Ct, m as wt, n as Tt, o as Et, p as Dt, r as Ot, s as kt, t as At, u as jt, v as Mt, y as Nt } from "./RunOverview-DJQDAMIx.js";
14
14
  import { n as Pt, r as Ft, t as It } from "./AnswerStrip-DhwqOyxI.js";
15
15
  import { d as Lt, f as Rt, l as zt, n as Bt, p as Vt, s as Ht, u as Ut } from "./outputs-model-CGdvjkQh.js";
16
- import { a as Wt, i as Gt, n as Kt, r as qt, t as Jt } from "./lazy-pages-CpmkG5o2.js";
16
+ import { a as Wt, i as Gt, n as Kt, r as qt, t as Jt } from "./lazy-pages-DM0cZM10.js";
17
17
  import { Fragment as Yt, Suspense as Xt, createContext as Zt, memo as Qt, useCallback as U, useContext as $t, useEffect as W, useId as en, useLayoutEffect as tn, useMemo as G, useRef as K, useState as q } from "react";
18
18
  import { Fragment as J, jsx as Y, jsxs as X } from "react/jsx-runtime";
19
19
  import nn from "react-markdown";
@@ -8190,8 +8190,8 @@ var Ro = (e) => e ? `${e.slice(5, 10)} ${e.slice(11, 16)}Z` : "", zo = (e) => /\
8190
8190
  why: ct(i.why ?? i.text, 24)
8191
8191
  } : null;
8192
8192
  };
8193
- function Vo({ rows: t, sort: n, onSort: i }) {
8194
- let o = (e, t, r) => /* @__PURE__ */ Y("th", {
8193
+ function Vo({ rows: t, sort: n, onSort: i, live: o }) {
8194
+ let s = (e, t, r) => /* @__PURE__ */ Y("th", {
8195
8195
  className: "num",
8196
8196
  "aria-sort": n === e ? "descending" : void 0,
8197
8197
  title: r,
@@ -8210,10 +8210,10 @@ function Vo({ rows: t, sort: n, onSort: i }) {
8210
8210
  /* @__PURE__ */ Y("th", { children: "Status" }),
8211
8211
  /* @__PURE__ */ Y("th", { children: "Best release" }),
8212
8212
  /* @__PURE__ */ Y("th", { children: "Last run" }),
8213
- o("runs", "Runs"),
8214
- o("spend", "API-equivalent", "Every token at list price, whoever paid; how many started runs were priced")
8213
+ s("runs", "Runs"),
8214
+ s("spend", "API-equivalent", "Every token at list price, whoever paid; how many started runs were priced")
8215
8215
  ] }) }), /* @__PURE__ */ Y("tbody", { children: t.map((t) => {
8216
- let n = `/play/${encodeURIComponent(t.id)}`, i = () => E(n), o = t.standing ?? null, s = o?.view ?? null, c = o?.lastEnding ?? null, l = o?.cost ?? null, u = t.latestRun?.id ?? c?.runId ?? null, d = u ? s?.runs?.[u] : void 0, f = u && u === c?.runId ? c.word : null, p = s?.progress ?? null, m = o?.best ?? null;
8216
+ let n = `/play/${encodeURIComponent(t.id)}`, i = () => E(n), s = t.standing ?? null, c = s?.view ?? null, l = s?.lastEnding ?? null, u = s?.cost ?? null, d = o?.get(t.id) ?? t.latestRun?.id ?? l?.runId ?? null, f = d ? c?.runs?.[d] : void 0, p = d && d === l?.runId ? l.word : null, m = c?.progress ?? null, h = s?.best ?? null;
8217
8217
  return /* @__PURE__ */ X("tr", {
8218
8218
  "data-play": t.id,
8219
8219
  className: "clickable",
@@ -8232,17 +8232,17 @@ function Vo({ rows: t, sort: n, onSort: i }) {
8232
8232
  }),
8233
8233
  /* @__PURE__ */ Y("td", {
8234
8234
  className: "plays-standing",
8235
- children: s ? /* @__PURE__ */ X(Ft, {
8235
+ children: c ? /* @__PURE__ */ X(Ft, {
8236
8236
  className: "plays-status",
8237
- text: [Bo(s) && `${Bo(s).text}: ${Bo(s).why}`, s.sentence].filter(Boolean).join(" · "),
8238
- children: [/* @__PURE__ */ Y(T, { status: e(s.status) }), Bo(s)?.tone === "needs" && /* @__PURE__ */ Y("span", {
8237
+ text: [Bo(c) && `${Bo(c).text}: ${Bo(c).why}`, c.sentence].filter(Boolean).join(" · "),
8238
+ children: [/* @__PURE__ */ Y(T, { status: e(c.status) }), Bo(c)?.tone === "needs" && /* @__PURE__ */ Y("span", {
8239
8239
  "data-holding": "needs",
8240
- children: Bo(s).text
8240
+ children: Bo(c).text
8241
8241
  })]
8242
- }) : o?.sentence ? /* @__PURE__ */ Y("span", {
8242
+ }) : s?.sentence ? /* @__PURE__ */ Y("span", {
8243
8243
  className: "clamp-1",
8244
- title: o.sentence,
8245
- children: /* @__PURE__ */ Y(A, { text: o.sentence })
8244
+ title: s.sentence,
8245
+ children: /* @__PURE__ */ Y(A, { text: s.sentence })
8246
8246
  }) : /* @__PURE__ */ Y(T, { status: b({
8247
8247
  axis: "run",
8248
8248
  state: t.state
@@ -8250,25 +8250,25 @@ function Vo({ rows: t, sort: n, onSort: i }) {
8250
8250
  }),
8251
8251
  /* @__PURE__ */ Y("td", {
8252
8252
  className: "plays-best",
8253
- children: p ? /* @__PURE__ */ X("span", {
8254
- title: `${p.runId ? `${zo(p.runId)} ` : ""}${p.release}: ${p.sentence}`,
8253
+ children: m ? /* @__PURE__ */ X("span", {
8254
+ title: `${m.runId ? `${zo(m.runId)} ` : ""}${m.release}: ${m.sentence}`,
8255
8255
  children: [/* @__PURE__ */ Y("span", {
8256
8256
  className: "mono",
8257
- children: p.release
8257
+ children: m.release
8258
8258
  }), /* @__PURE__ */ X("span", {
8259
8259
  className: "td-steps",
8260
- "aria-label": p.sentence,
8261
- children: [p.steps.map((e, t) => /* @__PURE__ */ Y("i", { "data-step": e.state }, t)), /* @__PURE__ */ X("em", { children: [
8262
- p.passed,
8260
+ "aria-label": m.sentence,
8261
+ children: [m.steps.map((e, t) => /* @__PURE__ */ Y("i", { "data-step": e.state }, t)), /* @__PURE__ */ X("em", { children: [
8262
+ m.passed,
8263
8263
  "/",
8264
- p.total
8264
+ m.total
8265
8265
  ] })]
8266
8266
  })]
8267
- }) : m?.tag || m?.run ? /* @__PURE__ */ Y("span", {
8268
- title: [m.checker ? `under ${m.checker}` : null, m.verdict ? r(m.verdict) : null].filter(Boolean).join(" · ") || void 0,
8267
+ }) : h?.tag || h?.run ? /* @__PURE__ */ Y("span", {
8268
+ title: [h.checker ? `under ${h.checker}` : null, h.verdict ? r(h.verdict) : null].filter(Boolean).join(" · ") || void 0,
8269
8269
  children: /* @__PURE__ */ Y("span", {
8270
8270
  className: "mono",
8271
- children: a(m.tag) ?? "workspace"
8271
+ children: a(h.tag) ?? "workspace"
8272
8272
  })
8273
8273
  }) : /* @__PURE__ */ Y("span", {
8274
8274
  className: "faint",
@@ -8277,21 +8277,21 @@ function Vo({ rows: t, sort: n, onSort: i }) {
8277
8277
  }),
8278
8278
  /* @__PURE__ */ X("td", {
8279
8279
  className: "plays-last",
8280
- children: [u ? /* @__PURE__ */ Y("a", {
8280
+ children: [d ? /* @__PURE__ */ Y("a", {
8281
8281
  className: "mono",
8282
- title: u,
8283
- href: `/run/${encodeURIComponent(u)}`,
8282
+ title: d,
8283
+ href: `/run/${encodeURIComponent(d)}`,
8284
8284
  onClick: (e) => {
8285
- e.preventDefault(), e.stopPropagation(), E(`/run/${encodeURIComponent(u)}`);
8285
+ e.preventDefault(), e.stopPropagation(), E(`/run/${encodeURIComponent(d)}`);
8286
8286
  },
8287
- children: zo(u)
8287
+ children: zo(d)
8288
8288
  }) : "—", /* @__PURE__ */ Y("span", {
8289
- title: Ro(d?.at ?? t.latestRun?.startedAt) ?? void 0,
8290
- children: d ? /* @__PURE__ */ X(J, { children: [" ", /* @__PURE__ */ Y(T, {
8291
- status: e(d),
8289
+ title: Ro(f?.at ?? t.latestRun?.startedAt) ?? void 0,
8290
+ children: f ? /* @__PURE__ */ X(J, { children: [" ", /* @__PURE__ */ Y(T, {
8291
+ status: e(f),
8292
8292
  className: "ending-word"
8293
- })] }) : f ? /* @__PURE__ */ X(J, { children: [" ", /* @__PURE__ */ Y(T, {
8294
- status: v(f),
8293
+ })] }) : p ? /* @__PURE__ */ X(J, { children: [" ", /* @__PURE__ */ Y(T, {
8294
+ status: v(p),
8295
8295
  className: "ending-word"
8296
8296
  })] }) : null
8297
8297
  })]
@@ -8302,8 +8302,8 @@ function Vo({ rows: t, sort: n, onSort: i }) {
8302
8302
  }),
8303
8303
  /* @__PURE__ */ Y("td", {
8304
8304
  className: "num",
8305
- title: l?.priced !== null && l?.priced !== void 0 ? `${l.priced} of ${l.started ?? "?"} started runs priced${l.provenance ? ` (${l.provenance})` : ""}` : void 0,
8306
- children: l?.apiEquivalentUsd !== null && l?.apiEquivalentUsd !== void 0 && l.priced ? /* @__PURE__ */ X(J, { children: [k(l.apiEquivalentUsd), l.priced === l.started ? "" : "+"] }) : /* @__PURE__ */ Y("span", {
8305
+ title: u?.priced !== null && u?.priced !== void 0 ? `${u.priced} of ${u.started ?? "?"} started runs priced${u.provenance ? ` (${u.provenance})` : ""}` : void 0,
8306
+ children: u?.apiEquivalentUsd !== null && u?.apiEquivalentUsd !== void 0 && u.priced ? /* @__PURE__ */ X(J, { children: [k(u.apiEquivalentUsd), u.priced === u.started ? "" : "+"] }) : /* @__PURE__ */ Y("span", {
8307
8307
  className: "faint",
8308
8308
  title: "API-equivalent not priced",
8309
8309
  children: "—"
@@ -13516,7 +13516,7 @@ function Wl({ api: e, mode: t, id: n, theme: r = "auto" }) {
13516
13516
  return /* @__PURE__ */ Y("div", {
13517
13517
  className: "agent-record ar-ws",
13518
13518
  "data-theme": r === "auto" ? void 0 : r,
13519
- children: t === "receipt" ? /* @__PURE__ */ Y(su, {
13519
+ children: t === "receipt" ? /* @__PURE__ */ Y(cu, {
13520
13520
  api: e,
13521
13521
  id: n
13522
13522
  }) : t === "explore" ? /* @__PURE__ */ Y(Eo, { api: e }) : Wt(t) ? /* @__PURE__ */ Y(Xt, {
@@ -13528,7 +13528,7 @@ function Wl({ api: e, mode: t, id: n, theme: r = "auto" }) {
13528
13528
  }) : t === "theatre" ? /* @__PURE__ */ Y(ls, {
13529
13529
  api: e,
13530
13530
  id: n
13531
- }) : t === "plays" ? /* @__PURE__ */ Y(Xl, { api: e }) : t === "play" ? /* @__PURE__ */ Y(Ql, {
13531
+ }) : t === "plays" ? /* @__PURE__ */ Y(Zl, { api: e }) : t === "play" ? /* @__PURE__ */ Y($l, {
13532
13532
  api: e,
13533
13533
  id: n
13534
13534
  }) : /* @__PURE__ */ Y(Xt, {
@@ -13536,7 +13536,7 @@ function Wl({ api: e, mode: t, id: n, theme: r = "auto" }) {
13536
13536
  children: /* @__PURE__ */ Y(Gt, {
13537
13537
  api: e,
13538
13538
  id: n,
13539
- legacy: () => /* @__PURE__ */ Y(iu, {
13539
+ legacy: () => /* @__PURE__ */ Y(au, {
13540
13540
  api: e,
13541
13541
  id: n
13542
13542
  })
@@ -13607,8 +13607,8 @@ function Jl({ counts: e, total: t, noun: n, showHidden: r, onChange: i }) {
13607
13607
  })]
13608
13608
  }) : null;
13609
13609
  }
13610
- var Yl = 50;
13611
- function Xl({ api: e }) {
13610
+ var Yl = 50, Xl = (e) => (/* @__PURE__ */ new Set([...(e.runs ?? []).filter((e) => e.state === "running").map((e) => e.play), ...e.plays.filter((e) => e.latestRun?.state === "running").map((e) => e.id)])).size;
13611
+ function Zl({ api: e }) {
13612
13612
  let [t, n] = Jn(), r = D(`${e}/plays`), i = t.get("q") ?? "", a = t.get("program") ?? "", o = [
13613
13613
  "latest",
13614
13614
  "spend",
@@ -13632,27 +13632,27 @@ function Xl({ api: e }) {
13632
13632
  a,
13633
13633
  o,
13634
13634
  s
13635
- ]), h = [
13635
+ ]), h = G(() => new Map((r.data?.runs ?? []).filter((e) => e.state === "running").sort((e, t) => String(e.startedAt ?? "").localeCompare(String(t.startedAt ?? ""))).map((e) => [e.play, e.id])), [r.data]), g = [
13636
13636
  "plays",
13637
13637
  "findings",
13638
13638
  "runs"
13639
- ].find((e) => e === t.get("view")) ?? "plays", g = [
13639
+ ].find((e) => e === t.get("view")) ?? "plays", _ = [
13640
13640
  ["latest", "Latest run first"],
13641
13641
  ["spend", "Most API-equivalent first"],
13642
13642
  ["runs", "Most runs first"],
13643
13643
  ["name", "By name"]
13644
- ], _ = h === "plays" ? /* @__PURE__ */ Y(ot, {
13644
+ ], v = g === "plays" ? /* @__PURE__ */ Y(ot, {
13645
13645
  label: "Order",
13646
13646
  value: o,
13647
- options: g.map(([e, t]) => ({
13647
+ options: _.map(([e, t]) => ({
13648
13648
  id: e,
13649
13649
  label: t
13650
13650
  })),
13651
13651
  width: 260,
13652
13652
  placeholder: "Order plays",
13653
13653
  onChange: (e) => n({ sort: !e || e === "latest" ? void 0 : e }),
13654
- children: g.find(([e]) => e === o)?.[1] ?? "Latest run first"
13655
- }) : null, v = /* @__PURE__ */ X("div", {
13654
+ children: _.find(([e]) => e === o)?.[1] ?? "Latest run first"
13655
+ }) : null, b = /* @__PURE__ */ X("div", {
13656
13656
  className: "message-filters plays-filters",
13657
13657
  "aria-label": "Research filters",
13658
13658
  children: [
@@ -13681,9 +13681,9 @@ function Xl({ api: e }) {
13681
13681
  onChange: (e) => n({ program: e ?? void 0 }),
13682
13682
  children: a || "All programs"
13683
13683
  }),
13684
- _
13684
+ v
13685
13685
  ]
13686
- }), b = r.data?.frontiers?.length ? /* @__PURE__ */ X("details", {
13686
+ }), x = r.data?.frontiers?.length ? /* @__PURE__ */ X("details", {
13687
13687
  className: "research-frontiers",
13688
13688
  "aria-label": "Frontier statements",
13689
13689
  children: [/* @__PURE__ */ X("summary", {
@@ -13714,14 +13714,14 @@ function Xl({ api: e }) {
13714
13714
  ]
13715
13715
  }, e.id))
13716
13716
  })]
13717
- }) : null, x = /* @__PURE__ */ Y(Sn, {
13717
+ }) : null, S = /* @__PURE__ */ Y(Sn, {
13718
13718
  className: "rp-head",
13719
13719
  title: "Plays",
13720
13720
  actions: r.data ? /* @__PURE__ */ X("ul", {
13721
13721
  className: "rp-stats",
13722
13722
  children: [
13723
13723
  /* @__PURE__ */ X("li", { children: [/* @__PURE__ */ Y("b", { children: r.data.plays.length }), " plays"] }),
13724
- /* @__PURE__ */ X("li", { children: [/* @__PURE__ */ Y("b", { children: r.data.plays.filter((e) => e.latestRun?.state === "running").length }), " running"] }),
13724
+ /* @__PURE__ */ X("li", { children: [/* @__PURE__ */ Y("b", { children: Xl(r.data) }), " running"] }),
13725
13725
  r.data.builtAt && /* @__PURE__ */ X("li", {
13726
13726
  title: "when the host built this list",
13727
13727
  children: [
@@ -13732,10 +13732,10 @@ function Xl({ api: e }) {
13732
13732
  })
13733
13733
  ]
13734
13734
  }) : void 0
13735
- }), S = /* @__PURE__ */ Y(Cn, {
13735
+ }), C = /* @__PURE__ */ Y(Cn, {
13736
13736
  "aria-label": "Research views",
13737
13737
  className: "ws-views",
13738
- value: h,
13738
+ value: g,
13739
13739
  onValueChange: (e) => n({ view: e === "plays" ? void 0 : e }),
13740
13740
  options: [
13741
13741
  {
@@ -13752,14 +13752,14 @@ function Xl({ api: e }) {
13752
13752
  }
13753
13753
  ]
13754
13754
  });
13755
- if (h === "findings") return /* @__PURE__ */ X("div", {
13755
+ if (g === "findings") return /* @__PURE__ */ X("div", {
13756
13756
  className: "ws-page ws-plays",
13757
13757
  "data-plays-home": "findings",
13758
13758
  children: [
13759
- x,
13759
+ S,
13760
13760
  /* @__PURE__ */ X("div", {
13761
13761
  className: "plays-bar",
13762
- children: [S, v]
13762
+ children: [C, b]
13763
13763
  }),
13764
13764
  /* @__PURE__ */ Y(Ja, {
13765
13765
  api: e,
@@ -13768,19 +13768,19 @@ function Xl({ api: e }) {
13768
13768
  review: Ua.find(([e]) => e === t.get("review"))?.[0] ?? null,
13769
13769
  onReview: (e) => n({ review: e ?? void 0 })
13770
13770
  }),
13771
- b
13771
+ x
13772
13772
  ]
13773
13773
  });
13774
- if (h === "runs") {
13774
+ if (g === "runs") {
13775
13775
  let t = Date.now() - 2592e6, n = r.data?.runs ?? [], o = n.filter((e) => (e.state === "running" || e.startedAt && Date.parse(e.startedAt) >= t) && (!a || e.program === a) && (!i || `${e.id} ${e.play} ${e.reason ?? ""} ${e.stopCause ?? ""}`.toLowerCase().includes(i.toLowerCase()))), s = (e) => e ? `${e.slice(5, 10)} ${e.slice(11, 16)}Z` : "—";
13776
13776
  return /* @__PURE__ */ X("div", {
13777
13777
  className: "ws-page ws-plays",
13778
13778
  "data-plays-home": "runs",
13779
13779
  children: [
13780
- x,
13780
+ S,
13781
13781
  /* @__PURE__ */ X("div", {
13782
13782
  className: "plays-bar",
13783
- children: [S, v]
13783
+ children: [C, b]
13784
13784
  }),
13785
13785
  /* @__PURE__ */ X("div", {
13786
13786
  className: "runs-answer",
@@ -13861,10 +13861,10 @@ function Xl({ api: e }) {
13861
13861
  className: "ws-page ws-plays",
13862
13862
  "data-plays": !0,
13863
13863
  children: [
13864
- x,
13864
+ S,
13865
13865
  /* @__PURE__ */ X("div", {
13866
13866
  className: "plays-bar",
13867
- children: [S, v]
13867
+ children: [C, b]
13868
13868
  }),
13869
13869
  /* @__PURE__ */ Y(Jl, {
13870
13870
  counts: m.counts,
@@ -13881,7 +13881,8 @@ function Xl({ api: e }) {
13881
13881
  children: /* @__PURE__ */ Y(Vo, {
13882
13882
  rows: p.slice(0, u),
13883
13883
  sort: o,
13884
- onSort: (e) => n({ sort: e ?? void 0 })
13884
+ onSort: (e) => n({ sort: e ?? void 0 }),
13885
+ live: h
13885
13886
  })
13886
13887
  }),
13887
13888
  p.length > u && /* @__PURE__ */ X("button", {
@@ -13908,7 +13909,7 @@ function Xl({ api: e }) {
13908
13909
  })
13909
13910
  });
13910
13911
  }
13911
- var Zl = {
13912
+ var Ql = {
13912
13913
  results: { tab: "standing" },
13913
13914
  story: { tab: "standing" },
13914
13915
  versions: { tab: "releases" },
@@ -13920,8 +13921,8 @@ var Zl = {
13920
13921
  patch: { judged: "1" }
13921
13922
  }
13922
13923
  };
13923
- function Ql({ api: e, id: t }) {
13924
- let [n, r] = Jn(), i = D(`${e}/plays/${encodeURIComponent(t)}`), a = G(() => p(t), [t]), o = n.get("tab") ?? "standing", s = Zl[o];
13924
+ function $l({ api: e, id: t }) {
13925
+ let [n, r] = Jn(), i = D(`${e}/plays/${encodeURIComponent(t)}`), a = G(() => p(t), [t]), o = n.get("tab") ?? "standing", s = Ql[o];
13925
13926
  W(() => {
13926
13927
  s && r({
13927
13928
  tab: s.tab === "standing" ? void 0 : s.tab,
@@ -14047,7 +14048,7 @@ function Ql({ api: e, id: t }) {
14047
14048
  onChange: (e) => r({ show: e ? "all" : void 0 })
14048
14049
  }), /* @__PURE__ */ Y("section", {
14049
14050
  className: "ws-section",
14050
- children: /* @__PURE__ */ Y(eu, {
14051
+ children: /* @__PURE__ */ Y(tu, {
14051
14052
  play: y,
14052
14053
  latestDigest: T,
14053
14054
  headlines: P,
@@ -14078,7 +14079,7 @@ function Ql({ api: e, id: t }) {
14078
14079
  className: "ws-section gaps",
14079
14080
  children: [/* @__PURE__ */ Y("h3", { children: "Missing evidence" }), /* @__PURE__ */ Y("ul", {
14080
14081
  className: "gap-list",
14081
- children: nu(y.gaps).map((e) => /* @__PURE__ */ X("li", { children: [
14082
+ children: ru(y.gaps).map((e) => /* @__PURE__ */ X("li", { children: [
14082
14083
  /* @__PURE__ */ Y("code", { children: e.code }),
14083
14084
  " ",
14084
14085
  e.runs.length > 1 ? `${e.runs.length} runs: ${e.runs.map((e) => ql(_.id, e)).join(", ")}` : /* @__PURE__ */ X(J, { children: [e.runs[0] && /* @__PURE__ */ X("span", {
@@ -14188,14 +14189,14 @@ function Ql({ api: e, id: t }) {
14188
14189
  })
14189
14190
  });
14190
14191
  }
14191
- function $l(e, t) {
14192
+ function eu(e, t) {
14192
14193
  let n = /* @__PURE__ */ new Set();
14193
14194
  return e.filter((e) => {
14194
14195
  let r = e.method === "systemone" && e.calibrated !== !0;
14195
14196
  return e.status !== "decided" || r || e.polarity !== "bad" || n.has(e.dimension) || t && !t.has(e.dimension) ? !1 : (n.add(e.dimension), !0);
14196
14197
  });
14197
14198
  }
14198
- function eu({ play: e, latestDigest: t, headlines: n, headline: r, onOpen: i }) {
14199
+ function tu({ play: e, latestDigest: t, headlines: n, headline: r, onOpen: i }) {
14199
14200
  let a = e.runs.some((e) => e.purpose), o = new Map(e.runs.map((e) => [e.id, {
14200
14201
  equivalent: zl(e.spend),
14201
14202
  subscription: Rl(e.spend)
@@ -14315,13 +14316,13 @@ function eu({ play: e, latestDigest: t, headlines: n, headline: r, onOpen: i })
14315
14316
  className: `num ${c.spend.sandboxUsd === null ? "unknown" : ""}`,
14316
14317
  children: k(c.spend.sandboxUsd)
14317
14318
  }),
14318
- /* @__PURE__ */ Y("td", { children: c.record.capture ? /* @__PURE__ */ Y(tu, { capture: c.record.capture }) : /* @__PURE__ */ Y("span", {
14319
+ /* @__PURE__ */ Y("td", { children: c.record.capture ? /* @__PURE__ */ Y(nu, { capture: c.record.capture }) : /* @__PURE__ */ Y("span", {
14319
14320
  className: "faint",
14320
14321
  children: c.record.status
14321
14322
  }) }),
14322
14323
  /* @__PURE__ */ Y("td", {
14323
14324
  className: "headline-cell",
14324
- children: $l(n.get(c.id) ?? [], r).map((e) => /* @__PURE__ */ X("span", {
14325
+ children: eu(n.get(c.id) ?? [], r).map((e) => /* @__PURE__ */ X("span", {
14325
14326
  className: "label-chip polarity-bad",
14326
14327
  title: `${e.dimension}: ${e.label}`,
14327
14328
  children: [
@@ -14336,7 +14337,7 @@ function eu({ play: e, latestDigest: t, headlines: n, headline: r, onOpen: i })
14336
14337
  })
14337
14338
  });
14338
14339
  }
14339
- function tu({ capture: e }) {
14340
+ function nu({ capture: e }) {
14340
14341
  let t = Math.max(1, e.complete + e.lossy + e.absent);
14341
14342
  return /* @__PURE__ */ X("span", {
14342
14343
  className: "capture-bar",
@@ -14357,7 +14358,7 @@ function tu({ capture: e }) {
14357
14358
  ]
14358
14359
  });
14359
14360
  }
14360
- function nu(e) {
14361
+ function ru(e) {
14361
14362
  let t = /* @__PURE__ */ new Map();
14362
14363
  for (let n of e) {
14363
14364
  let e = t.get(n.code) ?? {
@@ -14370,7 +14371,7 @@ function nu(e) {
14370
14371
  }
14371
14372
  return [...t.values()];
14372
14373
  }
14373
- function ru({ api: e, runId: t, play: n, selected: r, onSelect: i }) {
14374
+ function iu({ api: e, runId: t, play: n, selected: r, onSelect: i }) {
14374
14375
  let a = D(`${e}/plays/${encodeURIComponent(n)}/profiles`), o = G(() => ({
14375
14376
  kind: "run",
14376
14377
  runId: t,
@@ -14393,7 +14394,7 @@ function ru({ api: e, runId: t, play: n, selected: r, onSelect: i }) {
14393
14394
  children: a.error ? `This run's profiles are unavailable: ${a.error}` : "Loading profile versions…"
14394
14395
  });
14395
14396
  }
14396
- function iu({ api: e, id: t }) {
14397
+ function au({ api: e, id: t }) {
14397
14398
  let [n, r] = Jn(), [i, a] = q(void 0), o = `${e}/runs/${encodeURIComponent(t)}`, [s, c] = q(0), [l, u] = q(null), [d, f] = q(() => /* @__PURE__ */ new Set()), p = K(null), m = D(s ? `${o}?revision=${s}` : o, i, !0);
14398
14399
  W(() => a(m.data?.live.polling ? 3e3 : void 0), [m.data?.live.polling]);
14399
14400
  let h = m.data?.run.record.digest ?? null, g = m.data?.run.record.status === "ready" || !!h, _ = h ? `&digest=${h}` : "", v = B(g ? `${o}/record?part=nodes${_}` : null), y = D(`${o}/assessments${h ? `?digest=${h}` : ""}`, void 0, !0), b = D(`${e}/dimensions`), x = G(() => ks(b.data), [b.data]), S = nl(n), C = n.get("node"), w = v.index, T = C ?? t, E = g && !m.data?.execution?.alive && ["archive", "none"].includes(m.data?.run.location?.kind ?? "") && p.current !== T, O = !m.data?.execution?.alive && g && (!w || w.nodes.has(w.canonical(T))), k = !!m.data?.execution && !O && !E && !d.has(T) && !["timeline", "usage"].includes(n.get("tab") ?? "");
@@ -14516,7 +14517,7 @@ function iu({ api: e, id: t }) {
14516
14517
  onOpen: I
14517
14518
  })] }),
14518
14519
  S === "versions" && ne,
14519
- S === "profiles" && /* @__PURE__ */ Y(ru, {
14520
+ S === "profiles" && /* @__PURE__ */ Y(iu, {
14520
14521
  api: e,
14521
14522
  runId: N.id,
14522
14523
  play: N.play,
@@ -14571,7 +14572,7 @@ function iu({ api: e, id: t }) {
14571
14572
  w && (S === "assessments" || S === "coverage") && j && /* @__PURE__ */ Y("section", {
14572
14573
  className: "run-panel",
14573
14574
  "aria-label": S,
14574
- children: M.index ? /* @__PURE__ */ Y(ou, {
14575
+ children: M.index ? /* @__PURE__ */ Y(su, {
14575
14576
  section: S,
14576
14577
  doc: P,
14577
14578
  index: M.index,
@@ -14602,7 +14603,7 @@ function iu({ api: e, id: t }) {
14602
14603
  v.error ? ` ${v.error}` : "",
14603
14604
  v.fetchError && !N.record.reason ? ` ${v.fetchError}` : ""
14604
14605
  ] }),
14605
- /* @__PURE__ */ Y(au, {
14606
+ /* @__PURE__ */ Y(ou, {
14606
14607
  api: e,
14607
14608
  doc: P
14608
14609
  })
@@ -14612,7 +14613,7 @@ function iu({ api: e, id: t }) {
14612
14613
  ]
14613
14614
  });
14614
14615
  }
14615
- function au({ api: e, doc: t }) {
14616
+ function ou({ api: e, doc: t }) {
14616
14617
  return /* @__PURE__ */ X(J, { children: [
14617
14618
  t.run.keys.length > 0 && /* @__PURE__ */ X("table", {
14618
14619
  className: "data-table",
@@ -14700,7 +14701,7 @@ function au({ api: e, doc: t }) {
14700
14701
  })
14701
14702
  ] });
14702
14703
  }
14703
- function ou({ section: e, doc: t, index: n, actor: r, params: i, update: a, assessments: o, dimensions: s, gaps: c, stats: l, onSelectAgent: u }) {
14704
+ function su({ section: e, doc: t, index: n, actor: r, params: i, update: a, assessments: o, dimensions: s, gaps: c, stats: l, onSelectAgent: u }) {
14704
14705
  return e === "assessments" ? /* @__PURE__ */ Y(Ns, {
14705
14706
  doc: o,
14706
14707
  dimensions: s,
@@ -14726,7 +14727,7 @@ function ou({ section: e, doc: t, index: n, actor: r, params: i, update: a, asse
14726
14727
  onSelect: u
14727
14728
  });
14728
14729
  }
14729
- function su({ api: e, id: t }) {
14730
+ function cu({ api: e, id: t }) {
14730
14731
  let [n, r] = t.split("@"), i = `${e}/runs/${encodeURIComponent(n)}/receipt${r ? `/${encodeURIComponent(r)}` : ""}/receipt.json`, a = D(i), o = D(`${e}/runs/${encodeURIComponent(n)}`);
14731
14732
  return a.data ? /* @__PURE__ */ Y("div", {
14732
14733
  className: "agent-record ar-ws",
@@ -14751,8 +14752,8 @@ function su({ api: e, id: t }) {
14751
14752
  }
14752
14753
  //#endregion
14753
14754
  //#region src/workspace/RunFold.tsx
14754
- var cu = 180, lu = (e) => e ? `${new Date(e).toISOString().slice(11, 16)} UTC` : null, uu = (e) => e.replace(/\b\d{4}-(\d\d)-(\d\d)T(\d\d:\d\d)(?::\d\d(?:\.\d+)?)?Z\b/g, "$1-$2 $3Z");
14755
- function du({ doc: t }) {
14755
+ var lu = 180, uu = (e) => e ? `${new Date(e).toISOString().slice(11, 16)} UTC` : null, du = (e) => e.replace(/\b\d{4}-(\d\d)-(\d\d)T(\d\d:\d\d)(?::\d\d(?:\.\d+)?)?Z\b/g, "$1-$2 $3Z");
14756
+ function fu({ doc: t }) {
14756
14757
  return /* @__PURE__ */ X("p", {
14757
14758
  className: "run-status-line",
14758
14759
  role: "status",
@@ -14766,8 +14767,8 @@ function du({ doc: t }) {
14766
14767
  })]
14767
14768
  });
14768
14769
  }
14769
- function fu({ doc: e, play: t }) {
14770
- let n = e.execution ?? null, r = gt(e), i = (e.run.ending?.reason ?? e.receipt?.outcome?.reason ?? (e.run.state === "stalled" ? e.run.reason : null))?.replace(/^stalled:\s*/, "") ?? null, o = i ? ft(uu(i)) : null, s = n?.diagnoses[0], c = s ? ae(s.fix) : "", l = c.length > cu ? `${c.slice(0, 179).trimEnd()}…` : c, u = St(e, t), d = e.progress?.outcome?.gate, f = d?.line && d.verdict && d.verdict !== "pass" ? d : null, p = r ? e.progress?.blocker ?? null : e.progress?.endBlocker ?? null, m = new Set([p?.class, ...(p?.also ?? []).map((e) => e.class)].filter(Boolean)), h = e.run.check?.gateUnknown?.tags?.filter((t) => !u || t !== a(e.run.check?.gate?.tag)), g = e.run.check?.gateUnknown?.count && !m.has("gate-undecided") && (!u || h?.length) ? e.run.check.gateUnknown : null, _ = m.has("quota-wall") ? null : e.receipt?.system?.attempts?.causes.find((e) => e.cause === "rate-limited" && e.tries > 0) ?? null, v = n && (n.resume.status === "preserved" || n.resume.reason || n.resume.command), y = r ? null : e.run.ending?.at ?? n?.lastActivityAt ?? null, x = e.receipt?.work?.wallHours ?? null, S = b({
14770
+ function pu({ doc: e, play: t }) {
14771
+ let n = e.execution ?? null, r = gt(e), i = (e.run.ending?.reason ?? e.receipt?.outcome?.reason ?? (e.run.state === "stalled" ? e.run.reason : null))?.replace(/^stalled:\s*/, "") ?? null, o = i ? ft(du(i)) : null, s = n?.diagnoses[0], c = s ? ae(s.fix) : "", l = c.length > lu ? `${c.slice(0, 179).trimEnd()}…` : c, u = St(e, t), d = e.progress?.outcome?.gate, f = d?.line && d.verdict && d.verdict !== "pass" ? d : null, p = r ? e.progress?.blocker ?? null : e.progress?.endBlocker ?? null, m = new Set([p?.class, ...(p?.also ?? []).map((e) => e.class)].filter(Boolean)), h = e.run.check?.gateUnknown?.tags?.filter((t) => !u || t !== a(e.run.check?.gate?.tag)), g = e.run.check?.gateUnknown?.count && !m.has("gate-undecided") && (!u || h?.length) ? e.run.check.gateUnknown : null, _ = m.has("quota-wall") ? null : e.receipt?.system?.attempts?.causes.find((e) => e.cause === "rate-limited" && e.tries > 0) ?? null, v = n && (n.resume.status === "preserved" || n.resume.reason || n.resume.command), y = r ? null : e.run.ending?.at ?? n?.lastActivityAt ?? null, x = e.receipt?.work?.wallHours ?? null, S = b({
14771
14772
  axis: "alert",
14772
14773
  severity: "amber",
14773
14774
  live: r
@@ -14823,8 +14824,8 @@ function fu({ doc: e, play: t }) {
14823
14824
  "×"
14824
14825
  ] }),
14825
14826
  " ",
14826
- lu(g.from),
14827
- g.count > 1 && /* @__PURE__ */ X(J, { children: ["–", lu(g.to)] }),
14827
+ uu(g.from),
14828
+ g.count > 1 && /* @__PURE__ */ X(J, { children: ["–", uu(g.to)] }),
14828
14829
  g.tags?.length ? /* @__PURE__ */ X(J, { children: [" on ", /* @__PURE__ */ Y("code", { children: g.tags.join(", ") })] }) : null,
14829
14830
  g.line && /* @__PURE__ */ X(J, { children: [": ", /* @__PURE__ */ Y("span", {
14830
14831
  className: "run-blocker-line",
@@ -14842,7 +14843,7 @@ function fu({ doc: e, play: t }) {
14842
14843
  f.verdict === "fail" ? "did not pass" : "unverified"
14843
14844
  ] }),
14844
14845
  a(f.tag) && /* @__PURE__ */ X(J, { children: [" on ", /* @__PURE__ */ Y("code", { children: a(f.tag) })] }),
14845
- lu(f.at) && /* @__PURE__ */ X(J, { children: [" at ", lu(f.at)] }),
14846
+ uu(f.at) && /* @__PURE__ */ X(J, { children: [" at ", uu(f.at)] }),
14846
14847
  ": ",
14847
14848
  /* @__PURE__ */ Y("span", {
14848
14849
  className: "run-blocker-line",
@@ -14886,18 +14887,18 @@ function fu({ doc: e, play: t }) {
14886
14887
  }
14887
14888
  //#endregion
14888
14889
  //#region src/workspace/record-flow.ts
14889
- var pu = (e) => e === "error" || e === "failed" || e === "driver-failed", mu = (e) => typeof e == "string" ? R(e) : NaN;
14890
- function hu(e, t = !1, n = Date.now()) {
14891
- let r = I(e), i = [...r.actors.map((e) => mu(e.start)), ...r.events.map((e) => R(e.at))].filter(Number.isFinite), a = i.length ? i.reduce((e, t) => Math.min(e, t)) : n, o = [...r.actors.map((e) => mu(e.end)), ...r.events.map((e) => R(e.at))].filter(Number.isFinite).reduce((e, t) => Math.max(e, t), t ? Math.max(a, n) : a), s = [], c = new Set(r.actors.map((e) => e.id)), l = new Set(r.actors.filter((e) => t && !e.end && (!e.status || [
14890
+ var mu = (e) => e === "error" || e === "failed" || e === "driver-failed", hu = (e) => typeof e == "string" ? R(e) : NaN;
14891
+ function gu(e, t = !1, n = Date.now()) {
14892
+ let r = I(e), i = [...r.actors.map((e) => hu(e.start)), ...r.events.map((e) => R(e.at))].filter(Number.isFinite), a = i.length ? i.reduce((e, t) => Math.min(e, t)) : n, o = [...r.actors.map((e) => hu(e.end)), ...r.events.map((e) => R(e.at))].filter(Number.isFinite).reduce((e, t) => Math.max(e, t), t ? Math.max(a, n) : a), s = [], c = new Set(r.actors.map((e) => e.id)), l = new Set(r.actors.filter((e) => t && !e.end && (!e.status || [
14892
14893
  "running",
14893
14894
  "working",
14894
14895
  "waiting"
14895
14896
  ].includes(e.status))).map((e) => e.id)), u = (e) => Math.max(0, e - a);
14896
14897
  for (let e of r.actors) {
14897
14898
  if (e.kind === "finding") continue;
14898
- let t = r.byActor.get(e.id) ?? [], n = Number.isFinite(mu(e.start)) ? mu(e.start) : t[0] ? R(t[0].at) : NaN;
14899
+ let t = r.byActor.get(e.id) ?? [], n = Number.isFinite(hu(e.start)) ? hu(e.start) : t[0] ? R(t[0].at) : NaN;
14899
14900
  if (!Number.isFinite(n)) continue;
14900
- let i = l.has(e.id), a = i ? o : Number.isFinite(mu(e.end)) ? mu(e.end) : t.at(-1) ? R(t.at(-1).at) : n, d = e.parent ? r.canonical(e.parent) : void 0;
14901
+ let i = l.has(e.id), a = i ? o : Number.isFinite(hu(e.end)) ? hu(e.end) : t.at(-1) ? R(t.at(-1).at) : n, d = e.parent ? r.canonical(e.parent) : void 0;
14901
14902
  s.push({
14902
14903
  id: e.id,
14903
14904
  ...d && c.has(d) ? { parentId: d } : {},
@@ -14905,7 +14906,7 @@ function hu(e, t = !1, n = Date.now()) {
14905
14906
  name: e.label,
14906
14907
  startMs: u(n),
14907
14908
  endMs: u(Math.max(n, a)),
14908
- status: i ? "running" : pu(e.status) ? "failed" : "done"
14909
+ status: i ? "running" : mu(e.status) ? "failed" : "done"
14909
14910
  }), d && c.has(d) && s.push({
14910
14911
  id: `${e.id}:handoff`,
14911
14912
  parentId: d,
@@ -14923,7 +14924,7 @@ function hu(e, t = !1, n = Date.now()) {
14923
14924
  n.usageScope === void 0 && (d += (n.usage?.input ?? 0) + (n.usage?.cacheRead ?? 0) + (n.usage?.cacheWrite ?? 0), f += n.usage?.output ?? 0, n.usdKnown === !1 ? h = !0 : typeof n.costListUsd == "number" ? (p += n.costListUsd, m = !0) : n.usage && Object.values(n.usage).some((e) => typeof e == "number" && e > 0) && (h = !0));
14924
14925
  let i = R(e.at), a = r.canonical(e.node), c = n.role === "assistant" && !!(n.publicText || n.reasoning || n.usage || n.responseStatus);
14925
14926
  if (c && _.set(a, Math.max(_.get(a) ?? i, i)), typeof n.spanId == "string") {
14926
- let r = e.kind.replace(/^trace-/, "").toLowerCase(), c = mu(n.end), l = t && !Number.isFinite(c), d = ["llm", "model"].includes(r) ? "model" : r === "tool" ? "tool" : r === "waiting" ? "waiting" : r === "handoff" ? "handoff" : "pipeline", f = String(n.traceId ?? e.node);
14927
+ let r = e.kind.replace(/^trace-/, "").toLowerCase(), c = hu(n.end), l = t && !Number.isFinite(c), d = ["llm", "model"].includes(r) ? "model" : r === "tool" ? "tool" : r === "waiting" ? "waiting" : r === "handoff" ? "handoff" : "pipeline", f = String(n.traceId ?? e.node);
14927
14928
  s.push({
14928
14929
  id: `${f}:${n.spanId}`,
14929
14930
  parentId: typeof n.parentSpanId == "string" ? `${f}:${n.parentSpanId}` : a,
@@ -14931,7 +14932,7 @@ function hu(e, t = !1, n = Date.now()) {
14931
14932
  name: e.label,
14932
14933
  startMs: u(i),
14933
14934
  endMs: u(Number.isFinite(c) ? Math.max(i, c) : l ? o : i),
14934
- status: pu(n.status) || n.isError ? "failed" : l ? "running" : "done"
14935
+ status: mu(n.status) || n.isError ? "failed" : l ? "running" : "done"
14935
14936
  }), d === "tool" && g.add(se(e.node, n.spanId));
14936
14937
  } else c && s.push({
14937
14938
  id: e.id,
@@ -14941,7 +14942,7 @@ function hu(e, t = !1, n = Date.now()) {
14941
14942
  startMs: u(i),
14942
14943
  endMs: u(i),
14943
14944
  approx: !0,
14944
- status: pu(n.responseStatus) ? "failed" : "done",
14945
+ status: mu(n.responseStatus) ? "failed" : "done",
14945
14946
  meta: { timing: "Response timestamp; generation duration was not recorded" }
14946
14947
  });
14947
14948
  }
@@ -14970,8 +14971,8 @@ function hu(e, t = !1, n = Date.now()) {
14970
14971
  }
14971
14972
  //#endregion
14972
14973
  //#region src/workspace/RunFlowWaterfall.tsx
14973
- function gu({ record: e, live: t = !1, defaultCollapsed: n, view: r = "agents" }) {
14974
- let i = G(() => hu(e, t), [e, t]);
14974
+ function _u({ record: e, live: t = !1, defaultCollapsed: n, view: r = "agents" }) {
14975
+ let i = G(() => gu(e, t), [e, t]);
14975
14976
  return /* @__PURE__ */ X("div", {
14976
14977
  className: "record-flow-waterfall",
14977
14978
  "data-record-flow": e.runId,
@@ -14988,4 +14989,4 @@ function gu({ record: e, live: t = !1, defaultCollapsed: n, view: r = "agents" }
14988
14989
  });
14989
14990
  }
14990
14991
  //#endregion
14991
- export { zn as AgentRecord, Wc as AgentTable, It as AnswerStrip, Pt as AsOfStamp, Q as CollapsibleValue, Ks as FinalOutputPanel, $s as InputView, No as PlayHeader, da as ProfileCanvas, Gi as ProfileDetail, $c as RUN_TABS, gu as RecordFlowWaterfall, Fa as RecordWorkGraph, ur as ResearchReport, At as RunOverview, Tt as RunReceiptView, du as RunStatusLine, rl as RunTabBar, fu as RunWhy, Ul as SpendBars, T as StatusPill, Ws as TraceReviewSection, Jr as VALUE_PREVIEW, ri as ValueControls, ni as ValueScope, Wl as Workspace, Vl as agentSpendRows, et as assessmentRowSchema, tt as assessmentsDocumentSchema, nt as dimensionSchema, rt as dimensionsDocumentSchema, qe as feedItemSchema, He as finalOutputSchema, Ge as findingItemSchema, Le as findingsFeedSchema, Ae as findingsSchema, Qr as followCommand, Ue as forkSchema, Ke as gapSchema, Me as hiddenReasons, l as hostWords, Be as humanGradeSchema, Je as lineageEdgeKinds, y as newerStarted, mt as overviewAnswers, Ne as panelReviewSchema, le as parseRecord, qn as parseReportOptions, de as parseResearchReport, qa as plainFinding, Pe as playCheckSchema, We as playDocumentSchema, Ve as playInputSchema, Er as playReportToResearchReport, Ie as playsDocumentSchema, it as polarities, Fe as profileBases, ke as profileBlameSchema, Ye as profileDiffFieldSchema, Qe as profileDiffSchema, je as profileGraphDocumentSchema, Ze as profileNodeSchema, Ee as profileRelations, ge as profileScoreSchema, Xe as profileSearchSchema, De as progressBriefSchema, ve as publicationSchema, _e as readoutSchema, ue as recordSchema, Ce as recordStatusSchema, Na as recordWorkGraphModel, ze as releaseSchema, fe as reportToLatex, pe as researchReportSchema, me as roleCardSchema, Re as roleEditSchema, H as roleScorecardSummarySchema, Se as runDocumentSchema, we as runProgressSchema, u as runReceiptSchema, ye as runRoleCardSchema, be as runSummarySchema, xe as scientificReviewSchema, nl as sectionOf, Te as spendSchema, b as statusOf, el as tabOf, $e as traceReviewQuestionSchema, he as traceReviewSchema, Zr as valueChars, Xr as valuePreview, Oe as versionGraphDocumentSchema };
14992
+ export { zn as AgentRecord, Wc as AgentTable, It as AnswerStrip, Pt as AsOfStamp, Q as CollapsibleValue, Ks as FinalOutputPanel, $s as InputView, No as PlayHeader, da as ProfileCanvas, Gi as ProfileDetail, $c as RUN_TABS, _u as RecordFlowWaterfall, Fa as RecordWorkGraph, ur as ResearchReport, At as RunOverview, Tt as RunReceiptView, fu as RunStatusLine, rl as RunTabBar, pu as RunWhy, Ul as SpendBars, T as StatusPill, Ws as TraceReviewSection, Jr as VALUE_PREVIEW, ri as ValueControls, ni as ValueScope, Wl as Workspace, Vl as agentSpendRows, et as assessmentRowSchema, tt as assessmentsDocumentSchema, nt as dimensionSchema, rt as dimensionsDocumentSchema, qe as feedItemSchema, He as finalOutputSchema, Ge as findingItemSchema, Le as findingsFeedSchema, Ae as findingsSchema, Qr as followCommand, Ue as forkSchema, Ke as gapSchema, Me as hiddenReasons, l as hostWords, Be as humanGradeSchema, Je as lineageEdgeKinds, y as newerStarted, mt as overviewAnswers, Ne as panelReviewSchema, le as parseRecord, qn as parseReportOptions, de as parseResearchReport, qa as plainFinding, Pe as playCheckSchema, We as playDocumentSchema, Ve as playInputSchema, Er as playReportToResearchReport, Ie as playsDocumentSchema, it as polarities, Fe as profileBases, ke as profileBlameSchema, Ye as profileDiffFieldSchema, Qe as profileDiffSchema, je as profileGraphDocumentSchema, Ze as profileNodeSchema, Ee as profileRelations, ge as profileScoreSchema, Xe as profileSearchSchema, De as progressBriefSchema, ve as publicationSchema, _e as readoutSchema, ue as recordSchema, Ce as recordStatusSchema, Na as recordWorkGraphModel, ze as releaseSchema, fe as reportToLatex, pe as researchReportSchema, me as roleCardSchema, Re as roleEditSchema, H as roleScorecardSummarySchema, Se as runDocumentSchema, we as runProgressSchema, u as runReceiptSchema, ye as runRoleCardSchema, be as runSummarySchema, xe as scientificReviewSchema, nl as sectionOf, Te as spendSchema, b as statusOf, el as tabOf, $e as traceReviewQuestionSchema, he as traceReviewSchema, Zr as valueChars, Xr as valuePreview, Oe as versionGraphDocumentSchema };
@@ -6,11 +6,11 @@ var n = (e) => {
6
6
  t = Number(sessionStorage.getItem("ar-chunk-reload")) || 0, sessionStorage.setItem("ar-chunk-reload", String(Date.now()));
7
7
  } catch {}
8
8
  return typeof location > "u" || Date.now() - t <= 6e4 ? Promise.reject(e) : (location.reload(), new Promise(() => {}));
9
- }, r = () => import("./RunPage-nJwCsArn.js").catch(n);
9
+ }, r = () => import("./RunPage-CkkcBEUe.js").catch(n);
10
10
  typeof location < "u" && location.pathname.startsWith("/run/") && r();
11
- var i = t(() => r().then((e) => ({ default: e.RunPage }))), a = () => import("./WallPages-DSmRm2v3.js").catch(n), o = {
12
- live: t(() => import("./LiveRun-C-yKwkKs.js").catch(n).then((e) => ({ default: e.LiveRun }))),
13
- today: t(() => import("./Today-pebCsPJ1.js").catch(n).then((e) => ({ default: e.TodayPage }))),
11
+ var i = t(() => r().then((e) => ({ default: e.RunPage }))), a = () => import("./WallPages-4d9QUZDq.js").catch(n), o = {
12
+ live: t(() => import("./LiveRun-C21wUKAY.js").catch(n).then((e) => ({ default: e.LiveRun }))),
13
+ today: t(() => import("./Today-BVVDtSVN.js").catch(n).then((e) => ({ default: e.TodayPage }))),
14
14
  fleet: t(() => a().then((e) => ({ default: e.FleetPage }))),
15
15
  sandboxes: t(() => a().then((e) => ({ default: e.SandboxesPage }))),
16
16
  ideas: t(() => a().then((e) => ({ default: e.IdeasPage })))