@kky42/pievo-server 2.4.13 → 2.4.14
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/{SignIn-CDCdDD1a.js → SignIn-CIFwnZtF.js} +1 -1
- package/.output/public/assets/{actionUi-D8m1FDHO.js → actionUi-5PtES4q0.js} +1 -1
- package/.output/public/assets/app-DvHMhs7S.css +2 -0
- package/.output/public/assets/index-CRX2pu0W.js +10 -0
- package/.output/public/assets/loops._loopId-BsuV-Rmf.js +67 -0
- package/.output/public/assets/{loops._loopId_.runs._runId-CksSrEY7.js → loops._loopId_.runs._runId-DpK_fzmZ.js} +2 -2
- package/.output/public/assets/{preload-helper-Zcmr31XG.js → preload-helper-sAZOZb3G.js} +2 -2
- package/.output/public/assets/{routes-79D939J4.js → routes-Dm_3J2aV.js} +1 -1
- package/.output/public/assets/{routes-BYgl3Tmv.js → routes-DxF_s3cD.js} +1 -1
- package/.output/server/_ssr/{MachinesModal-DBIP648Z.mjs → MachinesModal-BaEtzycr.mjs} +10 -4
- package/.output/server/_ssr/{SignIn-Bp3uWaCQ.mjs → SignIn-sHQaBQJC.mjs} +3 -3
- package/.output/server/_ssr/{actionUi-C_WswNb1.mjs → actionUi-5HOCZnom.mjs} +4 -4
- package/.output/server/_ssr/{artifactFiles-BvVmixrs.mjs → artifactFiles-DO43wwXA.mjs} +4 -3
- package/.output/server/_ssr/{artifactKind-DRCbYHZU.mjs → artifactKind-DwDr8IYc.mjs} +3 -3
- package/.output/server/_ssr/artifacts-Cd7Qx3Qp.mjs +2 -0
- package/.output/server/_ssr/{auth-BV0MxVdo.mjs → auth-0AamrwHo.mjs} +9 -9
- package/.output/server/_ssr/{auth-client-RTpMpT4L.mjs → auth-client-lSMb_Idt.mjs} +2 -2
- package/.output/server/_ssr/boot-C472kLwY.mjs +3947 -0
- package/.output/server/_ssr/{bun-sqlite-dialect-BW9W1_Ps-D9KUBJ-L.mjs → bun-sqlite-dialect-BW9W1_Ps-DLIXocA0.mjs} +2 -2
- package/.output/server/_ssr/{d1-sqlite-dialect-BLC8LXE6-CVHRzH1n.mjs → d1-sqlite-dialect-BLC8LXE6-BoFMIPr_.mjs} +2 -2
- package/.output/server/_ssr/db-BzvMQ2kx.mjs +2 -0
- package/.output/server/_ssr/{dist-D7UDVZ5G.mjs → dist-ClzqkwxD.mjs} +2 -2
- package/.output/server/_ssr/{factory-DYFx1fg-.mjs → factory-ixUjZqJn.mjs} +2 -2
- package/.output/server/_ssr/{kysely-adapter-CwdB7yBh.mjs → kysely-adapter-DkZbmKgV.mjs} +1 -1
- package/.output/server/_ssr/logger-DDjsYB2X.mjs +2 -0
- package/.output/server/_ssr/{loopApi-C4nN0msL.mjs → loopApi-DT751TJA.mjs} +11 -10
- package/.output/server/_ssr/{loopProjection-DMSNHux6.mjs → loopProjection-qaD2I48a.mjs} +5 -2
- package/.output/server/_ssr/loopTags-CXx5UdGf.mjs +3356 -0
- package/.output/server/_ssr/{loops._loopId-Q4pRYPip.mjs → loops._loopId-CXgw2Rz1.mjs} +132 -8
- package/.output/server/_ssr/{loops._loopId_.runs._runId-DNXVmCt5.mjs → loops._loopId_.runs._runId-Dk94Z0Jq.mjs} +3 -3
- package/.output/server/_ssr/{loops._loopId_.runs._runId-ty3AhkOi.mjs → loops._loopId_.runs._runId-SASSqOfy.mjs} +5 -5
- package/.output/server/_ssr/{machineFns-CkNms3zA.mjs → machineFns-BSrIgn3f.mjs} +4 -3
- package/.output/server/_ssr/{node-sqlite-dialect-B_g92oFK.mjs → node-sqlite-dialect-BbUqnnYv.mjs} +2 -2
- package/.output/server/_ssr/{router-DCNZ2xLm.mjs → router-BlLlhfJe.mjs} +20 -20
- package/.output/server/_ssr/{routes-BaanDO41.mjs → routes-Cr-9yDEH.mjs} +160 -36
- package/.output/server/_ssr/{routes-B3fulW5I.mjs → routes-DRBS4Zi4.mjs} +2 -2
- package/.output/server/_ssr/{routes-8JSF7bX_.mjs → routes-DTBltabU.mjs} +5 -5
- package/.output/server/_ssr/ssr.mjs +24 -24
- package/.output/server/_ssr/store-vDZ9INSa.mjs +2 -0
- package/.output/server/_ssr/tokens-BHiCElYD.mjs +2 -0
- package/.output/server/{_tanstack-start-manifest_v-DkmxsHDK.mjs → _tanstack-start-manifest_v-DxLIQ0cc.mjs} +10 -10
- package/.output/server/drizzle/0003_add_loop_tags.sql +5 -0
- package/.output/server/drizzle/meta/_journal.json +7 -0
- package/.output/server/index.mjs +48 -48
- package/drizzle/0003_add_loop_tags.sql +5 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +1 -1
- package/.output/public/assets/app-PPhgN9iN.css +0 -2
- package/.output/public/assets/index-c0XPWXuz.js +0 -10
- package/.output/public/assets/loops._loopId-D7i_BGiE.js +0 -67
- package/.output/server/_ssr/artifacts-CzDJLaa6.mjs +0 -2
- package/.output/server/_ssr/boot-CsLXrLEa.mjs +0 -2
- package/.output/server/_ssr/boot-U-CFI65B.mjs +0 -7193
- package/.output/server/_ssr/db-BTX-xORB.mjs +0 -2
- package/.output/server/_ssr/logger-CwiKSMp6.mjs +0 -2
- package/.output/server/_ssr/runDiff-D7CxAgYL.mjs +0 -2
- package/.output/server/_ssr/store-DSNbXxqz.mjs +0 -2
- package/.output/server/_ssr/tokens-DzUv7CCp.mjs +0 -2
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { o as __toESM } from "../_runtime.mjs";
|
|
2
2
|
import { g as require_react, h as require_jsx_runtime, s as TooltipProvider } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
3
|
import { c as createFileRoute, d as useNavigate, f as useRouter, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
4
|
-
import { O as useSession, _ as listLoops, a as PievoLogo, f as getAuthState, i as OpenModeWarning, n as GITHUB_URL, p as getConfig, r as GitHubIcon, v as loadOlderRuns, w as signOut, y as mintConnectKey } from "./auth-client-
|
|
5
|
-
import { f as btnSm } from "./actionUi-
|
|
6
|
-
import { c as mergeRuns, i as ModalHead, n as MachinesModal, o as daemonConnectCommand, r as Modal, s as listMachines, t as LoopOverview } from "./MachinesModal-
|
|
7
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
4
|
+
import { O as useSession, _ as listLoops, a as PievoLogo, f as getAuthState, i as OpenModeWarning, n as GITHUB_URL, p as getConfig, r as GitHubIcon, v as loadOlderRuns, w as signOut, y as mintConnectKey } from "./auth-client-lSMb_Idt.mjs";
|
|
5
|
+
import { f as btnSm, y as focusRing } from "./actionUi-5HOCZnom.mjs";
|
|
6
|
+
import { c as mergeRuns, i as ModalHead, n as MachinesModal, o as daemonConnectCommand, r as Modal, s as listMachines, t as LoopOverview } from "./MachinesModal-BaEtzycr.mjs";
|
|
7
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/routes-Cr-9yDEH.js
|
|
8
8
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
9
9
|
var import_jsx_runtime = require_jsx_runtime();
|
|
10
10
|
function LoopCard({ loop, onOpen, onPickRun }) {
|
|
@@ -37,6 +37,43 @@ function LoopCard({ loop, onOpen, onPickRun }) {
|
|
|
37
37
|
})
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
+
function LoopFilterBar({ options, selectedKey, onSelect }) {
|
|
41
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
42
|
+
className: "scrollbar-none -mx-1 overflow-x-auto px-1 pb-1",
|
|
43
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
44
|
+
role: "group",
|
|
45
|
+
"aria-label": "Loop filters",
|
|
46
|
+
className: "flex min-w-max items-center gap-1.5",
|
|
47
|
+
children: options.map((option) => {
|
|
48
|
+
const selected = option.key === selectedKey;
|
|
49
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", {
|
|
50
|
+
type: "button",
|
|
51
|
+
"aria-pressed": selected,
|
|
52
|
+
title: option.filter.kind === "tag" ? option.label : void 0,
|
|
53
|
+
onClick: (event) => {
|
|
54
|
+
event.currentTarget.scrollIntoView?.({
|
|
55
|
+
block: "nearest",
|
|
56
|
+
inline: "nearest"
|
|
57
|
+
});
|
|
58
|
+
onSelect(option.filter);
|
|
59
|
+
},
|
|
60
|
+
className: `inline-flex h-8 cursor-pointer items-center gap-1.5 rounded-full border px-3 text-body font-medium transition-colors ${focusRing} ${selected ? "border-display bg-display text-paper" : "border-hairline bg-surface text-secondary hover:border-wire hover:bg-raised hover:text-primary"}`,
|
|
61
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
62
|
+
className: option.filter.kind === "tag" ? "max-w-44 truncate" : "",
|
|
63
|
+
children: option.label
|
|
64
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
65
|
+
className: selected ? "text-paper/70" : "text-disabled",
|
|
66
|
+
children: [
|
|
67
|
+
"(",
|
|
68
|
+
option.count,
|
|
69
|
+
")"
|
|
70
|
+
]
|
|
71
|
+
})]
|
|
72
|
+
}, option.key);
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
40
77
|
function ComposeModal({ open, onClose }) {
|
|
41
78
|
const [token, setToken] = (0, import_react.useState)(null);
|
|
42
79
|
const [config, setConfig] = (0, import_react.useState)(null);
|
|
@@ -169,6 +206,60 @@ function Step({ number, title, continued = false, children }) {
|
|
|
169
206
|
})]
|
|
170
207
|
});
|
|
171
208
|
}
|
|
209
|
+
function loopFilterKey(filter) {
|
|
210
|
+
return filter.kind === "tag" ? `tag:${filter.tag}` : filter.kind;
|
|
211
|
+
}
|
|
212
|
+
function loopFilterOptions(loops) {
|
|
213
|
+
const active = loops.filter((loop) => loop.enabled && !loop.deleteRequestedAt).length;
|
|
214
|
+
const paused = loops.filter((loop) => !loop.enabled && !loop.deleteRequestedAt).length;
|
|
215
|
+
const blocked = loops.filter((loop) => !loop.enabled && !loop.deleteRequestedAt && loop.pauseCause?.kind === "blocked").length;
|
|
216
|
+
const tagCounts = /* @__PURE__ */ new Map();
|
|
217
|
+
for (const loop of loops) for (const tag of new Set(loop.tags)) tagCounts.set(tag, (tagCounts.get(tag) ?? 0) + 1);
|
|
218
|
+
return [
|
|
219
|
+
{
|
|
220
|
+
key: "all",
|
|
221
|
+
label: "All Loops",
|
|
222
|
+
count: loops.length,
|
|
223
|
+
filter: { kind: "all" }
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
key: "active",
|
|
227
|
+
label: "Active",
|
|
228
|
+
count: active,
|
|
229
|
+
filter: { kind: "active" }
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
key: "paused",
|
|
233
|
+
label: "Paused",
|
|
234
|
+
count: paused,
|
|
235
|
+
filter: { kind: "paused" }
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
key: "blocked",
|
|
239
|
+
label: "Blocked",
|
|
240
|
+
count: blocked,
|
|
241
|
+
filter: { kind: "blocked" }
|
|
242
|
+
},
|
|
243
|
+
...[...tagCounts].sort(([a], [b]) => a.localeCompare(b, "en-US")).map(([tag, count]) => ({
|
|
244
|
+
key: `tag:${tag}`,
|
|
245
|
+
label: tag,
|
|
246
|
+
count,
|
|
247
|
+
filter: {
|
|
248
|
+
kind: "tag",
|
|
249
|
+
tag
|
|
250
|
+
}
|
|
251
|
+
}))
|
|
252
|
+
];
|
|
253
|
+
}
|
|
254
|
+
function filterLoops(loops, filter) {
|
|
255
|
+
switch (filter.kind) {
|
|
256
|
+
case "all": return loops;
|
|
257
|
+
case "active": return loops.filter((loop) => loop.enabled && !loop.deleteRequestedAt);
|
|
258
|
+
case "paused": return loops.filter((loop) => !loop.enabled && !loop.deleteRequestedAt);
|
|
259
|
+
case "blocked": return loops.filter((loop) => !loop.enabled && !loop.deleteRequestedAt && loop.pauseCause?.kind === "blocked");
|
|
260
|
+
case "tag": return loops.filter((loop) => loop.tags.includes(filter.tag));
|
|
261
|
+
}
|
|
262
|
+
}
|
|
172
263
|
/** Loops and machines change between polls. Authorization is derived server-side
|
|
173
264
|
* from the current session; clients do not send tenant identifiers. */
|
|
174
265
|
async function fetchLiveData() {
|
|
@@ -188,6 +279,7 @@ function DashboardView({ initial, mode }) {
|
|
|
188
279
|
const [signingOut, setSigningOut] = (0, import_react.useState)(false);
|
|
189
280
|
const [composeOpen, setComposeOpen] = (0, import_react.useState)(false);
|
|
190
281
|
const [machinesOpen, setMachinesOpen] = (0, import_react.useState)(false);
|
|
282
|
+
const [filter, setFilter] = (0, import_react.useState)({ kind: "all" });
|
|
191
283
|
async function logout() {
|
|
192
284
|
setSigningOut(true);
|
|
193
285
|
try {
|
|
@@ -212,14 +304,16 @@ function DashboardView({ initial, mode }) {
|
|
|
212
304
|
}, anyRunning ? 3e3 : 1e4);
|
|
213
305
|
return () => clearInterval(t);
|
|
214
306
|
}, [refetch, anyRunning]);
|
|
215
|
-
const
|
|
216
|
-
const
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
307
|
+
const filterOptions = (0, import_react.useMemo)(() => loopFilterOptions(loops), [loops]);
|
|
308
|
+
const selectedFilterKey = loopFilterKey(filter);
|
|
309
|
+
const filteredLoops = (0, import_react.useMemo)(() => filterLoops(loops, filter), [loops, filter]);
|
|
310
|
+
(0, import_react.useEffect)(() => {
|
|
311
|
+
if (filter.kind === "tag" && !filterOptions.some((option) => option.key === selectedFilterKey)) setFilter({ kind: "all" });
|
|
312
|
+
}, [
|
|
313
|
+
filter,
|
|
314
|
+
filterOptions,
|
|
315
|
+
selectedFilterKey
|
|
316
|
+
]);
|
|
223
317
|
const cardProps = () => ({
|
|
224
318
|
onOpen: (id) => void navigate({
|
|
225
319
|
to: "/loops/$loopId",
|
|
@@ -239,11 +333,14 @@ function DashboardView({ initial, mode }) {
|
|
|
239
333
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("header", {
|
|
240
334
|
className: "glass glass-bar sticky top-0 z-50",
|
|
241
335
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
242
|
-
className: "mx-auto flex max-w-[1180px] items-center gap-
|
|
336
|
+
className: "mx-auto flex max-w-[1180px] items-center gap-2 px-4 py-2.5 sm:gap-3 sm:px-8",
|
|
243
337
|
children: [
|
|
244
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(PievoLogo, { size: 30 }),
|
|
245
338
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
246
|
-
className: "
|
|
339
|
+
className: "shrink-0",
|
|
340
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PievoLogo, { size: 30 })
|
|
341
|
+
}),
|
|
342
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
343
|
+
className: `shrink-0 text-[18px] font-semibold tracking-[-0.015em] text-display ${mode === "auth" ? "hidden sm:inline" : ""}`,
|
|
247
344
|
children: "Pievo"
|
|
248
345
|
}),
|
|
249
346
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1" }),
|
|
@@ -253,13 +350,13 @@ function DashboardView({ initial, mode }) {
|
|
|
253
350
|
rel: "noreferrer",
|
|
254
351
|
"aria-label": "GitHub repository",
|
|
255
352
|
title: "GitHub",
|
|
256
|
-
className: headerIconBtn
|
|
353
|
+
className: `${headerIconBtn} hidden sm:inline-flex`,
|
|
257
354
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GitHubIcon, { className: "size-[17px]" })
|
|
258
355
|
}),
|
|
259
356
|
mode === "auth" && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
260
|
-
className: "flex items-center gap-2",
|
|
357
|
+
className: "flex shrink-0 items-center gap-2",
|
|
261
358
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
262
|
-
className: "max-w-48 truncate text-label text-secondary",
|
|
359
|
+
className: "hidden max-w-48 truncate text-label text-secondary md:inline",
|
|
263
360
|
title: session?.user.email ?? session?.user.name ?? "Account",
|
|
264
361
|
children: session?.user.email ?? session?.user.name ?? "Account"
|
|
265
362
|
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
@@ -271,13 +368,23 @@ function DashboardView({ initial, mode }) {
|
|
|
271
368
|
}),
|
|
272
369
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", {
|
|
273
370
|
onClick: () => setMachinesOpen(true),
|
|
274
|
-
|
|
371
|
+
"aria-label": `${online} ${online === 1 ? "machine" : "machines"} online`,
|
|
372
|
+
className: `${headerBtn} gap-1.5 px-2 sm:px-3`,
|
|
275
373
|
children: [
|
|
276
374
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: `inline-block size-1.5 rounded-full ${online ? "bg-rubik-green" : "bg-disabled"}` }),
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
375
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
376
|
+
className: "sm:hidden",
|
|
377
|
+
children: online
|
|
378
|
+
}),
|
|
379
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
380
|
+
className: "hidden sm:inline",
|
|
381
|
+
children: [
|
|
382
|
+
online,
|
|
383
|
+
" ",
|
|
384
|
+
online === 1 ? "machine" : "machines",
|
|
385
|
+
" online"
|
|
386
|
+
]
|
|
387
|
+
})
|
|
281
388
|
]
|
|
282
389
|
}),
|
|
283
390
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
@@ -310,25 +417,42 @@ function DashboardView({ initial, mode }) {
|
|
|
310
417
|
})]
|
|
311
418
|
}),
|
|
312
419
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
313
|
-
className: "mb-5 mt-12
|
|
314
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
420
|
+
className: "mb-5 mt-12",
|
|
421
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoopFilterBar, {
|
|
422
|
+
options: filterOptions,
|
|
423
|
+
selectedKey: selectedFilterKey,
|
|
424
|
+
onSelect: setFilter
|
|
425
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
426
|
+
className: "sr-only",
|
|
427
|
+
"aria-live": "polite",
|
|
428
|
+
children: [
|
|
429
|
+
"Showing ",
|
|
430
|
+
filteredLoops.length,
|
|
431
|
+
" loops"
|
|
432
|
+
]
|
|
320
433
|
})]
|
|
321
434
|
}),
|
|
322
|
-
|
|
435
|
+
filteredLoops.length ? filteredLoops.map((j) => /* @__PURE__ */ (0, import_react.createElement)(LoopCard, {
|
|
323
436
|
loop: j,
|
|
324
437
|
...cardProps(),
|
|
325
438
|
key: j.id
|
|
326
|
-
})) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
439
|
+
})) : loops.length ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
440
|
+
className: "py-16 text-center",
|
|
441
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
442
|
+
className: "text-[15px] text-secondary",
|
|
443
|
+
children: "No loops match this filter"
|
|
444
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
445
|
+
type: "button",
|
|
446
|
+
onClick: () => setFilter({ kind: "all" }),
|
|
447
|
+
className: "mt-2 text-body font-medium text-interactive hover:underline",
|
|
448
|
+
children: "Show all loops"
|
|
449
|
+
})]
|
|
450
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
327
451
|
className: "py-16 text-center",
|
|
328
452
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
329
453
|
className: "text-[15px] text-secondary",
|
|
330
454
|
children: "No loops yet"
|
|
331
|
-
}),
|
|
455
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
332
456
|
className: "mt-1.5 text-body text-disabled",
|
|
333
457
|
children: "Create a scheduled prompt for a connected machine."
|
|
334
458
|
})]
|
|
@@ -347,9 +471,9 @@ function DashboardView({ initial, mode }) {
|
|
|
347
471
|
});
|
|
348
472
|
}
|
|
349
473
|
var headerBtn = "inline-flex shrink-0 cursor-pointer items-center rounded-full px-3 py-1.5 text-meta font-medium text-secondary transition-colors hover:bg-raised hover:text-display";
|
|
350
|
-
var headerIconBtn = "
|
|
351
|
-
var $$splitErrorComponentImporter = () => import("./routes-
|
|
352
|
-
var $$splitComponentImporter = () => import("./routes-
|
|
474
|
+
var headerIconBtn = "shrink-0 cursor-pointer items-center rounded-full p-1.5 text-secondary transition-colors hover:bg-raised hover:text-display";
|
|
475
|
+
var $$splitErrorComponentImporter = () => import("./routes-DRBS4Zi4.mjs");
|
|
476
|
+
var $$splitComponentImporter = () => import("./routes-DTBltabU.mjs");
|
|
353
477
|
/** The dashboard route. Auth mode shows sign-in before loading owner-scoped data;
|
|
354
478
|
* open mode renders the server's shared administrative workspace. */
|
|
355
479
|
var Route = createFileRoute("/")({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
2
|
import { f as useRouter } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
3
|
-
import { i as LoadErrorCard } from "./actionUi-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
3
|
+
import { i as LoadErrorCard } from "./actionUi-5HOCZnom.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/routes-DRBS4Zi4.js
|
|
5
5
|
var import_jsx_runtime = require_jsx_runtime();
|
|
6
6
|
/** The dashboard route. Auth mode shows sign-in before loading owner-scoped data;
|
|
7
7
|
* open mode renders the server's shared administrative workspace. */
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
|
-
import { O as useSession } from "./auth-client-
|
|
3
|
-
import { a as Loading } from "./actionUi-
|
|
4
|
-
import { t as SignIn } from "./SignIn-
|
|
5
|
-
import { n as Route, t as DashboardView } from "./routes-
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/routes-
|
|
2
|
+
import { O as useSession } from "./auth-client-lSMb_Idt.mjs";
|
|
3
|
+
import { a as Loading } from "./actionUi-5HOCZnom.mjs";
|
|
4
|
+
import { t as SignIn } from "./SignIn-sHQaBQJC.mjs";
|
|
5
|
+
import { n as Route, t as DashboardView } from "./routes-Cr-9yDEH.mjs";
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/routes-DTBltabU.js
|
|
7
7
|
var import_jsx_runtime = require_jsx_runtime();
|
|
8
8
|
/** The dashboard route. Auth mode shows sign-in before loading owner-scoped data;
|
|
9
9
|
* open mode renders the server's shared administrative workspace. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as __exportAll } from "../_runtime.mjs";
|
|
2
|
-
import { i as __exportAll$1 } from "./factory-
|
|
2
|
+
import { i as __exportAll$1 } from "./factory-ixUjZqJn.mjs";
|
|
3
3
|
import { g as require_react, h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
4
4
|
import { a as RouterProvider, n as defineHandlerCallback, t as renderRouterToStream } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
5
5
|
import { PassThrough, Readable } from "node:stream";
|
|
@@ -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-DxLIQ0cc.mjs");
|
|
3422
3422
|
const startManifest = tsrStartManifest();
|
|
3423
3423
|
let routes = startManifest.routes;
|
|
3424
3424
|
routes[rootRouteId];
|
|
@@ -3440,87 +3440,87 @@ 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-DT751TJA.mjs")
|
|
3444
3444
|
},
|
|
3445
3445
|
"08c28b892712a1b491b120b74c7dcb81761988d31ccea60216d1807b73c1182c": {
|
|
3446
3446
|
functionName: "getRunDiff_createServerFn_handler",
|
|
3447
|
-
importer: () => import("./loopApi-
|
|
3447
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3448
3448
|
},
|
|
3449
3449
|
"169566e7637a22599b4eb32ee3775574e99677406922bbef7482a102036c33dd": {
|
|
3450
3450
|
functionName: "machineStatus_createServerFn_handler",
|
|
3451
|
-
importer: () => import("./machineFns-
|
|
3451
|
+
importer: () => import("./machineFns-BSrIgn3f.mjs")
|
|
3452
3452
|
},
|
|
3453
3453
|
"23e290b2b7483ceea6fe669024c35b12c2c4ddd76649f6fab21c958ceda02940": {
|
|
3454
3454
|
functionName: "listLoops_createServerFn_handler",
|
|
3455
|
-
importer: () => import("./loopApi-
|
|
3455
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3456
3456
|
},
|
|
3457
3457
|
"27d7eba0b6a2257949392fdd56057275a5c5366484ae01faf3b5897a225ecd83": {
|
|
3458
3458
|
functionName: "finalizeMachine_createServerFn_handler",
|
|
3459
|
-
importer: () => import("./machineFns-
|
|
3459
|
+
importer: () => import("./machineFns-BSrIgn3f.mjs")
|
|
3460
3460
|
},
|
|
3461
3461
|
"5660ea82ea5ff2549e0ce2f8f070c54f3e9e24fee84d547601ef5d6ef49a4016": {
|
|
3462
3462
|
functionName: "startLoop_createServerFn_handler",
|
|
3463
|
-
importer: () => import("./loopApi-
|
|
3463
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3464
3464
|
},
|
|
3465
3465
|
"5e0d6b55f5629faac2f55a68661eeb82668b2be752192b16264ffb5cd1e6fabe": {
|
|
3466
3466
|
functionName: "deleteLoop_createServerFn_handler",
|
|
3467
|
-
importer: () => import("./loopApi-
|
|
3467
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3468
3468
|
},
|
|
3469
3469
|
"6850ba403da9dec5aff45794eb52636ca540ddec2d9e59f5c75ccbb852bfeacb": {
|
|
3470
3470
|
functionName: "stopRun_createServerFn_handler",
|
|
3471
|
-
importer: () => import("./loopApi-
|
|
3471
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3472
3472
|
},
|
|
3473
3473
|
"85fdf73d4fee43aed762f93c5d47d33200fbff39e2d082647dc921f610d32698": {
|
|
3474
3474
|
functionName: "loadOlderRuns_createServerFn_handler",
|
|
3475
|
-
importer: () => import("./loopApi-
|
|
3475
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3476
3476
|
},
|
|
3477
3477
|
"95b7483b333d7649e70c848319417e83c2af6a0327bbcda2d0e331f626dffe05": {
|
|
3478
3478
|
functionName: "pauseLoop_createServerFn_handler",
|
|
3479
|
-
importer: () => import("./loopApi-
|
|
3479
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3480
3480
|
},
|
|
3481
3481
|
"9befe6b8d67ccbbd7aa9b538bde2a161a9894761c8936761a9503fda1a88c0fc": {
|
|
3482
3482
|
functionName: "patchLoop_createServerFn_handler",
|
|
3483
|
-
importer: () => import("./loopApi-
|
|
3483
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3484
3484
|
},
|
|
3485
3485
|
"a6384dc7154d9930422d29396f5de64b3ac69c62ad3824bc4a22d745fc07b293": {
|
|
3486
3486
|
functionName: "deleteMachine_createServerFn_handler",
|
|
3487
|
-
importer: () => import("./machineFns-
|
|
3487
|
+
importer: () => import("./machineFns-BSrIgn3f.mjs")
|
|
3488
3488
|
},
|
|
3489
3489
|
"aa46310016bb8a58b273a648ffd498c87f1f450d12827e30110a3b83ba6a27d9": {
|
|
3490
3490
|
functionName: "listMachines_createServerFn_handler",
|
|
3491
|
-
importer: () => import("./machineFns-
|
|
3491
|
+
importer: () => import("./machineFns-BSrIgn3f.mjs")
|
|
3492
3492
|
},
|
|
3493
3493
|
"b050455aacc84dd2a2c9a45517826ad10f91d8f1545e87cc7015784cc7116a97": {
|
|
3494
3494
|
functionName: "getLoopDetail_createServerFn_handler",
|
|
3495
|
-
importer: () => import("./loopApi-
|
|
3495
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3496
3496
|
},
|
|
3497
3497
|
"b18bbec3d06dfc77714e1e527dfb9172fd7575a64a6c0d6e73ba6dc658dccf0d": {
|
|
3498
3498
|
functionName: "getArtifacts_createServerFn_handler",
|
|
3499
|
-
importer: () => import("./loopApi-
|
|
3499
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3500
3500
|
},
|
|
3501
3501
|
"b8119d5fe6ca1ed9f609702aa2133b5ac5337030c0bdcf92dc7eba889d6bd2e6": {
|
|
3502
3502
|
functionName: "getAuthState_createServerFn_handler",
|
|
3503
|
-
importer: () => import("./loopApi-
|
|
3503
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3504
3504
|
},
|
|
3505
3505
|
"cbb6a1b09b309459bbba3dc3851ae85fc468658b3cda77e22b6c6f3e28b65af4": {
|
|
3506
3506
|
functionName: "getConfig_createServerFn_handler",
|
|
3507
|
-
importer: () => import("./loopApi-
|
|
3507
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3508
3508
|
},
|
|
3509
3509
|
"ce43dcb9366e7c8f7338a6ad28e4290b75a5ee3b13d0d2c9cb585020008f12c6": {
|
|
3510
3510
|
functionName: "mintConnectKey_createServerFn_handler",
|
|
3511
|
-
importer: () => import("./loopApi-
|
|
3511
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3512
3512
|
},
|
|
3513
3513
|
"e233a461e4526dec3cc4cbaa891a7c3621d5967ce7f32b4fb17e9fb645857b9a": {
|
|
3514
3514
|
functionName: "stopLoop_createServerFn_handler",
|
|
3515
|
-
importer: () => import("./loopApi-
|
|
3515
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3516
3516
|
},
|
|
3517
3517
|
"ed10d5fe79208e5e0e4e18e4a17b18d7f7db4dd16204c00c3ac90c4644668841": {
|
|
3518
3518
|
functionName: "getArtifact_createServerFn_handler",
|
|
3519
|
-
importer: () => import("./loopApi-
|
|
3519
|
+
importer: () => import("./loopApi-DT751TJA.mjs")
|
|
3520
3520
|
},
|
|
3521
3521
|
"ed679b4e1e05e903a5d4ba4a70d9b9d883991ab22ed59b4d2d69078941818415": {
|
|
3522
3522
|
functionName: "createMachine_createServerFn_handler",
|
|
3523
|
-
importer: () => import("./machineFns-
|
|
3523
|
+
importer: () => import("./machineFns-BSrIgn3f.mjs")
|
|
3524
3524
|
}
|
|
3525
3525
|
};
|
|
3526
3526
|
async function getServerFnById(id, access) {
|
|
@@ -5352,7 +5352,7 @@ var getBaseManifest = getProdBaseManifest;
|
|
|
5352
5352
|
var createEarlyHintsForRequest = createEarlyHintsCollector;
|
|
5353
5353
|
async function loadEntries() {
|
|
5354
5354
|
const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
|
|
5355
|
-
import("./router-
|
|
5355
|
+
import("./router-BlLlhfJe.mjs"),
|
|
5356
5356
|
import("./start-4ifArtKx.mjs"),
|
|
5357
5357
|
import("./empty-plugin-adapters-DKUlnwwl.mjs")
|
|
5358
5358
|
]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-
|
|
1
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-DxLIQ0cc.js
|
|
2
2
|
var tsrStartManifest = () => ({ routes: {
|
|
3
3
|
__root__: {
|
|
4
4
|
filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/__root.tsx",
|
|
@@ -18,34 +18,34 @@ var tsrStartManifest = () => ({ routes: {
|
|
|
18
18
|
"/loops/$loopId_/runs/$runId"
|
|
19
19
|
],
|
|
20
20
|
preloads: [
|
|
21
|
-
"/assets/index-
|
|
22
|
-
"/assets/actionUi-
|
|
23
|
-
"/assets/preload-helper-
|
|
21
|
+
"/assets/index-CRX2pu0W.js",
|
|
22
|
+
"/assets/actionUi-5PtES4q0.js",
|
|
23
|
+
"/assets/preload-helper-sAZOZb3G.js"
|
|
24
24
|
],
|
|
25
25
|
scripts: [{ attrs: {
|
|
26
26
|
type: "module",
|
|
27
27
|
async: !0,
|
|
28
|
-
src: "/assets/index-
|
|
28
|
+
src: "/assets/index-CRX2pu0W.js"
|
|
29
29
|
} }]
|
|
30
30
|
},
|
|
31
31
|
"/": {
|
|
32
32
|
filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/index.tsx",
|
|
33
33
|
children: void 0,
|
|
34
34
|
preloads: [
|
|
35
|
-
"/assets/routes-
|
|
36
|
-
"/assets/routes-
|
|
37
|
-
"/assets/SignIn-
|
|
35
|
+
"/assets/routes-Dm_3J2aV.js",
|
|
36
|
+
"/assets/routes-DxF_s3cD.js",
|
|
37
|
+
"/assets/SignIn-CIFwnZtF.js"
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
40
|
"/loops/$loopId": {
|
|
41
41
|
filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/loops.$loopId.tsx",
|
|
42
42
|
children: void 0,
|
|
43
|
-
preloads: ["/assets/loops._loopId-
|
|
43
|
+
preloads: ["/assets/loops._loopId-BsuV-Rmf.js", "/assets/SignIn-CIFwnZtF.js"]
|
|
44
44
|
},
|
|
45
45
|
"/loops/$loopId_/runs/$runId": {
|
|
46
46
|
filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/loops.$loopId_.runs.$runId.tsx",
|
|
47
47
|
children: void 0,
|
|
48
|
-
preloads: ["/assets/loops._loopId_.runs._runId-
|
|
48
|
+
preloads: ["/assets/loops._loopId_.runs._runId-DpK_fzmZ.js", "/assets/SignIn-CIFwnZtF.js"]
|
|
49
49
|
}
|
|
50
50
|
} });
|
|
51
51
|
//#endregion
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
ALTER TABLE "loops" ADD COLUMN "tags" text[] DEFAULT ARRAY[]::text[] NOT NULL;
|
|
2
|
+
--> statement-breakpoint
|
|
3
|
+
ALTER TABLE "loops" ADD CONSTRAINT "loops_tags_count_check" CHECK (cardinality("loops"."tags") <= 4);
|
|
4
|
+
--> statement-breakpoint
|
|
5
|
+
ALTER TABLE "loops" ADD CONSTRAINT "loops_tags_reserved_check" CHECK (NOT ("loops"."tags" && ARRAY['all loops', 'active', 'paused', 'blocked']::text[]));
|