@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.
- package/.output/nitro.json +1 -1
- package/.output/public/assets/MachinesModal-Ci18Bitd.js +1 -0
- package/.output/public/assets/{SignIn-0Tjqs-Ma.js → SignIn-Czy-XJou.js} +1 -1
- package/.output/public/assets/{actionUi-DpwGIGpw.js → actionUi-DGJmNwsD.js} +1 -1
- package/.output/public/assets/app-CuZ0I3Mb.css +2 -0
- package/.output/public/assets/index-gJavUZIA.js +10 -0
- package/.output/public/assets/{invite._token-KMD2JAgE.js → invite._token-BQUbjPMM.js} +1 -1
- package/.output/public/assets/{invite._token-Btg_0aLp.js → invite._token-BUYUsIBj.js} +1 -1
- package/.output/public/assets/lifecycleUi-C0DaC6NM.js +1 -0
- package/.output/public/assets/loops._loopId-BkEPvT1q.js +67 -0
- package/.output/public/assets/{loops._loopId_.runs._runId-DRCgXaCq.js → loops._loopId_.runs._runId-SM4sD1xB.js} +2 -2
- package/.output/public/assets/{preload-helper-DsxECZIS.js → preload-helper-D1jXs0sN.js} +1 -1
- package/.output/public/assets/routes-4mIvs8LG.js +1 -0
- package/.output/public/assets/{routes-LDbnnQ3f.js → routes-B0svLfFq.js} +1 -1
- package/.output/public/assets/{t._teamId-DUena1pV.js → t._teamId-BLO_bz6b.js} +1 -1
- package/.output/public/assets/t._teamId-D-wGh4mo.js +1 -0
- package/.output/public/assets/{ui-Do4gqMyP.js → ui-DGHTxOhC.js} +1 -1
- package/.output/server/_ssr/{DashboardView-C2LdV6J0.mjs → DashboardView-DqZLADCp.mjs} +14 -93
- package/.output/server/_ssr/{MachinesModal-BjkcVjjx.mjs → MachinesModal-BsCfGuwp.mjs} +140 -5
- package/.output/server/_ssr/{SignIn-DEGrvJvb.mjs → SignIn-ffgDY0yf.mjs} +3 -3
- package/.output/server/_ssr/{SocialLinks-Cm4H8pUJ.mjs → SocialLinks-Bt7huqfS.mjs} +3 -2
- package/.output/server/_ssr/{actionUi-DJBWuNwr.mjs → actionUi-DD7Cd7Le.mjs} +2 -2
- package/.output/server/_ssr/{artifactFiles-DtpRidFZ.mjs → artifactFiles-DHBXTtZn.mjs} +2 -2
- package/.output/server/_ssr/{artifactKind-FBYbgSuf.mjs → artifactKind-CwQ_Ddj6.mjs} +3 -3
- package/.output/server/_ssr/{invite._token-CJ6-H-s3.mjs → invite._token-AvtAuDKv.mjs} +2 -2
- package/.output/server/_ssr/{invite._token-l1SjouDz.mjs → invite._token-CHR5K84a.mjs} +4 -4
- package/.output/server/_ssr/{invite._token-dLKDJKVs.mjs → invite._token-tw3mgvEo.mjs} +6 -6
- package/.output/server/_ssr/lifecycleUi-DOr6Af13.mjs +51 -0
- package/.output/server/_ssr/{loopApi-BKyFB4KM.mjs → loopApi-7YHXDl5g.mjs} +7 -7
- package/.output/server/_ssr/{loopProjection-B8a829ij.mjs → loopProjection-eZvVobW7.mjs} +29 -4
- package/.output/server/_ssr/{loops._loopId-DS16Phmq.mjs → loops._loopId-TEIcuqZU.mjs} +60 -104
- package/.output/server/_ssr/{loops._loopId_.runs._runId-CduETLqH.mjs → loops._loopId_.runs._runId-B4jXeonc.mjs} +3 -3
- package/.output/server/_ssr/{loops._loopId_.runs._runId-BEJI6iK5.mjs → loops._loopId_.runs._runId-BVQKe8xT.mjs} +6 -6
- package/.output/server/_ssr/{router-CXyrnvx-.mjs → router-DyhWcIzt.mjs} +8 -8
- package/.output/server/_ssr/{routes-DD94baie.mjs → routes-BWLQNDn5.mjs} +2 -2
- package/.output/server/_ssr/{routes-Wjexi35W.mjs → routes-Cz49hLy6.mjs} +5 -5
- package/.output/server/_ssr/{routes-BulNEUEE.mjs → routes-DqIGr7p0.mjs} +5 -5
- package/.output/server/_ssr/ssr.mjs +21 -21
- package/.output/server/_ssr/{t._teamId-COuMKQ4r.mjs → t._teamId-COoQSQtH.mjs} +5 -5
- package/.output/server/_ssr/{t._teamId-Bd6-zZsy.mjs → t._teamId-Dms0PTMu.mjs} +2 -2
- package/.output/server/_ssr/{t._teamId-1CreIlPV.mjs → t._teamId-xFPYdSPu.mjs} +5 -5
- package/.output/server/_ssr/{teamFns-j2JKjorZ.mjs → teamFns-gilVwh7z.mjs} +2 -2
- package/.output/server/_ssr/{ui-D5KWstlb.mjs → ui-dMEI4sHj.mjs} +12 -7
- package/.output/server/_tanstack-start-manifest_v-UkU-Jq6w.mjs +86 -0
- package/.output/server/index.mjs +86 -86
- package/package.json +1 -1
- package/.output/public/assets/MachinesModal-CSbnrUER.js +0 -1
- package/.output/public/assets/app-CaZpuwOS.css +0 -2
- package/.output/public/assets/index-CaS_SmDq.js +0 -10
- package/.output/public/assets/lifecycleUi-C7dwHtbw.js +0 -1
- package/.output/public/assets/loops._loopId-D5usF3DO.js +0 -67
- package/.output/public/assets/routes-CtFgwdgW.js +0 -1
- package/.output/public/assets/t._teamId-D41xcbsF.js +0 -1
- package/.output/server/_ssr/lifecycleUi-Dad3hvhm.mjs +0 -37
- 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 {
|
|
5
|
-
import { i as useFlash, n as FlashLine, r as LoadErrorCard, t as ConfirmBar } from "./actionUi-
|
|
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-
|
|
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-
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { n as artifactKind, t as Route } from "./artifactKind-
|
|
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-
|
|
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
|
|
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
|
|
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-
|
|
850
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
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:
|
|
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-
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-
|
|
4
|
-
var $$splitComponentImporter = () => import("./loops._loopId_.runs._runId-
|
|
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 {
|
|
4
|
-
import { r as LoadErrorCard } from "./actionUi-
|
|
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-
|
|
7
|
-
import { t as SignIn } from "./SignIn-
|
|
8
|
-
import { t as Route } from "./loops._loopId_.runs._runId-
|
|
9
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-
|
|
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-
|
|
6
|
-
import { r as imageMime, t as Route$13 } from "./artifactKind-
|
|
7
|
-
import { t as Route$14 } from "./loops._loopId_.runs._runId-
|
|
8
|
-
import { t as Route$15 } from "./routes-
|
|
9
|
-
import { t as Route$16 } from "./t._teamId-
|
|
10
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/router-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3
|
-
import { t as SignIn } from "./SignIn-
|
|
4
|
-
import { t as DashboardView } from "./DashboardView-
|
|
5
|
-
import { t as Route } from "./routes-
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
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-
|
|
3
|
-
import { n as fetchLiveData } from "./DashboardView-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
5
|
-
var $$splitErrorComponentImporter = () => import("./routes-
|
|
6
|
-
var $$splitComponentImporter = () => import("./routes-
|
|
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-
|
|
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-
|
|
3443
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3444
3444
|
},
|
|
3445
3445
|
"08c28b892712a1b491b120b74c7dcb81761988d31ccea60216d1807b73c1182c": {
|
|
3446
3446
|
functionName: "getRunDiff_createServerFn_handler",
|
|
3447
|
-
importer: () => import("./loopApi-
|
|
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-
|
|
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-
|
|
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-
|
|
3475
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3476
3476
|
},
|
|
3477
3477
|
"5660ea82ea5ff2549e0ce2f8f070c54f3e9e24fee84d547601ef5d6ef49a4016": {
|
|
3478
3478
|
functionName: "startLoop_createServerFn_handler",
|
|
3479
|
-
importer: () => import("./loopApi-
|
|
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-
|
|
3487
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3488
3488
|
},
|
|
3489
3489
|
"6850ba403da9dec5aff45794eb52636ca540ddec2d9e59f5c75ccbb852bfeacb": {
|
|
3490
3490
|
functionName: "stopRun_createServerFn_handler",
|
|
3491
|
-
importer: () => import("./loopApi-
|
|
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-
|
|
3499
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3500
3500
|
},
|
|
3501
3501
|
"85fdf73d4fee43aed762f93c5d47d33200fbff39e2d082647dc921f610d32698": {
|
|
3502
3502
|
functionName: "loadOlderRuns_createServerFn_handler",
|
|
3503
|
-
importer: () => import("./loopApi-
|
|
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-
|
|
3511
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3512
3512
|
},
|
|
3513
3513
|
"9befe6b8d67ccbbd7aa9b538bde2a161a9894761c8936761a9503fda1a88c0fc": {
|
|
3514
3514
|
functionName: "patchLoop_createServerFn_handler",
|
|
3515
|
-
importer: () => import("./loopApi-
|
|
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-
|
|
3531
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3532
3532
|
},
|
|
3533
3533
|
"b18bbec3d06dfc77714e1e527dfb9172fd7575a64a6c0d6e73ba6dc658dccf0d": {
|
|
3534
3534
|
functionName: "getArtifacts_createServerFn_handler",
|
|
3535
|
-
importer: () => import("./loopApi-
|
|
3535
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3536
3536
|
},
|
|
3537
3537
|
"b8119d5fe6ca1ed9f609702aa2133b5ac5337030c0bdcf92dc7eba889d6bd2e6": {
|
|
3538
3538
|
functionName: "getAuthState_createServerFn_handler",
|
|
3539
|
-
importer: () => import("./loopApi-
|
|
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-
|
|
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-
|
|
3563
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3564
3564
|
},
|
|
3565
3565
|
"e233a461e4526dec3cc4cbaa891a7c3621d5967ce7f32b4fb17e9fb645857b9a": {
|
|
3566
3566
|
functionName: "stopLoop_createServerFn_handler",
|
|
3567
|
-
importer: () => import("./loopApi-
|
|
3567
|
+
importer: () => import("./loopApi-7YHXDl5g.mjs")
|
|
3568
3568
|
},
|
|
3569
3569
|
"ed10d5fe79208e5e0e4e18e4a17b18d7f7db4dd16204c00c3ac90c4644668841": {
|
|
3570
3570
|
functionName: "getArtifact_createServerFn_handler",
|
|
3571
|
-
importer: () => import("./loopApi-
|
|
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-
|
|
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-
|
|
3
|
-
import { t as SignIn } from "./SignIn-
|
|
4
|
-
import { t as DashboardView } from "./DashboardView-
|
|
5
|
-
import { t as Route } from "./t._teamId-
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-
|
|
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-
|
|
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-
|
|
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-
|
|
3
|
-
import { n as fetchLiveData } from "./DashboardView-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-
|
|
5
|
-
var $$splitErrorComponentImporter = () => import("./t._teamId-
|
|
6
|
-
var $$splitComponentImporter = () => import("./t._teamId-
|
|
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-
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/teamFns-
|
|
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-
|
|
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
|
|
30
|
-
*
|
|
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
|
|
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
|
|
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 {
|
|
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 };
|