@kky42/pievo-server 2.4.9 → 2.4.10
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-wxHeRJsP.js → MachinesModal-ByHejech.js} +1 -1
- package/.output/public/assets/app-IrlFuBXa.css +2 -0
- package/.output/public/assets/{index-DXJGEV9d.js → index-ia26HsP1.js} +3 -3
- package/.output/public/assets/{invite._token-DgbAZ8tR.js → invite._token-tDfe3p0Z.js} +1 -1
- package/.output/public/assets/{loops._loopId-hqovx5nj.js → loops._loopId-CuYq_XgT.js} +3 -3
- package/.output/public/assets/{loops._loopId_.runs._runId-B233CSov.js → loops._loopId_.runs._runId-mOaF51Qu.js} +1 -1
- package/.output/public/assets/{routes-BcmIcHul.js → routes-Dbl_3lt_.js} +1 -1
- package/.output/public/assets/{t._teamId-CJOyBon9.js → t._teamId-BVsl0EGm.js} +1 -1
- package/.output/server/_libs/@tanstack/react-router+[...].mjs +1 -1
- package/.output/server/_ssr/{DashboardView-Dj-FImnr.mjs → DashboardView-BMHMrOfC.mjs} +6 -6
- package/.output/server/_ssr/{MachinesModal-C8UdXFwP.mjs → MachinesModal-BhRw7oOx.mjs} +8 -15
- package/.output/server/_ssr/{SignIn-kgyyAjxa.mjs → SignIn-BhoZIOUp.mjs} +3 -3
- package/.output/server/_ssr/{SocialLinks-ZYIMrv4W.mjs → SocialLinks-DVCLmql0.mjs} +2 -11
- package/.output/server/_ssr/{actionUi-DCNmrAjw.mjs → actionUi-Cf6DuEC2.mjs} +2 -2
- package/.output/server/_ssr/{artifactFiles-Dg7Csxw-.mjs → artifactFiles-ChuJ4PzC.mjs} +3 -4
- package/.output/server/_ssr/{artifactKind-Bex7n005.mjs → artifactKind-DXumOv7c.mjs} +3 -7
- package/.output/server/_ssr/{artifacts-CGJQi12P.mjs → artifacts-DOLHJHcd.mjs} +1 -1
- package/.output/server/_ssr/{auth-pONvN2Mo.mjs → auth-LwPp_iim.mjs} +9 -13
- package/.output/server/_ssr/{boot-DoRoAQuI.mjs → boot-BIxtZHU-.mjs} +61 -209
- package/.output/server/_ssr/{boot-DF8p07PC.mjs → boot-D8cj4uZj.mjs} +1 -1
- package/.output/server/_ssr/{bun-sqlite-dialect-BW9W1_Ps-fxdbbtvy.mjs → bun-sqlite-dialect-BW9W1_Ps-CHMDkKqA.mjs} +2 -2
- package/.output/server/_ssr/{d1-sqlite-dialect-BLC8LXE6-CcOEyONf.mjs → d1-sqlite-dialect-BLC8LXE6-DYum6qky.mjs} +2 -2
- package/.output/server/_ssr/db-BphSJs66.mjs +2 -0
- package/.output/server/_ssr/{dist-ghpS-jzd.mjs → dist-bWqs5sTy.mjs} +2 -2
- package/.output/server/_ssr/{factory-D7WCUKnW.mjs → factory-pBwrjVTI.mjs} +2 -2
- package/.output/server/_ssr/{invite._token-hkOJXnJU.mjs → invite._token-CPSvdDox.mjs} +4 -4
- package/.output/server/_ssr/{invite._token-YSls7Te8.mjs → invite._token-CRBsTSTZ.mjs} +6 -6
- package/.output/server/_ssr/{invite._token-CGzJGIfm.mjs → invite._token-CaTLt92a.mjs} +2 -2
- package/.output/server/_ssr/{kysely-adapter-DD_FuS-x.mjs → kysely-adapter-DMf5pFTf.mjs} +1 -1
- package/.output/server/_ssr/{lifecycleUi-DOr6Af13.mjs → lifecycleUi-DauKavgx.mjs} +1 -2
- package/.output/server/_ssr/logger-EinA2J6y.mjs +2 -0
- package/.output/server/_ssr/{loopApi-Vb7RrshX.mjs → loopApi-Im6JSK0p.mjs} +10 -11
- package/.output/server/_ssr/{loopProjection-DfpYkHDU.mjs → loopProjection-DIpGR6rp.mjs} +2 -4
- package/.output/server/_ssr/{loops._loopId-BKUT85ip.mjs → loops._loopId-B5iPseDG.mjs} +13 -27
- package/.output/server/_ssr/{loops._loopId_.runs._runId-CBXFBNrN.mjs → loops._loopId_.runs._runId-BA-P6sGA.mjs} +6 -44
- package/.output/server/_ssr/{loops._loopId_.runs._runId-Bha29x1u.mjs → loops._loopId_.runs._runId-DVtG0xYb.mjs} +3 -3
- package/.output/server/_ssr/{machineFns-BFBPpfxd.mjs → machineFns-Bb9KNXun.mjs} +3 -5
- package/.output/server/_ssr/{node-sqlite-dialect-BDYK0mnk.mjs → node-sqlite-dialect-Dho9YjXb.mjs} +2 -2
- package/.output/server/_ssr/{router-DfegU72d.mjs → router-DPz3uoUr.mjs} +22 -30
- package/.output/server/_ssr/{routes-BwTvON37.mjs → routes-B9zD2h4Y.mjs} +5 -7
- package/.output/server/_ssr/{routes-Bx3C3K_H.mjs → routes-BuILEmHs.mjs} +5 -5
- package/.output/server/_ssr/{routes-D5GHah06.mjs → routes-FO0MFfYK.mjs} +2 -2
- package/.output/server/_ssr/runDiff-BLdot9mi.mjs +2 -0
- package/.output/server/_ssr/ssr.mjs +39 -39
- package/.output/server/_ssr/store-CFCp_ggC.mjs +2 -0
- package/.output/server/_ssr/{t._teamId-CpPl9_XU.mjs → t._teamId-1t5wOXrV.mjs} +5 -5
- package/.output/server/_ssr/{t._teamId-BFs1MfBR.mjs → t._teamId-A37pQ8Vp.mjs} +5 -5
- package/.output/server/_ssr/{t._teamId-CrZ7EkUL.mjs → t._teamId-D1BTwhWf.mjs} +2 -2
- package/.output/server/_ssr/{teamFns-BVjiPvv8.mjs → teamFns-DfqtuBW2.mjs} +3 -7
- package/.output/server/_ssr/{teamFns-3lItAtfc.mjs → teamFns-cI_tsiCv.mjs} +2 -3
- package/.output/server/_ssr/{tokens-DUsrVE9g.mjs → tokens-CUz4LDLm.mjs} +1 -1
- package/.output/server/_ssr/{ui-BEPYdOmJ.mjs → ui-DGz-q9MT.mjs} +1 -22
- package/.output/server/{_tanstack-start-manifest_v-qnHwyto-.mjs → _tanstack-start-manifest_v-CojB4Veh.mjs} +11 -11
- package/.output/server/drizzle/0001_add_pi_agent.sql +9 -0
- package/.output/server/drizzle/meta/_journal.json +7 -0
- package/.output/server/index.mjs +65 -65
- package/drizzle/0001_add_pi_agent.sql +9 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +1 -1
- package/.output/public/assets/app-CuZ0I3Mb.css +0 -2
- package/.output/server/_ssr/db-DS0gckHd.mjs +0 -2
- package/.output/server/_ssr/logger-BuIBg8Jv.mjs +0 -2
- package/.output/server/_ssr/runDiff-CcG2PgCn.mjs +0 -2
- package/.output/server/_ssr/store-yOJEt4It.mjs +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { I as getArtifactSync, V as getGateway, z as getCliGateway } from "./boot-
|
|
1
|
+
import { I as getArtifactSync, V as getGateway, z as getCliGateway } from "./boot-BIxtZHU-.mjs";
|
|
2
2
|
export { getArtifactSync, getCliGateway, getGateway };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-
|
|
1
|
+
import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-LwPp_iim.mjs";
|
|
2
2
|
import { n as DEFAULT_MIGRATION_TABLE, t as DEFAULT_MIGRATION_LOCK_TABLE } from "./kysely-migration-tables-JkVUjPF_-bPAX9LR_.mjs";
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/bun-sqlite-dialect-BW9W1_Ps-
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/bun-sqlite-dialect-BW9W1_Ps-CHMDkKqA.js
|
|
4
4
|
var BunSqliteAdapter = class {
|
|
5
5
|
get supportsCreateIfNotExists() {
|
|
6
6
|
return true;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as SqliteQueryCompiler, i as SqliteAdapter } from "./auth-
|
|
1
|
+
import { a as SqliteQueryCompiler, i as SqliteAdapter } from "./auth-LwPp_iim.mjs";
|
|
2
2
|
import { n as DEFAULT_MIGRATION_TABLE, t as DEFAULT_MIGRATION_LOCK_TABLE } from "./kysely-migration-tables-JkVUjPF_-bPAX9LR_.mjs";
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/d1-sqlite-dialect-BLC8LXE6-
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/d1-sqlite-dialect-BLC8LXE6-DYum6qky.js
|
|
4
4
|
var D1SqliteAdapter = class extends SqliteAdapter {};
|
|
5
5
|
var D1SqliteDriver = class {
|
|
6
6
|
#config;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { _ as logger, o as createAdapterFactory } from "./factory-
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/dist-
|
|
1
|
+
import { _ as logger, o as createAdapterFactory } from "./factory-pBwrjVTI.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/dist-bWqs5sTy.js
|
|
3
3
|
/**
|
|
4
4
|
* Case-insensitive in-memory comparison helpers.
|
|
5
5
|
* Used when evaluating where clauses in the memory adapter.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as getEnvVar, M as env, a as BetterAuthError } from "./boot-
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/factory-
|
|
1
|
+
import { B as getEnvVar, M as env, a as BetterAuthError } from "./boot-BIxtZHU-.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/factory-pBwrjVTI.js
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
5
5
|
var __exportAll = (all, no_symbols) => {
|
|
@@ -1,8 +1,8 @@
|
|
|
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/invite._token-
|
|
4
|
-
var $$splitErrorComponentImporter = () => import("./invite._token-
|
|
5
|
-
var $$splitComponentImporter = () => import("./invite._token-
|
|
2
|
+
import { i as authClient, u as getAuthState } from "./SocialLinks-DVCLmql0.mjs";
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-CPSvdDox.js
|
|
4
|
+
var $$splitErrorComponentImporter = () => import("./invite._token-CaTLt92a.mjs");
|
|
5
|
+
var $$splitComponentImporter = () => import("./invite._token-CRBsTSTZ.mjs");
|
|
6
6
|
/** Redeem a team invite after normal gated sign-in. Invites grant membership but
|
|
7
7
|
* never bypass the login allowlist; open mode has no invite identity to redeem. */
|
|
8
8
|
var Route = createFileRoute("/invite/$token")({
|
|
@@ -1,13 +1,13 @@
|
|
|
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 { s as btnPrimary } from "./ui-BEPYdOmJ.mjs";
|
|
4
3
|
import { d as useNavigate } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
5
|
-
import { E as useSession, r as PievoLogo } from "./SocialLinks-
|
|
4
|
+
import { E as useSession, r as PievoLogo } from "./SocialLinks-DVCLmql0.mjs";
|
|
5
|
+
import { s as btnPrimary } from "./ui-DGz-q9MT.mjs";
|
|
6
6
|
import { t as setActiveTeamCookie } from "./teamCookie-B7hLOIie.mjs";
|
|
7
|
-
import { c as redeemTeamInvite } from "./teamFns-
|
|
8
|
-
import { t as Route } from "./invite._token-
|
|
9
|
-
import { t as SignIn } from "./SignIn-
|
|
10
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-
|
|
7
|
+
import { c as redeemTeamInvite } from "./teamFns-cI_tsiCv.mjs";
|
|
8
|
+
import { t as Route } from "./invite._token-CPSvdDox.mjs";
|
|
9
|
+
import { t as SignIn } from "./SignIn-BhoZIOUp.mjs";
|
|
10
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-CRBsTSTZ.js
|
|
11
11
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
12
12
|
var import_jsx_runtime = require_jsx_runtime();
|
|
13
13
|
/** Redeem a team invite after normal gated sign-in. Invites grant membership but
|
|
@@ -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-DCNmrAjw.mjs";
|
|
3
2
|
import { f as useRouter } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
4
|
-
|
|
3
|
+
import { r as LoadErrorCard } from "./actionUi-Cf6DuEC2.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-CaTLt92a.js
|
|
5
5
|
var import_jsx_runtime = require_jsx_runtime();
|
|
6
6
|
/** Redeem a team invite after normal gated sign-in. Invites grant membership but
|
|
7
7
|
* never bypass the login allowlist; open mode has no invite identity to redeem. */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as kyselyAdapter, t as createKyselyAdapter } from "./auth-
|
|
1
|
+
import { r as kyselyAdapter, t as createKyselyAdapter } from "./auth-LwPp_iim.mjs";
|
|
2
2
|
export { createKyselyAdapter, kyselyAdapter };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/lifecycleUi-
|
|
1
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/lifecycleUi-DauKavgx.js
|
|
2
2
|
var DAEMON_UPGRADE_REQUIRED = "Daemon upgrade required to stop a running process. Run `npm install -g @kky42/pievo@latest`, then `pievo daemon restart`.";
|
|
3
|
-
/** Derive product lifecycle state only from durable server facts. */
|
|
4
3
|
function deriveLoopLifecycle(loop) {
|
|
5
4
|
if (loop.deleteRequestedAt != null) return "deleting";
|
|
6
5
|
const running = loop.runs.find((run) => run.phase === "running");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $t as validateLoopEdit, A as ensureServer, Ft as requestRunCancel, G as getMachine, J as getRun, Kt as tryDeleteLoop, N as forceDeleteLoop, Pt as requestDeleteLoop, Q as hasRunningRun, Tt as pauseLoop$1, Ut as stopLoop$1, Vt as startLoop$1, W as getLoop, X as getTeamMember, Y as getTeam, _t as listTeamsForUser, dt as listMachines, ft as listMachinesForTeam, ht as listRunsBefore, qt as updateLoop, ut as listLoops$1, xt as machinePresence } from "./boot-
|
|
2
|
-
import { a as toRunSummaries, i as toLoopSummaries, r as toLoopDetail, t as sortLoopSummariesByRecentRun } from "./loopProjection-
|
|
3
|
-
import { canAccessLoop, requestScope } from "./auth-
|
|
1
|
+
import { $t as validateLoopEdit, A as ensureServer, Ft as requestRunCancel, G as getMachine, J as getRun, Kt as tryDeleteLoop, N as forceDeleteLoop, Pt as requestDeleteLoop, Q as hasRunningRun, Tt as pauseLoop$1, Ut as stopLoop$1, Vt as startLoop$1, W as getLoop, X as getTeamMember, Y as getTeam, _t as listTeamsForUser, dt as listMachines, ft as listMachinesForTeam, ht as listRunsBefore, qt as updateLoop, ut as listLoops$1, xt as machinePresence } from "./boot-BIxtZHU-.mjs";
|
|
2
|
+
import { a as toRunSummaries, i as toLoopSummaries, r as toLoopDetail, t as sortLoopSummariesByRecentRun } from "./loopProjection-DIpGR6rp.mjs";
|
|
3
|
+
import { canAccessLoop, requestScope } from "./auth-LwPp_iim.mjs";
|
|
4
4
|
import { n as createServerFn } from "./ssr.mjs";
|
|
5
5
|
import { t as createServerRpc } from "./createServerRpc-BD8Xn_0_.mjs";
|
|
6
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/loopApi-
|
|
6
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/loopApi-Im6JSK0p.js
|
|
7
7
|
/**
|
|
8
8
|
* Server functions backing the dashboard. They run server-side (createServerFn
|
|
9
9
|
* → RPC) and call the IN-PROCESS scheduler + store directly — the scheduler
|
|
@@ -33,14 +33,13 @@ async function ownedLoop(id) {
|
|
|
33
33
|
teamId: scope.teamId
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
-
/** Whether the auth gate is active (a GitHub OAuth app is configured). */
|
|
37
36
|
var getAuthState_createServerFn_handler = createServerRpc({
|
|
38
37
|
id: "b8119d5fe6ca1ed9f609702aa2133b5ac5337030c0bdcf92dc7eba889d6bd2e6",
|
|
39
38
|
name: "getAuthState",
|
|
40
39
|
filename: "src/server/loopApi.ts"
|
|
41
40
|
}, (opts) => getAuthState.__executeServer(opts));
|
|
42
41
|
var getAuthState = createServerFn({ method: "GET" }).handler(getAuthState_createServerFn_handler, async () => {
|
|
43
|
-
const { authEnabled } = await import("./auth-
|
|
42
|
+
const { authEnabled } = await import("./auth-LwPp_iim.mjs");
|
|
44
43
|
return { enabled: authEnabled };
|
|
45
44
|
});
|
|
46
45
|
var getConfig_createServerFn_handler = createServerRpc({
|
|
@@ -150,7 +149,7 @@ var getArtifacts_createServerFn_handler = createServerRpc({
|
|
|
150
149
|
var getArtifacts = createServerFn({ method: "GET" }).validator((d) => d).handler(getArtifacts_createServerFn_handler, async ({ data }) => {
|
|
151
150
|
await backend();
|
|
152
151
|
if (!await ownedLoop(data.loopId)) return [];
|
|
153
|
-
const { listLoopArtifacts } = await import("./artifactFiles-
|
|
152
|
+
const { listLoopArtifacts } = await import("./artifactFiles-ChuJ4PzC.mjs");
|
|
154
153
|
return listLoopArtifacts(data.loopId);
|
|
155
154
|
});
|
|
156
155
|
var getArtifact_createServerFn_handler = createServerRpc({
|
|
@@ -161,7 +160,7 @@ var getArtifact_createServerFn_handler = createServerRpc({
|
|
|
161
160
|
var getArtifact = createServerFn({ method: "GET" }).validator((d) => d).handler(getArtifact_createServerFn_handler, async ({ data }) => {
|
|
162
161
|
await backend();
|
|
163
162
|
if (!await ownedLoop(data.loopId)) return { error: "file not found" };
|
|
164
|
-
const { readLoopArtifact } = await import("./artifactFiles-
|
|
163
|
+
const { readLoopArtifact } = await import("./artifactFiles-ChuJ4PzC.mjs");
|
|
165
164
|
return readLoopArtifact(data.loopId, data.path);
|
|
166
165
|
});
|
|
167
166
|
var getRunDiff_createServerFn_handler = createServerRpc({
|
|
@@ -180,7 +179,7 @@ var getRunDiff = createServerFn({ method: "GET" }).validator((d) => d).handler(g
|
|
|
180
179
|
hasSnapshot: false,
|
|
181
180
|
files: []
|
|
182
181
|
};
|
|
183
|
-
const { computeRunDiff } = await import("./runDiff-
|
|
182
|
+
const { computeRunDiff } = await import("./runDiff-BLdot9mi.mjs");
|
|
184
183
|
return computeRunDiff(data.runId);
|
|
185
184
|
});
|
|
186
185
|
var patchLoop_createServerFn_handler = createServerRpc({
|
|
@@ -268,7 +267,7 @@ var deleteLoop = createServerFn({ method: "POST" }).validator((id) => id).handle
|
|
|
268
267
|
if (!await requestDeleteLoop(id)) return { error: "not found" };
|
|
269
268
|
if (unreachable && mayRetireAuthority) {
|
|
270
269
|
if (!await forceDeleteLoop(id)) return { error: "delete failed; server data was not deleted" };
|
|
271
|
-
const { logger } = await import("./logger-
|
|
270
|
+
const { logger } = await import("./logger-EinA2J6y.mjs");
|
|
272
271
|
logger.child({ mod: "loop-lifecycle" }).warn({
|
|
273
272
|
action: "unreachable-delete",
|
|
274
273
|
loopId: id,
|
|
@@ -328,7 +327,7 @@ var mintClaim_createServerFn_handler = createServerRpc({
|
|
|
328
327
|
}, (opts) => mintClaim.__executeServer(opts));
|
|
329
328
|
var mintClaim = createServerFn({ method: "POST" }).validator((teamId) => teamId).handler(mintClaim_createServerFn_handler, async ({ data: teamId }) => {
|
|
330
329
|
await backend();
|
|
331
|
-
const { mintDeviceToken, rememberConnectKey } = await import("./tokens-
|
|
330
|
+
const { mintDeviceToken, rememberConnectKey } = await import("./tokens-CUz4LDLm.mjs");
|
|
332
331
|
const { userId, teamId: active } = await requestScope(teamId);
|
|
333
332
|
const owner = userId ?? "shared";
|
|
334
333
|
const token = mintDeviceToken();
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { G as getMachine, Ht as statusDefinitionsFromLoop, Ot as recentLoopUsage, Q as hasRunningRun, Rt as scheduleFromLoop, T as daemonNeedsUpdate, Z as hasPendingRun, kt as reconciliationStatesForRuns, mt as listRuns, u as MIN_DAEMON_VERSION, xt as machinePresence, y as countRuns } from "./boot-
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/loopProjection-
|
|
3
|
-
/** Canonical client projections for persisted loops and runs. */
|
|
1
|
+
import { G as getMachine, Ht as statusDefinitionsFromLoop, Ot as recentLoopUsage, Q as hasRunningRun, Rt as scheduleFromLoop, T as daemonNeedsUpdate, Z as hasPendingRun, kt as reconciliationStatesForRuns, mt as listRuns, u as MIN_DAEMON_VERSION, xt as machinePresence, y as countRuns } from "./boot-BIxtZHU-.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/loopProjection-DIpGR6rp.js
|
|
4
3
|
var SUMMARY_RUNS = 18;
|
|
5
4
|
var RECENT_USAGE_WINDOW_MS = 10080 * 60 * 1e3;
|
|
6
5
|
/** Dashboard order: loops with runs first, most recent run first. The incoming
|
|
@@ -47,7 +46,6 @@ async function toRunSummaries(loopId, rows) {
|
|
|
47
46
|
const states = await reconciliationStatesForRuns(loopId, rows.map((run) => run.id));
|
|
48
47
|
return rows.map((run) => toRunSummary(run, states.get(run.id)));
|
|
49
48
|
}
|
|
50
|
-
/** One live artifact_files row → compact UI metadata. */
|
|
51
49
|
function toArtifactSummary(row) {
|
|
52
50
|
return {
|
|
53
51
|
path: row.path,
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { o as __toESM } from "../_runtime.mjs";
|
|
2
|
-
import { s as CODING_AGENTS } from "./boot-
|
|
2
|
+
import { s as CODING_AGENTS } from "./boot-BIxtZHU-.mjs";
|
|
3
3
|
import { g as require_react, h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].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-BEPYdOmJ.mjs";
|
|
5
|
-
import { i as useFlash, n as FlashLine, r as LoadErrorCard, t as ConfirmBar } from "./actionUi-DCNmrAjw.mjs";
|
|
6
4
|
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-
|
|
5
|
+
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-DVCLmql0.mjs";
|
|
6
|
+
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-DGz-q9MT.mjs";
|
|
8
7
|
import { t as setActiveTeamCookie } from "./teamCookie-B7hLOIie.mjs";
|
|
9
|
-
import { t as SignIn } from "./SignIn-
|
|
10
|
-
import { n as
|
|
11
|
-
import {
|
|
12
|
-
import { n as
|
|
8
|
+
import { t as SignIn } from "./SignIn-BhoZIOUp.mjs";
|
|
9
|
+
import { i as useFlash, n as FlashLine, r as LoadErrorCard, t as ConfirmBar } from "./actionUi-Cf6DuEC2.mjs";
|
|
10
|
+
import { n as daemonStopSupport, r as deriveLoopLifecycle, t as DAEMON_UPGRADE_REQUIRED } from "./lifecycleUi-DauKavgx.mjs";
|
|
11
|
+
import { l as mergeRuns, n as MachinesModal, o as Timeline, t as LoopOverview } from "./MachinesModal-BhRw7oOx.mjs";
|
|
12
|
+
import { n as artifactKind, t as Route } from "./artifactKind-DXumOv7c.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-B5iPseDG.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
|
|
@@ -21,7 +21,6 @@ function downloadHref(loopId, path) {
|
|
|
21
21
|
const encodedPath = path.split("/").map(encodeURIComponent).join("/");
|
|
22
22
|
return `/api/artifact/${encodeURIComponent(loopId)}/${encodedPath}`;
|
|
23
23
|
}
|
|
24
|
-
/** Hardened inline image URL for the same artifact bytes. */
|
|
25
24
|
function inlineHref(loopId, path) {
|
|
26
25
|
return `${downloadHref(loopId, path)}?view=inline`;
|
|
27
26
|
}
|
|
@@ -74,14 +73,12 @@ var MD_SANITIZE = {
|
|
|
74
73
|
"alt"
|
|
75
74
|
]
|
|
76
75
|
};
|
|
77
|
-
/** Markdown string → sanitized HTML string (safe for dangerouslySetInnerHTML). */
|
|
78
76
|
function renderMarkdown(content) {
|
|
79
77
|
return purify.sanitize(g.parse(content, {
|
|
80
78
|
async: false,
|
|
81
79
|
gfm: true
|
|
82
80
|
}), MD_SANITIZE);
|
|
83
81
|
}
|
|
84
|
-
/** Render a Markdown artifact through the shared sanitized GFM pipeline. */
|
|
85
82
|
function MarkdownView({ content }) {
|
|
86
83
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
87
84
|
className: "artifact-markdown px-5 py-4",
|
|
@@ -106,7 +103,6 @@ function MarkdownView({ content }) {
|
|
|
106
103
|
* Everything keeps a Download fallback; an oversize (metadata-only) artifact has
|
|
107
104
|
* no synced bytes to render, so it says so rather than showing an empty pane.
|
|
108
105
|
*/
|
|
109
|
-
/** A small monospace caption strip above a file's content (path · meta [· action]). */
|
|
110
106
|
function ViewerHead({ path, meta, action }) {
|
|
111
107
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
112
108
|
className: "sticky top-0 z-10 flex flex-wrap items-center gap-x-2 gap-y-1 border-b border-hairline bg-surface px-5 py-2.5",
|
|
@@ -126,7 +122,6 @@ function ViewerHead({ path, meta, action }) {
|
|
|
126
122
|
]
|
|
127
123
|
});
|
|
128
124
|
}
|
|
129
|
-
/** The binary / oversize body - download affordance or the metadata-only note. */
|
|
130
125
|
function BinaryNotice({ loopId, path, oversize }) {
|
|
131
126
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
132
127
|
className: "px-5 py-8 text-body text-secondary",
|
|
@@ -145,8 +140,6 @@ function BinaryNotice({ loopId, path, oversize }) {
|
|
|
145
140
|
] })
|
|
146
141
|
});
|
|
147
142
|
}
|
|
148
|
-
/** The viewer's action strip: a Preview/Source toggle (renderable types only)
|
|
149
|
-
* plus an always-present Download. Sits just under the content head. */
|
|
150
143
|
function ViewerActions({ loopId, path, mode, onMode, showToggle }) {
|
|
151
144
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
152
145
|
className: "flex items-center gap-2 border-b border-hairline bg-surface px-5 py-1.5",
|
|
@@ -184,8 +177,6 @@ function HtmlPreview({ html }) {
|
|
|
184
177
|
className: "h-[min(70vh,620px)] w-full border-0 bg-white"
|
|
185
178
|
});
|
|
186
179
|
}
|
|
187
|
-
/** An image artifact, rendered from the hardened inline route (never inlined
|
|
188
|
-
* into the app DOM). Falls back to a download prompt if the bytes won't load. */
|
|
189
180
|
function ImageView({ loopId, file }) {
|
|
190
181
|
const [failed, setFailed] = (0, import_react.useState)(false);
|
|
191
182
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
@@ -219,8 +210,6 @@ function ImageView({ loopId, file }) {
|
|
|
219
210
|
})]
|
|
220
211
|
});
|
|
221
212
|
}
|
|
222
|
-
/** A text-bearing artifact (html / markdown / plain text): fetch the bytes, then
|
|
223
|
-
* render per its kind with a Preview/Source toggle (html + markdown) + download. */
|
|
224
213
|
function TextArtifactView({ loopId, file, kind }) {
|
|
225
214
|
const [loaded, setLoaded] = (0, import_react.useState)({ loading: true });
|
|
226
215
|
const [mode, setMode] = (0, import_react.useState)("preview");
|
|
@@ -269,11 +258,6 @@ function TextArtifactView({ loopId, file, kind }) {
|
|
|
269
258
|
})]
|
|
270
259
|
});
|
|
271
260
|
}
|
|
272
|
-
/**
|
|
273
|
-
* One artifact's content body, dispatched by display kind (see `artifactKind`).
|
|
274
|
-
* Oversize → metadata-only note (no bytes); image → hardened <img>; other binary
|
|
275
|
-
* → download; text-bearing → the fetch-and-render viewer.
|
|
276
|
-
*/
|
|
277
261
|
function ArtifactBody({ loopId, file }) {
|
|
278
262
|
const kind = artifactKind(file.path);
|
|
279
263
|
if (file.oversize) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BinaryNotice, {
|
|
@@ -379,7 +363,8 @@ function LoopFilesPanel({ loopId, configuredPaths, running }) {
|
|
|
379
363
|
}
|
|
380
364
|
var AGENT_LABEL$1 = {
|
|
381
365
|
"claude-code": "Claude Code",
|
|
382
|
-
codex: "Codex"
|
|
366
|
+
codex: "Codex",
|
|
367
|
+
pi: "Pi"
|
|
383
368
|
};
|
|
384
369
|
var hintCls = "mt-1 text-caption leading-snug text-disabled";
|
|
385
370
|
function initState(initial) {
|
|
@@ -684,7 +669,8 @@ var LoopForm = (0, import_react.forwardRef)(function LoopForm({ initial }, ref)
|
|
|
684
669
|
});
|
|
685
670
|
var AGENT_LABEL = {
|
|
686
671
|
"claude-code": "Claude Code",
|
|
687
|
-
codex: "Codex"
|
|
672
|
+
codex: "Codex",
|
|
673
|
+
pi: "Pi"
|
|
688
674
|
};
|
|
689
675
|
function LoopDetailView({ id }) {
|
|
690
676
|
const navigate = useNavigate();
|
|
@@ -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 { 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-BEPYdOmJ.mjs";
|
|
4
|
-
import { r as LoadErrorCard } from "./actionUi-DCNmrAjw.mjs";
|
|
5
3
|
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 {
|
|
8
|
-
import { t as
|
|
9
|
-
|
|
4
|
+
import { E as useSession, T as stopRun, _ as loadOlderRuns, m as getRunDiff, p as getLoopDetail } from "./SocialLinks-DVCLmql0.mjs";
|
|
5
|
+
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-DGz-q9MT.mjs";
|
|
6
|
+
import { t as SignIn } from "./SignIn-BhoZIOUp.mjs";
|
|
7
|
+
import { r as LoadErrorCard } from "./actionUi-Cf6DuEC2.mjs";
|
|
8
|
+
import { t as Route } from "./loops._loopId_.runs._runId-DVtG0xYb.mjs";
|
|
9
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-BA-P6sGA.js
|
|
10
10
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
11
11
|
var import_jsx_runtime = require_jsx_runtime();
|
|
12
12
|
/**
|
|
@@ -70,7 +70,6 @@ function parseUnifiedDiff(diff) {
|
|
|
70
70
|
return classified;
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
|
-
/** Counts of added/removed content lines — for a compact per-file "+N −M" tally. */
|
|
74
73
|
function diffStat(lines) {
|
|
75
74
|
let added = 0;
|
|
76
75
|
let removed = 0;
|
|
@@ -81,7 +80,6 @@ function diffStat(lines) {
|
|
|
81
80
|
removed
|
|
82
81
|
};
|
|
83
82
|
}
|
|
84
|
-
/** Per-file status word + its ink (reused from the old Changes list). */
|
|
85
83
|
var STATUS_LABEL = {
|
|
86
84
|
added: "Added",
|
|
87
85
|
modified: "Changed",
|
|
@@ -92,12 +90,10 @@ var STATUS_CLS = {
|
|
|
92
90
|
modified: "text-secondary",
|
|
93
91
|
removed: "text-accent"
|
|
94
92
|
};
|
|
95
|
-
/** Signed byte delta — "+1.8 KB", "−240 B", "" when unknown/zero. */
|
|
96
93
|
function fmtDelta(n) {
|
|
97
94
|
if (n == null || n === 0) return "";
|
|
98
95
|
return `${n > 0 ? "+" : "−"}${humanBytes(n)}`;
|
|
99
96
|
}
|
|
100
|
-
/** A diff line's row classes — line-level tint + gutter ink per kind. */
|
|
101
97
|
var LINE_CLS = {
|
|
102
98
|
add: "bg-[color:var(--color-diff-add-bg)] text-primary",
|
|
103
99
|
del: "bg-[color:var(--color-diff-del-bg)] text-primary",
|
|
@@ -112,13 +108,6 @@ var GUTTER_CLS = {
|
|
|
112
108
|
meta: "text-disabled",
|
|
113
109
|
context: "text-disabled"
|
|
114
110
|
};
|
|
115
|
-
/**
|
|
116
|
-
* The colored diff body for one file. Each physical line becomes a row with a
|
|
117
|
-
* `+`/`-`/` ` gutter and a line-level background tint (add=green, del=red, hunk
|
|
118
|
-
* de-emphasized). Long lines DON'T wrap — the pane scrolls them horizontally
|
|
119
|
-
* (`overflow-x-auto min-w-0`) so a wide line never widens the page. Height is
|
|
120
|
-
* capped so a long diff scrolls inside its own box.
|
|
121
|
-
*/
|
|
122
111
|
function DiffBody({ lines }) {
|
|
123
112
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
124
113
|
className: "min-w-0 max-h-[420px] overflow-auto border-t border-hairline bg-raised font-mono text-label leading-[1.55]",
|
|
@@ -138,7 +127,6 @@ function DiffBody({ lines }) {
|
|
|
138
127
|
})
|
|
139
128
|
});
|
|
140
129
|
}
|
|
141
|
-
/** One file row header — status word, path, size delta, and binary/too-large markers. */
|
|
142
130
|
function FileHead({ f, lines }) {
|
|
143
131
|
const delta = fmtDelta(f.sizeDelta);
|
|
144
132
|
const stat = lines ? diffStat(lines) : null;
|
|
@@ -182,15 +170,7 @@ function FileHead({ f, lines }) {
|
|
|
182
170
|
]
|
|
183
171
|
});
|
|
184
172
|
}
|
|
185
|
-
/** Small enough to auto-open; larger diffs start collapsed. */
|
|
186
173
|
var AUTO_OPEN_LINES = 40;
|
|
187
|
-
/**
|
|
188
|
-
* The Changes diff view — a list of changed files, each collapsible, its unified
|
|
189
|
-
* diff rendered as colored add/remove/context lines. Files with no inline diff
|
|
190
|
-
* (binary / oversize / too-large) render just the header row. Small diffs default
|
|
191
|
-
* open, large ones collapsed. Built entirely from theme tokens — no external diff
|
|
192
|
-
* library.
|
|
193
|
-
*/
|
|
194
174
|
function DiffView({ files }) {
|
|
195
175
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
196
176
|
className: "space-y-1.5",
|
|
@@ -221,9 +201,6 @@ function DiffView({ files }) {
|
|
|
221
201
|
})
|
|
222
202
|
});
|
|
223
203
|
}
|
|
224
|
-
/** A section card - mirrors the loop page's surface panels with a sentence-case
|
|
225
|
-
* section heading. `min-w-0` so wide inner content (a wide diff line)
|
|
226
|
-
* scrolls inside the card, never widens the page. */
|
|
227
204
|
function Card({ label, count, children }) {
|
|
228
205
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", {
|
|
229
206
|
className: "min-w-0 rounded-card border border-hairline bg-surface px-6 py-5 shadow-card",
|
|
@@ -240,7 +217,6 @@ function Card({ label, count, children }) {
|
|
|
240
217
|
}), children]
|
|
241
218
|
});
|
|
242
219
|
}
|
|
243
|
-
/** A stacked key/value field for the metadata rail - a small label over its value. */
|
|
244
220
|
function Field({ k, children }) {
|
|
245
221
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
246
222
|
className: "min-w-0",
|
|
@@ -257,8 +233,6 @@ function visibleTokenUsage(usage) {
|
|
|
257
233
|
if (!usage || usage.inputTokens === void 0 && usage.outputTokens === void 0) return null;
|
|
258
234
|
return (usage.inputTokens ?? 0) + (usage.outputTokens ?? 0);
|
|
259
235
|
}
|
|
260
|
-
/** Per-run artifact diff vs the previous run, rendered as a colored diff
|
|
261
|
-
* view. Lazy by runId; degrades to a calm fallback for runs with no snapshot. */
|
|
262
236
|
function Changes({ run }) {
|
|
263
237
|
const [data, setData] = (0, import_react.useState)(null);
|
|
264
238
|
(0, import_react.useEffect)(() => {
|
|
@@ -342,18 +316,6 @@ function SessionId({ id }) {
|
|
|
342
316
|
* (cursor paging via loadOlderRuns) before giving up — a safety bound so a bad
|
|
343
317
|
* runId can't page the whole history. 64 × 100/page covers very deep histories. */
|
|
344
318
|
var MAX_OLDER_PAGES = 64;
|
|
345
|
-
/**
|
|
346
|
-
* Run detail PAGE body — its own route (`/loops/$loopId/runs/$runId`). Resolves
|
|
347
|
-
* the run by id from the loop's detail payload (reusing getLoopDetail, no new
|
|
348
|
-
* backend); a run older than that latest window is located by paging backward
|
|
349
|
-
* with the existing `loadOlderRuns` cursor fn. Self-polls while it's in flight.
|
|
350
|
-
*
|
|
351
|
-
* Layout mirrors the loop detail page: a header card (name / status pill / chips
|
|
352
|
-
* + action toolbar), then a two-column main — the meaty content (Changes diff +
|
|
353
|
-
* Execution trace + Report) in a wide `minmax(0,1fr)` column, the run metadata in
|
|
354
|
-
* a capped right rail. `min-w-0` everywhere + panes that scroll their own wide
|
|
355
|
-
* content keep the page free of horizontal scroll at any width.
|
|
356
|
-
*/
|
|
357
319
|
function RunDetailView({ loopId, runId }) {
|
|
358
320
|
const [detail, setDetail] = (0, import_react.useState)(null);
|
|
359
321
|
const [olderRun, setOlderRun] = (0, import_react.useState)(null);
|
|
@@ -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-DVCLmql0.mjs";
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-DVtG0xYb.js
|
|
4
|
+
var $$splitComponentImporter = () => import("./loops._loopId_.runs._runId-BA-P6sGA.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,8 +1,8 @@
|
|
|
1
|
-
import { A as ensureServer, Bt as sha256, C as createMachine$1, G as getMachine, Jt as updateMachine, P as forceDeleteMachine, St as mintDeviceToken, T as daemonNeedsUpdate, X as getTeamMember, bt as machineIdFromToken, dt as listMachines$1, ft as listMachinesForTeam, jt as rememberConnectKey, u as MIN_DAEMON_VERSION, yt as loopsForMachine } from "./boot-
|
|
2
|
-
import { requestScope } from "./auth-
|
|
1
|
+
import { A as ensureServer, Bt as sha256, C as createMachine$1, G as getMachine, Jt as updateMachine, P as forceDeleteMachine, St as mintDeviceToken, T as daemonNeedsUpdate, X as getTeamMember, bt as machineIdFromToken, dt as listMachines$1, ft as listMachinesForTeam, jt as rememberConnectKey, u as MIN_DAEMON_VERSION, yt as loopsForMachine } from "./boot-BIxtZHU-.mjs";
|
|
2
|
+
import { requestScope } from "./auth-LwPp_iim.mjs";
|
|
3
3
|
import { n as createServerFn } from "./ssr.mjs";
|
|
4
4
|
import { t as createServerRpc } from "./createServerRpc-BD8Xn_0_.mjs";
|
|
5
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/machineFns-
|
|
5
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/machineFns-Bb9KNXun.js
|
|
6
6
|
/**
|
|
7
7
|
* Whether a machine is visible/actionable in the request scope. Mirrors
|
|
8
8
|
* listMachines: open mode sees everything; otherwise the requester must own the
|
|
@@ -85,7 +85,6 @@ var LatestDaemonVersion = class {
|
|
|
85
85
|
this.ttlMs = ttlMs;
|
|
86
86
|
this.now = now;
|
|
87
87
|
}
|
|
88
|
-
/** Cached latest version, refreshing in the background when stale. Non-blocking. */
|
|
89
88
|
get() {
|
|
90
89
|
if (this.now() - this.fetchedAt >= this.ttlMs) this.refresh();
|
|
91
90
|
return this.cached;
|
|
@@ -107,7 +106,6 @@ var LatestDaemonVersion = class {
|
|
|
107
106
|
}
|
|
108
107
|
}
|
|
109
108
|
};
|
|
110
|
-
/** Process-wide singleton the machine server fns read (fail-silent, cached). */
|
|
111
109
|
var latestDaemonVersion = new LatestDaemonVersion();
|
|
112
110
|
/**
|
|
113
111
|
* Machine management server functions. Connect flow (two acts):
|
package/.output/server/_ssr/{node-sqlite-dialect-BDYK0mnk.mjs → node-sqlite-dialect-Dho9YjXb.mjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-
|
|
1
|
+
import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-LwPp_iim.mjs";
|
|
2
2
|
import { n as DEFAULT_MIGRATION_TABLE, t as DEFAULT_MIGRATION_LOCK_TABLE } from "./kysely-migration-tables-JkVUjPF_-bPAX9LR_.mjs";
|
|
3
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/node-sqlite-dialect-
|
|
3
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/node-sqlite-dialect-Dho9YjXb.js
|
|
4
4
|
var NodeSqliteAdapter = class {
|
|
5
5
|
get supportsCreateIfNotExists() {
|
|
6
6
|
return true;
|