@kky42/pievo-server 2.4.2 → 2.4.4

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 (55) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/MachinesModal-Ci18Bitd.js +1 -0
  3. package/.output/public/assets/{SignIn-0Tjqs-Ma.js → SignIn-Czy-XJou.js} +1 -1
  4. package/.output/public/assets/{actionUi-DpwGIGpw.js → actionUi-DGJmNwsD.js} +1 -1
  5. package/.output/public/assets/app-CuZ0I3Mb.css +2 -0
  6. package/.output/public/assets/index-gJavUZIA.js +10 -0
  7. package/.output/public/assets/{invite._token-KMD2JAgE.js → invite._token-BQUbjPMM.js} +1 -1
  8. package/.output/public/assets/{invite._token-Btg_0aLp.js → invite._token-BUYUsIBj.js} +1 -1
  9. package/.output/public/assets/lifecycleUi-C0DaC6NM.js +1 -0
  10. package/.output/public/assets/loops._loopId-BkEPvT1q.js +67 -0
  11. package/.output/public/assets/{loops._loopId_.runs._runId-DRCgXaCq.js → loops._loopId_.runs._runId-SM4sD1xB.js} +2 -2
  12. package/.output/public/assets/{preload-helper-DsxECZIS.js → preload-helper-D1jXs0sN.js} +1 -1
  13. package/.output/public/assets/routes-4mIvs8LG.js +1 -0
  14. package/.output/public/assets/{routes-LDbnnQ3f.js → routes-B0svLfFq.js} +1 -1
  15. package/.output/public/assets/{t._teamId-DUena1pV.js → t._teamId-BLO_bz6b.js} +1 -1
  16. package/.output/public/assets/t._teamId-D-wGh4mo.js +1 -0
  17. package/.output/public/assets/{ui-Do4gqMyP.js → ui-DGHTxOhC.js} +1 -1
  18. package/.output/server/_ssr/{DashboardView-C2LdV6J0.mjs → DashboardView-DqZLADCp.mjs} +14 -93
  19. package/.output/server/_ssr/{MachinesModal-BjkcVjjx.mjs → MachinesModal-BsCfGuwp.mjs} +140 -5
  20. package/.output/server/_ssr/{SignIn-DEGrvJvb.mjs → SignIn-ffgDY0yf.mjs} +3 -3
  21. package/.output/server/_ssr/{SocialLinks-Cm4H8pUJ.mjs → SocialLinks-Bt7huqfS.mjs} +3 -2
  22. package/.output/server/_ssr/{actionUi-DJBWuNwr.mjs → actionUi-DD7Cd7Le.mjs} +2 -2
  23. package/.output/server/_ssr/{artifactFiles-DtpRidFZ.mjs → artifactFiles-DHBXTtZn.mjs} +2 -2
  24. package/.output/server/_ssr/{artifactKind-FBYbgSuf.mjs → artifactKind-CwQ_Ddj6.mjs} +3 -3
  25. package/.output/server/_ssr/{invite._token-CJ6-H-s3.mjs → invite._token-AvtAuDKv.mjs} +2 -2
  26. package/.output/server/_ssr/{invite._token-l1SjouDz.mjs → invite._token-CHR5K84a.mjs} +4 -4
  27. package/.output/server/_ssr/{invite._token-dLKDJKVs.mjs → invite._token-tw3mgvEo.mjs} +6 -6
  28. package/.output/server/_ssr/lifecycleUi-DOr6Af13.mjs +51 -0
  29. package/.output/server/_ssr/{loopApi-BKyFB4KM.mjs → loopApi-7YHXDl5g.mjs} +7 -7
  30. package/.output/server/_ssr/{loopProjection-B8a829ij.mjs → loopProjection-eZvVobW7.mjs} +29 -4
  31. package/.output/server/_ssr/{loops._loopId-DS16Phmq.mjs → loops._loopId-TEIcuqZU.mjs} +60 -104
  32. package/.output/server/_ssr/{loops._loopId_.runs._runId-CduETLqH.mjs → loops._loopId_.runs._runId-B4jXeonc.mjs} +3 -3
  33. package/.output/server/_ssr/{loops._loopId_.runs._runId-BEJI6iK5.mjs → loops._loopId_.runs._runId-BVQKe8xT.mjs} +6 -6
  34. package/.output/server/_ssr/{router-CXyrnvx-.mjs → router-DyhWcIzt.mjs} +8 -8
  35. package/.output/server/_ssr/{routes-DD94baie.mjs → routes-BWLQNDn5.mjs} +2 -2
  36. package/.output/server/_ssr/{routes-Wjexi35W.mjs → routes-Cz49hLy6.mjs} +5 -5
  37. package/.output/server/_ssr/{routes-BulNEUEE.mjs → routes-DqIGr7p0.mjs} +5 -5
  38. package/.output/server/_ssr/ssr.mjs +21 -21
  39. package/.output/server/_ssr/{t._teamId-COuMKQ4r.mjs → t._teamId-COoQSQtH.mjs} +5 -5
  40. package/.output/server/_ssr/{t._teamId-Bd6-zZsy.mjs → t._teamId-Dms0PTMu.mjs} +2 -2
  41. package/.output/server/_ssr/{t._teamId-1CreIlPV.mjs → t._teamId-xFPYdSPu.mjs} +5 -5
  42. package/.output/server/_ssr/{teamFns-j2JKjorZ.mjs → teamFns-gilVwh7z.mjs} +2 -2
  43. package/.output/server/_ssr/{ui-D5KWstlb.mjs → ui-dMEI4sHj.mjs} +12 -7
  44. package/.output/server/_tanstack-start-manifest_v-UkU-Jq6w.mjs +86 -0
  45. package/.output/server/index.mjs +86 -86
  46. package/package.json +1 -1
  47. package/.output/public/assets/MachinesModal-CSbnrUER.js +0 -1
  48. package/.output/public/assets/app-CaZpuwOS.css +0 -2
  49. package/.output/public/assets/index-CaS_SmDq.js +0 -10
  50. package/.output/public/assets/lifecycleUi-C7dwHtbw.js +0 -1
  51. package/.output/public/assets/loops._loopId-D5usF3DO.js +0 -67
  52. package/.output/public/assets/routes-CtFgwdgW.js +0 -1
  53. package/.output/public/assets/t._teamId-D41xcbsF.js +0 -1
  54. package/.output/server/_ssr/lifecycleUi-Dad3hvhm.mjs +0 -37
  55. package/.output/server/_tanstack-start-manifest_v-3H7yBKLz.mjs +0 -85
@@ -1,18 +1,18 @@
1
1
  import { o as __toESM } from "../_runtime.mjs";
2
2
  import { s as CODING_AGENTS } from "./boot-sNlIkoLe.mjs";
3
3
  import { g as require_react, h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
4
- import { C as runPulseStyle, D as until, E as tsShort, T as selectCls, _ as humanBytes, a as btn, c as btnQuiet, d as dotColor, f as dotLabel, h as fmt, m as dur, n as Loading, o as btnDanger, r as Pill, s as btnPrimary, t as ErrorBanner, v as inputCls, w as sectionHeadCls, x as rel, y as labelCls } from "./ui-D5KWstlb.mjs";
5
- import { i as useFlash, n as FlashLine, r as LoadErrorCard, t as ConfirmBar } from "./actionUi-DJBWuNwr.mjs";
4
+ import { E as tsShort, S as runPulseStyle, T as selectCls, _ as inputCls, a as btn, b as rel, c as btnQuiet, d as dotLabel, g as humanBytes, m as fmt, n as Loading, o as btnDanger, p as dur, r as Pill, s as btnPrimary, t as ErrorBanner, u as dotColor, v as labelCls, w as sectionHeadCls } from "./ui-dMEI4sHj.mjs";
5
+ import { i as useFlash, n as FlashLine, r as LoadErrorCard, t as ConfirmBar } from "./actionUi-DD7Cd7Le.mjs";
6
6
  import { d as useNavigate, u as Link } from "../_libs/@tanstack/react-router+[...].mjs";
7
- import { C as startLoop, E as useSession, _ as loadOlderRuns, b as pauseLoop, c as getArtifact, l as getArtifacts, p as getLoopDetail, s as deleteLoop, w as stopLoop, x as runLoop, y as patchLoop } from "./SocialLinks-Cm4H8pUJ.mjs";
7
+ import { C as startLoop, E as useSession, _ as loadOlderRuns, b as pauseLoop, c as getArtifact, l as getArtifacts, p as getLoopDetail, s as deleteLoop, w as stopLoop, x as runLoop, y as patchLoop } from "./SocialLinks-Bt7huqfS.mjs";
8
8
  import { t as setActiveTeamCookie } from "./teamCookie-B7hLOIie.mjs";
9
- import { t as SignIn } from "./SignIn-DEGrvJvb.mjs";
10
- import { i as lifecycleDisplay, n as daemonStopSupport, r as deriveLoopLifecycle, t as DAEMON_UPGRADE_REQUIRED } from "./lifecycleUi-Dad3hvhm.mjs";
11
- import { a as Timeline, c as mergeRuns, t as MachinesModal } from "./MachinesModal-BjkcVjjx.mjs";
12
- import { n as artifactKind, t as Route } from "./artifactKind-FBYbgSuf.mjs";
9
+ import { t as SignIn } from "./SignIn-ffgDY0yf.mjs";
10
+ import { n as daemonStopSupport, r as deriveLoopLifecycle, t as DAEMON_UPGRADE_REQUIRED } from "./lifecycleUi-DOr6Af13.mjs";
11
+ import { l as mergeRuns, n as MachinesModal, o as Timeline, t as LoopOverview } from "./MachinesModal-BsCfGuwp.mjs";
12
+ import { n as artifactKind, t as Route } from "./artifactKind-CwQ_Ddj6.mjs";
13
13
  import { t as purify } from "../_libs/dompurify.mjs";
14
14
  import { t as g } from "../_libs/marked.mjs";
15
- //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-DS16Phmq.js
15
+ //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-TEIcuqZU.js
16
16
  var import_react = /* @__PURE__ */ __toESM(require_react());
17
17
  var import_jsx_runtime = require_jsx_runtime();
18
18
  /** Download URL for one artifact. Each path segment is encoded independently so
@@ -796,8 +796,7 @@ function LoopDetailView({ id }) {
796
796
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Loading, {})
797
797
  });
798
798
  const { loop, summary, runs } = detail;
799
- const lifecycle = deriveLoopLifecycle(summary);
800
- const deleting = lifecycle === "deleting";
799
+ const deleting = deriveLoopLifecycle(summary) === "deleting";
801
800
  const active = summary.enabled && !deleting;
802
801
  const paused = !summary.enabled && !deleting;
803
802
  const busy = pending != null;
@@ -839,74 +838,41 @@ function LoopDetailView({ id }) {
839
838
  })]
840
839
  })]
841
840
  });
842
- const scheduleText = loop.schedule.mode === "cron" ? `${loop.schedule.cron} · ${loop.schedule.timezone} · overlap ${loop.schedule.overlap}` : `continuous · ${loop.schedule.delayMinutes}m after terminal`;
841
+ const configurationScheduleText = loop.schedule.mode === "cron" ? `${loop.schedule.cron} · ${loop.schedule.timezone} · overlap ${loop.schedule.overlap}` : `continuous · ${loop.schedule.delayMinutes}m after terminal`;
843
842
  const model = loop.model || "default";
844
843
  const effort = loop.reasoningEffort || "default";
844
+ const overviewRuns = older.length ? mergeRuns(summary.runs, older) : summary.runs;
845
+ const loadMore = async () => {
846
+ const oldest = overviewRuns[0];
847
+ if (!oldest) return 0;
848
+ const more = await loadOlderRuns({ data: {
849
+ loopId: id,
850
+ beforeTs: oldest.ts,
851
+ limit: 16
852
+ } });
853
+ if (more.length) setOlder((current) => mergeRuns(current, more));
854
+ return more.length;
855
+ };
845
856
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Shell, {
846
857
  back,
847
858
  children: [
848
859
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("header", {
849
- className: "rounded-card border border-hairline bg-surface px-6 pb-5 pt-[22px] shadow-card",
850
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
851
- className: "flex flex-wrap items-start justify-between gap-x-6 gap-y-4",
852
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
853
- className: "min-w-0",
854
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
855
- className: "flex flex-wrap items-center gap-3",
856
- children: [
857
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h1", {
858
- className: "text-[28px] font-semibold leading-tight tracking-[-0.015em] text-display",
859
- children: summary.name
860
- }),
861
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pill, {
862
- tone: lifecycle === "stopping" ? "running" : void 0,
863
- dot: lifecycle === "stopping" ? "pulse" : void 0,
864
- children: lifecycleDisplay(detail)
865
- }),
866
- summary.queued && lifecycle === "active" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pill, {
867
- tone: "outline",
868
- children: "Queued"
869
- }),
870
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pill, {
871
- tone: "outline",
872
- children: AGENT_LABEL[loop.agent]
873
- }),
874
- crossTeam && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pill, {
875
- tone: "outline",
876
- children: crossTeam.name
877
- })
878
- ]
879
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
880
- className: "mt-2.5 flex flex-wrap items-center gap-x-2.5 gap-y-1 text-meta text-secondary",
881
- children: [
882
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
883
- className: "font-mono text-primary",
884
- children: scheduleText
885
- }),
886
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
887
- className: "text-wire",
888
- children: "·"
889
- }),
890
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: ["next ", fmt(summary.nextRun)] }),
891
- summary.nextRun && summary.enabled && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
892
- className: "text-disabled",
893
- children: [
894
- "(",
895
- until(summary.nextRun),
896
- ")"
897
- ]
898
- }),
899
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
900
- className: "text-wire",
901
- children: "·"
902
- }),
903
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
904
- className: "inline-flex items-center gap-1.5",
905
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `size-1.5 rounded-full ${online ? "bg-rubik-green" : asleep ? "bg-rubik-yellow" : "bg-disabled"}` }), detail.machine.name || "machine"]
906
- })
907
- ]
908
- })]
909
- })
860
+ className: "rounded-card border border-hairline bg-surface px-[26px] pb-5 pt-[22px] shadow-card",
861
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoopOverview, {
862
+ loop: summary,
863
+ runs: overviewRuns,
864
+ onLoadMore: loadMore,
865
+ onPickRun: (run) => navigate({
866
+ to: "/loops/$loopId/runs/$runId",
867
+ params: {
868
+ loopId: id,
869
+ runId: run.id
870
+ }
871
+ }),
872
+ extraPill: crossTeam ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Pill, {
873
+ tone: "outline",
874
+ children: crossTeam.name
875
+ }) : void 0
910
876
  }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
911
877
  className: "mt-5 border-t border-hairline pt-4",
912
878
  children: [
@@ -1001,6 +967,27 @@ function LoopDetailView({ id }) {
1001
967
  ]
1002
968
  })]
1003
969
  }),
970
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
971
+ className: "mt-6 grid grid-cols-1 gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(300px,360px)]",
972
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoopFilesPanel, {
973
+ loopId: id,
974
+ configuredPaths: loop.artifacts,
975
+ running
976
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RunsSection, {
977
+ loopId: id,
978
+ summary,
979
+ runs,
980
+ older,
981
+ onPickRun: (run) => navigate({
982
+ to: "/loops/$loopId/runs/$runId",
983
+ params: {
984
+ loopId: id,
985
+ runId: run.id
986
+ }
987
+ }),
988
+ onMore: loadMore
989
+ })]
990
+ }),
1004
991
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", {
1005
992
  className: "mt-6 min-w-0 rounded-card border border-hairline bg-surface px-6 py-5 shadow-card",
1006
993
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", {
@@ -1013,7 +1000,7 @@ function LoopDetailView({ id }) {
1013
1000
  label: "Schedule",
1014
1001
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("code", {
1015
1002
  className: "break-all font-mono",
1016
- children: scheduleText
1003
+ children: configurationScheduleText
1017
1004
  })
1018
1005
  }),
1019
1006
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Config, {
@@ -1081,37 +1068,6 @@ function LoopDetailView({ id }) {
1081
1068
  ]
1082
1069
  })]
1083
1070
  }),
1084
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
1085
- className: "mt-6 grid grid-cols-1 gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(300px,360px)]",
1086
- children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoopFilesPanel, {
1087
- loopId: id,
1088
- configuredPaths: loop.artifacts,
1089
- running
1090
- }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RunsSection, {
1091
- loopId: id,
1092
- summary,
1093
- runs,
1094
- older,
1095
- onPickRun: (run) => navigate({
1096
- to: "/loops/$loopId/runs/$runId",
1097
- params: {
1098
- loopId: id,
1099
- runId: run.id
1100
- }
1101
- }),
1102
- onMore: async () => {
1103
- const oldest = (older.length ? mergeRuns(summary.runs, older) : summary.runs)[0];
1104
- if (!oldest) return 0;
1105
- const more = await loadOlderRuns({ data: {
1106
- loopId: id,
1107
- beforeTs: oldest.ts,
1108
- limit: 16
1109
- } });
1110
- if (more.length) setOlder((current) => mergeRuns(current, more));
1111
- return more.length;
1112
- }
1113
- })]
1114
- }),
1115
1071
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MachinesModal, {
1116
1072
  open: machinesOpen,
1117
1073
  onClose: () => setMachinesOpen(false)
@@ -1,7 +1,7 @@
1
1
  import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
2
- import { i as authClient, u as getAuthState } from "./SocialLinks-Cm4H8pUJ.mjs";
3
- //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-CduETLqH.js
4
- var $$splitComponentImporter = () => import("./loops._loopId_.runs._runId-BEJI6iK5.mjs");
2
+ import { i as authClient, u as getAuthState } from "./SocialLinks-Bt7huqfS.mjs";
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-B4jXeonc.js
4
+ var $$splitComponentImporter = () => import("./loops._loopId_.runs._runId-BVQKe8xT.mjs");
5
5
  /**
6
6
  * Run detail PAGE — `/loops/$loopId/runs/$runId`. A standalone page (the trailing
7
7
  * `_` on the `$loopId` segment opts it out of the loop page's component so the run
@@ -1,12 +1,12 @@
1
1
  import { o as __toESM } from "../_runtime.mjs";
2
2
  import { g as require_react, h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
3
- import { C as runPulseStyle, _ as humanBytes, a as btn, g as fnum, h as fmt, i as StatusPill, m as dur, n as Loading, o as btnDanger, r as Pill, w as sectionHeadCls } from "./ui-D5KWstlb.mjs";
4
- import { r as LoadErrorCard } from "./actionUi-DJBWuNwr.mjs";
3
+ import { S as runPulseStyle, a as btn, g as humanBytes, h as fnum, i as StatusPill, m as fmt, n as Loading, o as btnDanger, p as dur, r as Pill, w as sectionHeadCls } from "./ui-dMEI4sHj.mjs";
4
+ import { r as LoadErrorCard } from "./actionUi-DD7Cd7Le.mjs";
5
5
  import { u as Link } from "../_libs/@tanstack/react-router+[...].mjs";
6
- import { E as useSession, T as stopRun, _ as loadOlderRuns, m as getRunDiff, p as getLoopDetail } from "./SocialLinks-Cm4H8pUJ.mjs";
7
- import { t as SignIn } from "./SignIn-DEGrvJvb.mjs";
8
- import { t as Route } from "./loops._loopId_.runs._runId-CduETLqH.mjs";
9
- //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-BEJI6iK5.js
6
+ import { E as useSession, T as stopRun, _ as loadOlderRuns, m as getRunDiff, p as getLoopDetail } from "./SocialLinks-Bt7huqfS.mjs";
7
+ import { t as SignIn } from "./SignIn-ffgDY0yf.mjs";
8
+ import { t as Route } from "./loops._loopId_.runs._runId-B4jXeonc.mjs";
9
+ //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-BVQKe8xT.js
10
10
  var import_react = /* @__PURE__ */ __toESM(require_react());
11
11
  var import_jsx_runtime = require_jsx_runtime();
12
12
  /**
@@ -2,14 +2,14 @@ import { j as sql } from "../_libs/drizzle-orm+postgres.mjs";
2
2
  import { Dt as readByteBody, Ot as readJsonBody, Qt as validPollWireId, Xt as validOptionalPollString, Zt as validPollCurrentRun, d as POLL_HTTP_BODY_FIELDS, j as ensureServer, l as MACHINE_BODY_CAP } from "./boot-sNlIkoLe.mjs";
3
3
  import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
4
4
  import { c as createFileRoute, i as HeadContent, l as createRootRoute, o as createRouter, r as Scripts } from "../_libs/@tanstack/react-router+[...].mjs";
5
- import { t as Route$12 } from "./invite._token-l1SjouDz.mjs";
6
- import { r as imageMime, t as Route$13 } from "./artifactKind-FBYbgSuf.mjs";
7
- import { t as Route$14 } from "./loops._loopId_.runs._runId-CduETLqH.mjs";
8
- import { t as Route$15 } from "./routes-BulNEUEE.mjs";
9
- import { t as Route$16 } from "./t._teamId-1CreIlPV.mjs";
10
- //#region node_modules/.nitro/vite/services/ssr/assets/router-CXyrnvx-.js
5
+ import { t as Route$12 } from "./invite._token-CHR5K84a.mjs";
6
+ import { r as imageMime, t as Route$13 } from "./artifactKind-CwQ_Ddj6.mjs";
7
+ import { t as Route$14 } from "./loops._loopId_.runs._runId-B4jXeonc.mjs";
8
+ import { t as Route$15 } from "./routes-DqIGr7p0.mjs";
9
+ import { t as Route$16 } from "./t._teamId-xFPYdSPu.mjs";
10
+ //#region node_modules/.nitro/vite/services/ssr/assets/router-DyhWcIzt.js
11
11
  var import_jsx_runtime = require_jsx_runtime();
12
- var app_default = "/assets/app-CaZpuwOS.css";
12
+ var app_default = "/assets/app-CuZ0I3Mb.css";
13
13
  var Route$11 = createRootRoute({
14
14
  head: () => ({
15
15
  meta: [
@@ -429,7 +429,7 @@ var Route = createFileRoute("/api/artifact/$loopId/$")({ server: { handlers: { G
429
429
  if (!loop) return Response.json({ error: "not found" }, { status: 404 });
430
430
  const { requestScope, canAccessLoop } = await import("./auth-C0zoZCGe.mjs");
431
431
  if (!await canAccessLoop(loop.teamId, await requestScope())) return Response.json({ error: "not found" }, { status: 404 });
432
- const { readLoopArtifactBytes } = await import("./artifactFiles-DtpRidFZ.mjs");
432
+ const { readLoopArtifactBytes } = await import("./artifactFiles-DHBXTtZn.mjs");
433
433
  const r = await readLoopArtifactBytes(loopId, relPath);
434
434
  if (r.status !== 200 || !r.bytes) return Response.json({ error: "not found" }, { status: r.status });
435
435
  const filename = (r.filename || "file").replace(/["\\\r\n]/g, "_");
@@ -1,7 +1,7 @@
1
1
  import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
2
- import { r as LoadErrorCard } from "./actionUi-DJBWuNwr.mjs";
2
+ import { r as LoadErrorCard } from "./actionUi-DD7Cd7Le.mjs";
3
3
  import { f as useRouter } from "../_libs/@tanstack/react-router+[...].mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/routes-DD94baie.js
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/routes-BWLQNDn5.js
5
5
  var import_jsx_runtime = require_jsx_runtime();
6
6
  /**
7
7
  * The home route. Under the auth gate it is now a THIN redirect to the explicit
@@ -1,9 +1,9 @@
1
1
  import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
2
- import { E as useSession } from "./SocialLinks-Cm4H8pUJ.mjs";
3
- import { t as SignIn } from "./SignIn-DEGrvJvb.mjs";
4
- import { t as DashboardView } from "./DashboardView-C2LdV6J0.mjs";
5
- import { t as Route } from "./routes-BulNEUEE.mjs";
6
- //#region node_modules/.nitro/vite/services/ssr/assets/routes-Wjexi35W.js
2
+ import { E as useSession } from "./SocialLinks-Bt7huqfS.mjs";
3
+ import { t as SignIn } from "./SignIn-ffgDY0yf.mjs";
4
+ import { t as DashboardView } from "./DashboardView-DqZLADCp.mjs";
5
+ import { t as Route } from "./routes-DqIGr7p0.mjs";
6
+ //#region node_modules/.nitro/vite/services/ssr/assets/routes-Cz49hLy6.js
7
7
  var import_jsx_runtime = require_jsx_runtime();
8
8
  /**
9
9
  * The home route. Under the auth gate it is now a THIN redirect to the explicit
@@ -1,9 +1,9 @@
1
1
  import { c as createFileRoute, p as redirect, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
2
- import { f as getDefaultTeam, i as authClient, u as getAuthState } from "./SocialLinks-Cm4H8pUJ.mjs";
3
- import { n as fetchLiveData } from "./DashboardView-C2LdV6J0.mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/routes-BulNEUEE.js
5
- var $$splitErrorComponentImporter = () => import("./routes-DD94baie.mjs");
6
- var $$splitComponentImporter = () => import("./routes-Wjexi35W.mjs");
2
+ import { f as getDefaultTeam, i as authClient, u as getAuthState } from "./SocialLinks-Bt7huqfS.mjs";
3
+ import { n as fetchLiveData } from "./DashboardView-DqZLADCp.mjs";
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/routes-DqIGr7p0.js
5
+ var $$splitErrorComponentImporter = () => import("./routes-BWLQNDn5.mjs");
6
+ var $$splitComponentImporter = () => import("./routes-Cz49hLy6.mjs");
7
7
  /**
8
8
  * The home route. Under the auth gate it is now a THIN redirect to the explicit
9
9
  * team URL (`/t/<lastUsed|personal>`) so the dashboard's team lives in the path
@@ -3418,7 +3418,7 @@ var defaultSerovalPlugins = [
3418
3418
  * the dev styles URL for route-scoped CSS collection.
3419
3419
  */
3420
3420
  async function getStartManifest(matchedRoutes) {
3421
- const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-3H7yBKLz.mjs");
3421
+ const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-UkU-Jq6w.mjs");
3422
3422
  const startManifest = tsrStartManifest();
3423
3423
  let routes = startManifest.routes;
3424
3424
  routes[rootRouteId];
@@ -3440,11 +3440,11 @@ async function getStartManifest(matchedRoutes) {
3440
3440
  var manifest = {
3441
3441
  "08565e35f6a3dd06ef25401de0343976c47f7ae319d3baed6320b56dd3718311": {
3442
3442
  functionName: "runLoop_createServerFn_handler",
3443
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3443
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3444
3444
  },
3445
3445
  "08c28b892712a1b491b120b74c7dcb81761988d31ccea60216d1807b73c1182c": {
3446
3446
  functionName: "getRunDiff_createServerFn_handler",
3447
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3447
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3448
3448
  },
3449
3449
  "0f279cfe81021a642289ce6e95622e7198aaeab4147880f85824a02ee9ebafcf": {
3450
3450
  functionName: "createTeam_createServerFn_handler",
@@ -3452,7 +3452,7 @@ var manifest = {
3452
3452
  },
3453
3453
  "0fe12e769203c42f432a927b9cbf13a967a0f9db567b61843598f734afb4f5c6": {
3454
3454
  functionName: "listMyTeams_createServerFn_handler",
3455
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3455
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3456
3456
  },
3457
3457
  "169566e7637a22599b4eb32ee3775574e99677406922bbef7482a102036c33dd": {
3458
3458
  functionName: "machineStatus_createServerFn_handler",
@@ -3460,7 +3460,7 @@ var manifest = {
3460
3460
  },
3461
3461
  "23e290b2b7483ceea6fe669024c35b12c2c4ddd76649f6fab21c958ceda02940": {
3462
3462
  functionName: "listLoops_createServerFn_handler",
3463
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3463
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3464
3464
  },
3465
3465
  "27d7eba0b6a2257949392fdd56057275a5c5366484ae01faf3b5897a225ecd83": {
3466
3466
  functionName: "finalizeMachine_createServerFn_handler",
@@ -3472,11 +3472,11 @@ var manifest = {
3472
3472
  },
3473
3473
  "4646f52fb09b83c9c9cef34836f3c9d03416423c879d9e5ceffcafd9a71ecba6": {
3474
3474
  functionName: "mintClaim_createServerFn_handler",
3475
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3475
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3476
3476
  },
3477
3477
  "5660ea82ea5ff2549e0ce2f8f070c54f3e9e24fee84d547601ef5d6ef49a4016": {
3478
3478
  functionName: "startLoop_createServerFn_handler",
3479
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3479
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3480
3480
  },
3481
3481
  "5721e01d84c20ffde19d2191648d76a7e5ede3bbb4f44efa59107a786947cf27": {
3482
3482
  functionName: "renameTeam_createServerFn_handler",
@@ -3484,11 +3484,11 @@ var manifest = {
3484
3484
  },
3485
3485
  "5e0d6b55f5629faac2f55a68661eeb82668b2be752192b16264ffb5cd1e6fabe": {
3486
3486
  functionName: "deleteLoop_createServerFn_handler",
3487
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3487
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3488
3488
  },
3489
3489
  "6850ba403da9dec5aff45794eb52636ca540ddec2d9e59f5c75ccbb852bfeacb": {
3490
3490
  functionName: "stopRun_createServerFn_handler",
3491
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3491
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3492
3492
  },
3493
3493
  "6f5fe23f6da1d4aecc198b6f71a041c0fe29cabb6ccad807bb3f16c23c5bd9cd": {
3494
3494
  functionName: "redeemTeamInvite_createServerFn_handler",
@@ -3496,11 +3496,11 @@ var manifest = {
3496
3496
  },
3497
3497
  "7cc22b3a0f6b1c4c73463c3401e981ad42caf6487b479b738ee5aeacb11710da": {
3498
3498
  functionName: "canViewTeam_createServerFn_handler",
3499
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3499
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3500
3500
  },
3501
3501
  "85fdf73d4fee43aed762f93c5d47d33200fbff39e2d082647dc921f610d32698": {
3502
3502
  functionName: "loadOlderRuns_createServerFn_handler",
3503
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3503
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3504
3504
  },
3505
3505
  "94d1108f156fa2273cb78140852e9c3e368de0b8321db0de932a16567671716f": {
3506
3506
  functionName: "listManagedTeams_createServerFn_handler",
@@ -3508,11 +3508,11 @@ var manifest = {
3508
3508
  },
3509
3509
  "95b7483b333d7649e70c848319417e83c2af6a0327bbcda2d0e331f626dffe05": {
3510
3510
  functionName: "pauseLoop_createServerFn_handler",
3511
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3511
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3512
3512
  },
3513
3513
  "9befe6b8d67ccbbd7aa9b538bde2a161a9894761c8936761a9503fda1a88c0fc": {
3514
3514
  functionName: "patchLoop_createServerFn_handler",
3515
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3515
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3516
3516
  },
3517
3517
  "a3326ed8ecd726fbcc28a439bf0012983cbe387d5062e0155096ee5a558e313b": {
3518
3518
  functionName: "removeTeamMember_createServerFn_handler",
@@ -3528,15 +3528,15 @@ var manifest = {
3528
3528
  },
3529
3529
  "b050455aacc84dd2a2c9a45517826ad10f91d8f1545e87cc7015784cc7116a97": {
3530
3530
  functionName: "getLoopDetail_createServerFn_handler",
3531
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3531
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3532
3532
  },
3533
3533
  "b18bbec3d06dfc77714e1e527dfb9172fd7575a64a6c0d6e73ba6dc658dccf0d": {
3534
3534
  functionName: "getArtifacts_createServerFn_handler",
3535
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3535
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3536
3536
  },
3537
3537
  "b8119d5fe6ca1ed9f609702aa2133b5ac5337030c0bdcf92dc7eba889d6bd2e6": {
3538
3538
  functionName: "getAuthState_createServerFn_handler",
3539
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3539
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3540
3540
  },
3541
3541
  "b92e9a08eda2d217bf4028f90dbc6bf7d7e8d7c148ebb8a8330286b5935a3fa1": {
3542
3542
  functionName: "revokeTeamInvite_createServerFn_handler",
@@ -3552,7 +3552,7 @@ var manifest = {
3552
3552
  },
3553
3553
  "cbb6a1b09b309459bbba3dc3851ae85fc468658b3cda77e22b6c6f3e28b65af4": {
3554
3554
  functionName: "getConfig_createServerFn_handler",
3555
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3555
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3556
3556
  },
3557
3557
  "d2372a81af17eb3a7e4c1407d6ef26a8a9522b66fd6a94858cb35c864b270d77": {
3558
3558
  functionName: "deleteTeam_createServerFn_handler",
@@ -3560,15 +3560,15 @@ var manifest = {
3560
3560
  },
3561
3561
  "dc0ec955d0d53a150a3e9a4673f98f3509cfb4bd411c512079ae4e94c561b70c": {
3562
3562
  functionName: "getDefaultTeam_createServerFn_handler",
3563
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3563
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3564
3564
  },
3565
3565
  "e233a461e4526dec3cc4cbaa891a7c3621d5967ce7f32b4fb17e9fb645857b9a": {
3566
3566
  functionName: "stopLoop_createServerFn_handler",
3567
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3567
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3568
3568
  },
3569
3569
  "ed10d5fe79208e5e0e4e18e4a17b18d7f7db4dd16204c00c3ac90c4644668841": {
3570
3570
  functionName: "getArtifact_createServerFn_handler",
3571
- importer: () => import("./loopApi-BKyFB4KM.mjs")
3571
+ importer: () => import("./loopApi-7YHXDl5g.mjs")
3572
3572
  },
3573
3573
  "ed679b4e1e05e903a5d4ba4a70d9b9d883991ab22ed59b4d2d69078941818415": {
3574
3574
  functionName: "createMachine_createServerFn_handler",
@@ -5412,7 +5412,7 @@ var getBaseManifest = getProdBaseManifest;
5412
5412
  var createEarlyHintsForRequest = createEarlyHintsCollector;
5413
5413
  async function loadEntries() {
5414
5414
  const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
5415
- import("./router-CXyrnvx-.mjs"),
5415
+ import("./router-DyhWcIzt.mjs"),
5416
5416
  import("./start-4ifArtKx.mjs"),
5417
5417
  import("./empty-plugin-adapters-DKUlnwwl.mjs")
5418
5418
  ]);
@@ -1,9 +1,9 @@
1
1
  import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
2
- import { E as useSession } from "./SocialLinks-Cm4H8pUJ.mjs";
3
- import { t as SignIn } from "./SignIn-DEGrvJvb.mjs";
4
- import { t as DashboardView } from "./DashboardView-C2LdV6J0.mjs";
5
- import { t as Route } from "./t._teamId-1CreIlPV.mjs";
6
- //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-COuMKQ4r.js
2
+ import { E as useSession } from "./SocialLinks-Bt7huqfS.mjs";
3
+ import { t as SignIn } from "./SignIn-ffgDY0yf.mjs";
4
+ import { t as DashboardView } from "./DashboardView-DqZLADCp.mjs";
5
+ import { t as Route } from "./t._teamId-xFPYdSPu.mjs";
6
+ //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-COoQSQtH.js
7
7
  var import_jsx_runtime = require_jsx_runtime();
8
8
  /**
9
9
  * The explicit-team dashboard (`/t/<teamId>`): the same dashboard scoped
@@ -1,7 +1,7 @@
1
1
  import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
2
- import { r as LoadErrorCard } from "./actionUi-DJBWuNwr.mjs";
2
+ import { r as LoadErrorCard } from "./actionUi-DD7Cd7Le.mjs";
3
3
  import { f as useRouter } from "../_libs/@tanstack/react-router+[...].mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-Bd6-zZsy.js
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-Dms0PTMu.js
5
5
  var import_jsx_runtime = require_jsx_runtime();
6
6
  /**
7
7
  * The explicit-team dashboard (`/t/<teamId>`): the same dashboard scoped
@@ -1,9 +1,9 @@
1
1
  import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
2
- import { a as canViewTeam, i as authClient, u as getAuthState } from "./SocialLinks-Cm4H8pUJ.mjs";
3
- import { n as fetchLiveData } from "./DashboardView-C2LdV6J0.mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-1CreIlPV.js
5
- var $$splitErrorComponentImporter = () => import("./t._teamId-Bd6-zZsy.mjs");
6
- var $$splitComponentImporter = () => import("./t._teamId-COuMKQ4r.mjs");
2
+ import { a as canViewTeam, i as authClient, u as getAuthState } from "./SocialLinks-Bt7huqfS.mjs";
3
+ import { n as fetchLiveData } from "./DashboardView-DqZLADCp.mjs";
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-xFPYdSPu.js
5
+ var $$splitErrorComponentImporter = () => import("./t._teamId-Dms0PTMu.mjs");
6
+ var $$splitComponentImporter = () => import("./t._teamId-COoQSQtH.mjs");
7
7
  /**
8
8
  * The explicit-team dashboard (`/t/<teamId>`): the same dashboard scoped
9
9
  * to the team in the PATH, so a view is bookmarkable and each browser tab keeps
@@ -1,6 +1,6 @@
1
1
  import { n as createServerFn } from "./ssr.mjs";
2
- import { o as createSsrRpc } from "./SocialLinks-Cm4H8pUJ.mjs";
3
- //#region node_modules/.nitro/vite/services/ssr/assets/teamFns-j2JKjorZ.js
2
+ import { o as createSsrRpc } from "./SocialLinks-Bt7huqfS.mjs";
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/teamFns-gilVwh7z.js
4
4
  /**
5
5
  * Team management server functions — the thin RPC surface over `teamAdmin`
6
6
  * (which holds all the rules + authorization). Every mutating fn takes an
@@ -1,6 +1,6 @@
1
1
  import { o as __toESM } from "../_runtime.mjs";
2
2
  import { g as require_react, h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
3
- //#region node_modules/.nitro/vite/services/ssr/assets/ui-D5KWstlb.js
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/ui-dMEI4sHj.js
4
4
  var import_react = /* @__PURE__ */ __toESM(require_react());
5
5
  var import_jsx_runtime = require_jsx_runtime();
6
6
  var fmt = (t) => t ? new Date(t).toLocaleString() : "—";
@@ -26,16 +26,16 @@ var DOW = [
26
26
  /**
27
27
  * Humanize common crontab patterns ("m h dom mon dow") into a readable phrase —
28
28
  * "every 3h", "every 15m", "hourly :07", "daily 07:00", "Mon 09:00". Anything
29
- * outside these common shapes falls back to the raw expression (shown verbatim,
30
- * with the literal cron always available on hover at the call site).
29
+ * outside these common shapes is labeled as a custom schedule; the literal cron
30
+ * remains available on hover and in Configuration.
31
31
  */
32
32
  function cronText(cron) {
33
33
  const p = (cron || "").trim().split(/\s+/);
34
- if (p.length !== 5) return cron;
34
+ if (p.length !== 5) return "custom schedule";
35
35
  const [mi, ho, dom, mon, dow] = p;
36
36
  const dateWild = dom === "*" && mon === "*";
37
37
  const everyH = ho.match(/^\*\/(\d+)$/);
38
- if (everyH && dateWild && dow === "*") return `every ${everyH[1]}h`;
38
+ if (everyH && mi === "0" && dateWild && dow === "*") return `every ${everyH[1]}h`;
39
39
  const everyM = mi.match(/^\*\/(\d+)$/);
40
40
  if (everyM && ho === "*" && dateWild && dow === "*") return `every ${everyM[1]}m`;
41
41
  if (ho === "*" && /^\d+$/.test(mi) && dateWild && dow === "*") return `hourly :${mi.padStart(2, "0")}`;
@@ -44,7 +44,11 @@ function cronText(cron) {
44
44
  if (dow === "*") return `daily ${hhmm}`;
45
45
  if (/^[0-6]$/.test(dow)) return `${DOW[Number(dow)]} ${hhmm}`;
46
46
  }
47
- return cron;
47
+ return "custom schedule";
48
+ }
49
+ /** Human-readable schedule summary shared by dashboard and detail headers. */
50
+ function scheduleText(schedule) {
51
+ return schedule.mode === "cron" ? `${cronText(schedule.cron)} · ${schedule.timezone} · overlap ${schedule.overlap}` : `continuous · ${schedule.delayMinutes}m after completion`;
48
52
  }
49
53
  /** Compact time-until-future: "due" / "in 50m" / "in 2h" / "in 3d". */
50
54
  var until = (t) => {
@@ -218,6 +222,7 @@ var PILL_TONES = {
218
222
  ink: "bg-raised text-primary",
219
223
  outline: "border border-hairline text-secondary",
220
224
  running: "bg-running-soft text-running",
225
+ attention: "bg-running-soft text-running",
221
226
  success: "bg-success-soft text-success",
222
227
  accent: "bg-accent-soft text-accent",
223
228
  warn: "bg-warn-soft text-warn"
@@ -254,4 +259,4 @@ function StatusPill({ run, colorText }) {
254
259
  });
255
260
  }
256
261
  //#endregion
257
- export { runPulseStyle as C, until as D, tsShort as E, useHydrated as O, runPulseAnim as S, selectCls as T, humanBytes as _, btn as a, lastRunOf as b, btnQuiet as c, dotColor as d, dotLabel as f, fnum as g, fmt as h, StatusPill as i, btnSm as l, dur as m, Loading as n, btnDanger as o, dotOpacity as p, Pill as r, btnPrimary as s, ErrorBanner as t, cronText as u, inputCls as v, sectionHeadCls as w, rel as x, labelCls as y };
262
+ export { scheduleText as C, until as D, tsShort as E, useHydrated as O, runPulseStyle as S, selectCls as T, inputCls as _, btn as a, rel as b, btnQuiet as c, dotLabel as d, dotOpacity as f, humanBytes as g, fnum as h, StatusPill as i, btnSm as l, fmt as m, Loading as n, btnDanger as o, dur as p, Pill as r, btnPrimary as s, ErrorBanner as t, dotColor as u, labelCls as v, sectionHeadCls as w, runPulseAnim as x, lastRunOf as y };