@kky42/pievo-server 2.0.2 → 2.0.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/{LoopView-XXW59HAV.js → LoopView-Pbp2YtUu.js} +3 -3
- package/.output/public/assets/{Modal-BnCPgN_k.js → Modal-B3xpEtcf.js} +1 -1
- package/.output/public/assets/{SignIn-BAoOONQ9.js → SignIn-9vsaKv_p.js} +1 -1
- package/.output/public/assets/{actionUi-Dxe9cHAc.js → actionUi-DDDfD0WX.js} +1 -1
- package/.output/public/assets/app-CStTBRt2.css +2 -0
- package/.output/public/assets/{artifactView-DekEs5ME.js → artifactView-BV-yQVrj.js} +1 -1
- package/.output/public/assets/index-49hAH0gP.js +12 -0
- package/.output/public/assets/{invite._token-BAqaXvte.js → invite._token-C3t4JfAY.js} +1 -1
- package/.output/public/assets/{invite._token-q54LLZ6A.js → invite._token-C891oGkK.js} +1 -1
- package/.output/public/assets/lifecycleUi-C3k2MlX8.js +1 -0
- package/.output/public/assets/{loopApi-5s2-kCnu.js → loopApi-C_Dtw-nL.js} +1 -1
- package/.output/public/assets/loops._loopId-DD4fKGMu.js +4 -0
- package/.output/public/assets/{loops._loopId_.runs._runId-lGYlHXTN.js → loops._loopId_.runs._runId-DoPcCQy7.js} +2 -2
- package/.output/public/assets/notifyFns-BaukhLAg.js +1 -0
- package/.output/public/assets/{preload-helper-ycaoAemE.js → preload-helper--VCqDT5m.js} +2 -2
- package/.output/public/assets/{routes-D0zKR7gK.js → routes-BS4N7Lnf.js} +1 -1
- package/.output/public/assets/{routes-C7Pw5lGn.js → routes-DsdcURfk.js} +1 -1
- package/.output/public/assets/{t._teamId-CCgajlMS.js → t._teamId-C9uEyAh_.js} +1 -1
- package/.output/public/assets/{t._teamId-Cn7cRGAh.js → t._teamId-DSYlMX_v.js} +1 -1
- package/.output/public/assets/ui-Gb1413-F.js +1 -0
- package/.output/server/_ssr/{DashboardView-BhJBW7IL.mjs → DashboardView-CQdjYy03.mjs} +36 -111
- package/.output/server/_ssr/{LoopPlaybook-BC9Dvnw2.mjs → LoopPlaybook-C86vJIjZ.mjs} +9 -9
- package/.output/server/_ssr/{LoopView-Dom6Ad5G.mjs → LoopView-cDyjmf1B.mjs} +16 -16
- package/.output/server/_ssr/{Modal-CfWC9R49.mjs → Modal-Bc_5TYGr.mjs} +2 -2
- package/.output/server/_ssr/{SignIn-D70NUJsN.mjs → SignIn-BQQiD3Ss.mjs} +3 -3
- package/.output/server/_ssr/{actionUi-mDYOvJdB.mjs → actionUi-BKF6xI3d.mjs} +2 -2
- package/.output/server/_ssr/{adapters-D0d1fBKK.mjs → adapters-N4-yQ1vK.mjs} +4 -8
- package/.output/server/_ssr/{artifactFiles-BfE1070_.mjs → artifactFiles-Dl1EaUtJ.mjs} +3 -3
- package/.output/server/_ssr/{artifactView-CYV1r48i.mjs → artifactView-DX4P3Krh.mjs} +2 -2
- package/.output/server/_ssr/artifacts-DzWJrBxK.mjs +2 -0
- package/.output/server/_ssr/{auth-BP81awUE.mjs → auth-CbAfO4Ne.mjs} +9 -9
- package/.output/server/_ssr/{boot-sM4t8RJu.mjs → boot-BZ-YyUiD.mjs} +1397 -626
- package/.output/server/_ssr/{boot-pUGFIxSA.mjs → boot-BigKgB8p.mjs} +1 -1
- package/.output/server/_ssr/{bun-sqlite-dialect-BW9W1_Ps-CZJuWL5Z.mjs → bun-sqlite-dialect-BW9W1_Ps-B67XLJZt.mjs} +2 -2
- package/.output/server/_ssr/{d1-sqlite-dialect-BLC8LXE6-C2PCtZfI.mjs → d1-sqlite-dialect-BLC8LXE6-nff_yHzH.mjs} +2 -2
- package/.output/server/_ssr/db-BF8vSovA.mjs +2 -0
- package/.output/server/_ssr/{dist-Z7v6ihws.mjs → dist-BGjVt6NE.mjs} +2 -2
- package/.output/server/_ssr/{factory-BQ_XiP23.mjs → factory-DNeo3vVt.mjs} +2 -2
- package/.output/server/_ssr/{invite._token-CRAl6-yK.mjs → invite._token-Bipap1cl.mjs} +6 -6
- package/.output/server/_ssr/{invite._token-23daBIfe.mjs → invite._token-BlbVjz-o.mjs} +2 -2
- package/.output/server/_ssr/{invite._token-VKmyC9-R.mjs → invite._token-z3PzCMzb.mjs} +5 -5
- package/.output/server/_ssr/{kysely-adapter-DjQPkqgJ.mjs → kysely-adapter-C1ww7PKr.mjs} +1 -1
- package/.output/server/_ssr/{lifecycleUi-l3nx9i3T.mjs → lifecycleUi-5jMhxINb.mjs} +1 -3
- package/.output/server/_ssr/logger-C7aewtve.mjs +2 -0
- package/.output/server/_ssr/{loopApi-BfMnXaKT.mjs → loopApi-7MTSs6hy.mjs} +5 -5
- package/.output/server/_ssr/{loopApi-i7xdpokI.mjs → loopApi-JzGGZZp2.mjs} +31 -25
- package/.output/server/_ssr/{loops._loopId-jXSgPWG1.mjs → loops._loopId-CJxQ0EG4.mjs} +4 -4
- package/.output/server/_ssr/{loops._loopId-DOPfN_Op.mjs → loops._loopId-DFkyTJR3.mjs} +106 -132
- package/.output/server/_ssr/{loops._loopId_.runs._runId-DiBP2rCe.mjs → loops._loopId_.runs._runId-DkG-ZCD1.mjs} +10 -17
- package/.output/server/_ssr/{loops._loopId_.runs._runId-BhoM6DWj.mjs → loops._loopId_.runs._runId-lTigSOmT.mjs} +4 -4
- package/.output/server/_ssr/{machineFns-ChO1NM3C.mjs → machineFns-Dda8-rBY.mjs} +3 -3
- package/.output/server/_ssr/{node-sqlite-dialect-BGlhyZkk.mjs → node-sqlite-dialect-BS2OAFJh.mjs} +2 -2
- package/.output/server/_ssr/{notifyFns-DWotltSJ.mjs → notifyFns-C6eyIFZE.mjs} +7 -8
- package/.output/server/_ssr/{notifyFns-B1MSIzrT.mjs → notifyFns-C9N0QLe3.mjs} +3 -3
- package/.output/server/_ssr/{router-BOHN4CWd.mjs → router-DIfoLu1r.mjs} +30 -30
- package/.output/server/_ssr/{routes-DjaTMZqZ.mjs → routes-Bx0bRxt9.mjs} +2 -2
- package/.output/server/_ssr/{routes-BQjhKV-m.mjs → routes-DYJB0rKC.mjs} +5 -5
- package/.output/server/_ssr/{routes-C2VJzARp.mjs → routes-bWgX0tRE.mjs} +6 -6
- package/.output/server/_ssr/runDiff-B9t7ouYj.mjs +2 -0
- package/.output/server/_ssr/ssr.mjs +51 -51
- package/.output/server/_ssr/store-Dw4LiFjE.mjs +2 -0
- package/.output/server/_ssr/{t._teamId-o86wLJrg.mjs → t._teamId-B_ieXBNF.mjs} +6 -6
- package/.output/server/_ssr/{t._teamId-CRgNlDGk.mjs → t._teamId-C_KZZ4Xh.mjs} +5 -5
- package/.output/server/_ssr/{t._teamId-D_vi_OuG.mjs → t._teamId-D9nCEa2h.mjs} +2 -2
- package/.output/server/_ssr/{teamFns-D4I-0dEB.mjs → teamFns-BBIbatdZ.mjs} +2 -2
- package/.output/server/_ssr/{teamFns-C3vnwAqv.mjs → teamFns-O3ZmtZL2.mjs} +3 -3
- package/.output/server/_ssr/tokens-DI_pklQB.mjs +2 -0
- package/.output/server/_ssr/{ui-WGITbP6Z.mjs → ui-B6mE5-5v.mjs} +7 -23
- package/.output/server/{_tanstack-start-manifest_v-DYC0z7st.mjs → _tanstack-start-manifest_v-DKnfwHZr.mjs} +28 -28
- package/.output/server/drizzle/0014_luxuriant_scrambler.sql +5 -0
- package/.output/server/drizzle/0015_run_history_foundation.sql +43 -0
- package/.output/server/drizzle/meta/_journal.json +14 -0
- package/.output/server/index.mjs +106 -106
- package/drizzle/0014_luxuriant_scrambler.sql +5 -0
- package/drizzle/0015_run_history_foundation.sql +43 -0
- package/drizzle/meta/_journal.json +14 -0
- package/package.json +1 -1
- package/.output/public/assets/app-DzFILlbu.css +0 -2
- package/.output/public/assets/index-BtvLZjhl.js +0 -12
- package/.output/public/assets/lifecycleUi-B8Je9exd.js +0 -1
- package/.output/public/assets/loops._loopId-BCK4oIRv.js +0 -4
- package/.output/public/assets/notifyFns-BneSItOi.js +0 -1
- package/.output/public/assets/ui-RFP3R3lU.js +0 -1
- package/.output/server/_ssr/artifacts-CSGRJdSy.mjs +0 -2
- package/.output/server/_ssr/db-Cc6I8bWL.mjs +0 -2
- package/.output/server/_ssr/logger-CHoC5_kz.mjs +0 -2
- package/.output/server/_ssr/runDiff-SlGPjjNq.mjs +0 -113
- package/.output/server/_ssr/store-BjXC623Z.mjs +0 -2
- package/.output/server/_ssr/tokens-BCOvumer.mjs +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { U as getArtifactSync, Y as getGateway, q as getCliGateway } from "./boot-
|
|
1
|
+
import { U as getArtifactSync, Y as getGateway, q as getCliGateway } from "./boot-BZ-YyUiD.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-CbAfO4Ne.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-B67XLJZt.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-CbAfO4Ne.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-nff_yHzH.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-DNeo3vVt.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/dist-BGjVt6NE.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 { J as getEnvVar, a as BetterAuthError, z as env } from "./boot-
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/factory-
|
|
1
|
+
import { J as getEnvVar, a as BetterAuthError, z as env } from "./boot-BZ-YyUiD.mjs";
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/factory-DNeo3vVt.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,13 +1,13 @@
|
|
|
1
1
|
import { o as __toESM } from "../_runtime.mjs";
|
|
2
2
|
import { g as require_jsx_runtime, h as require_react } from "../_libs/@base-ui/react+[...].mjs";
|
|
3
|
-
import { l as btnPrimary } from "./ui-
|
|
3
|
+
import { l as btnPrimary } from "./ui-B6mE5-5v.mjs";
|
|
4
4
|
import { d as useNavigate } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
5
|
-
import { i as PievoLogo, s as useSession } from "./LoopPlaybook-
|
|
5
|
+
import { i as PievoLogo, s as useSession } from "./LoopPlaybook-C86vJIjZ.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-BBIbatdZ.mjs";
|
|
8
|
+
import { t as Route } from "./invite._token-z3PzCMzb.mjs";
|
|
9
|
+
import { t as SignIn } from "./SignIn-BQQiD3Ss.mjs";
|
|
10
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-Bipap1cl.js
|
|
11
11
|
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
12
12
|
var import_jsx_runtime = require_jsx_runtime();
|
|
13
13
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
|
|
2
2
|
import { f as useRouter } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
3
|
-
import { r as LoadErrorCard } from "./actionUi-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-
|
|
3
|
+
import { r as LoadErrorCard } from "./actionUi-BKF6xI3d.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-BlbVjz-o.js
|
|
5
5
|
var import_jsx_runtime = require_jsx_runtime();
|
|
6
6
|
/**
|
|
7
7
|
* Invite-link redeem (`/invite/<token>`, design §4 option B). The recipient opens
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
2
|
-
import { c as getAuthState } from "./loopApi-
|
|
3
|
-
import { a as authClient } from "./LoopPlaybook-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-
|
|
5
|
-
var $$splitErrorComponentImporter = () => import("./invite._token-
|
|
6
|
-
var $$splitComponentImporter = () => import("./invite._token-
|
|
2
|
+
import { c as getAuthState } from "./loopApi-7MTSs6hy.mjs";
|
|
3
|
+
import { a as authClient } from "./LoopPlaybook-C86vJIjZ.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/invite._token-z3PzCMzb.js
|
|
5
|
+
var $$splitErrorComponentImporter = () => import("./invite._token-BlbVjz-o.mjs");
|
|
6
|
+
var $$splitComponentImporter = () => import("./invite._token-Bipap1cl.mjs");
|
|
7
7
|
/**
|
|
8
8
|
* Invite-link redeem (`/invite/<token>`, design §4 option B). The recipient opens
|
|
9
9
|
* the link the owner shared; if signed out (under the gate) they hit the normal
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as kyselyAdapter, t as createKyselyAdapter } from "./auth-
|
|
1
|
+
import { r as kyselyAdapter, t as createKyselyAdapter } from "./auth-CbAfO4Ne.mjs";
|
|
2
2
|
export { createKyselyAdapter, kyselyAdapter };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/lifecycleUi-
|
|
1
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/lifecycleUi-5jMhxINb.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
3
|
/** Derive product lifecycle state only from durable server facts. */
|
|
4
4
|
function deriveLoopLifecycle(job) {
|
|
5
5
|
if (job.deleteRequestedAt != null) return "deleting";
|
|
6
|
-
if (job.completedAt != null) return "completed";
|
|
7
6
|
const running = job.runs.find((run) => run.running);
|
|
8
7
|
if (!job.enabled && running?.cancelRequested) return "stopping";
|
|
9
8
|
if (!job.enabled && (job.running || running)) return "paused-finishing";
|
|
@@ -26,7 +25,6 @@ function lifecycleDisplay(detail) {
|
|
|
26
25
|
if (running && detail.machine.daemonProtocol !== 2) return DAEMON_UPGRADE_REQUIRED;
|
|
27
26
|
if (state === "stopping" && running && !detail.machine.online) return `Stopping · waiting for ${detail.machine.name || "machine"}`;
|
|
28
27
|
switch (state) {
|
|
29
|
-
case "completed": return "Completed";
|
|
30
28
|
case "deleting": return "Deleting";
|
|
31
29
|
case "stopping": return "Stopping";
|
|
32
30
|
case "paused-finishing": return detail.summary.pauseCause?.kind === "blocked" ? "Paused — blocked · current run finishing" : detail.summary.pauseCause?.kind === "owner" ? "Paused by owner · current run finishing" : "Paused · current run finishing";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as createServerFn, r as getServerFnById, t as TSS_SERVER_FUNCTION } from "./ssr.mjs";
|
|
2
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/loopApi-
|
|
2
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/loopApi-7MTSs6hy.js
|
|
3
3
|
var createSsrRpc = (functionId) => {
|
|
4
4
|
const url = "/_serverFn/" + functionId;
|
|
5
5
|
const serverFnMeta = { id: functionId };
|
|
@@ -86,9 +86,9 @@ var deleteJob = createServerFn({ method: "POST" }).validator((id) => id).handler
|
|
|
86
86
|
createServerFn({ method: "POST" }).validator((d) => d).handler(createSsrRpc("0cb2218861830aae4338b814b3819e15100942beab970bc4c188f88b8cb6bc7e"));
|
|
87
87
|
var runJob = createServerFn({ method: "POST" }).validator((id) => id).handler(createSsrRpc("0c9031f2f6a9ac0b1c60075833169755ef1815324918d1426c966ac8db563798"));
|
|
88
88
|
var evolveJob = createServerFn({ method: "POST" }).validator((id) => id).handler(createSsrRpc("8a11b8d76ad42203a4bf128db0b8e0f2d6c947300dbee7a51498418404f211cd"));
|
|
89
|
-
/** Agent-
|
|
90
|
-
* updated in place;
|
|
91
|
-
var
|
|
89
|
+
/** Agent-first steer: durably queue an owner instruction. A pending steer is
|
|
90
|
+
* updated in place; a steer already running gets one follow-up. */
|
|
91
|
+
var requestSteer = createServerFn({ method: "POST" }).validator((d) => d).handler(createSsrRpc("38b831a8de4883e3d877f2169eaebde5864a2f256b1c5c790fa669702968cff9"));
|
|
92
92
|
/** Dedicated Stop-run operation. Pending work cancels immediately; running work
|
|
93
93
|
* records intent and stays Running until the daemon reports its actual result. */
|
|
94
94
|
var stopRun = createServerFn({ method: "POST" }).validator((id) => id).handler(createSsrRpc("6850ba403da9dec5aff45794eb52636ca540ddec2d9e59f5c75ccbb852bfeacb"));
|
|
@@ -102,4 +102,4 @@ var mintClaim = createServerFn({ method: "POST" }).validator((teamId) => teamId)
|
|
|
102
102
|
/** Poll a claim while the New-loop dialog waits for Claude Code to create the loop. */
|
|
103
103
|
var claimStatus = createServerFn({ method: "GET" }).validator((token) => token).handler(createSsrRpc("4b0db7d6c8f25383a3526598cb0c1881db6cf413e451e9478687c05666461347"));
|
|
104
104
|
//#endregion
|
|
105
|
-
export { stopJob as C, startJob as S, mintClaim as _, evolveJob as a,
|
|
105
|
+
export { stopJob as C, startJob as S, mintClaim as _, evolveJob as a, requestSteer as b, getAuthState as c, getJobDetail as d, getRunDiff as f, loadOlderRuns as g, listTemplates as h, deleteJob as i, getConfig as l, listMyTeams as m, claimStatus as n, getArtifact as o, listJobs as p, createSsrRpc as r, getArtifacts as s, canViewTeam as t, getDefaultTeam as u, patchJob as v, stopRun as w, runJob as x, pauseJob as y };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $ as getMachine,
|
|
1
|
+
import { $ as getMachine, $t as tryDeleteLoop, Et as listRunsBefore, It as normalizeProviderSetting, K as getChannel, L as ensureServer, Lt as pauseLoop, Nt as machinePresence, Ot as listTeamsForUser, Q as getLoop, Ut as requestDeleteLoop, V as forceDeleteLoop, Wt as requestRunCancel, Xt as stopLoop, Yt as startLoop, _ as canEvolve, b as coerceUi, en as updateLoop, in as validateSteerInstruction, it as getTeamMember, nt as getRun, ot as hasRunningRun, rn as validateSchema, rt as getTeam, xt as listLoops, y as coerceCodingAgent } from "./boot-BZ-YyUiD.mjs";
|
|
2
2
|
import { n as createServerFn } from "./ssr.mjs";
|
|
3
|
-
import { i as toRunSummary, n as toJobDetail, r as toJobSummary } from "./adapters-
|
|
4
|
-
import { canAccessLoop, requestScope } from "./auth-
|
|
3
|
+
import { i as toRunSummary, n as toJobDetail, r as toJobSummary } from "./adapters-N4-yQ1vK.mjs";
|
|
4
|
+
import { canAccessLoop, requestScope } from "./auth-CbAfO4Ne.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-JzGGZZp2.js
|
|
7
7
|
var meta_default$6 = {
|
|
8
8
|
name: "dependency-triage",
|
|
9
9
|
label: "Dependency Triage",
|
|
@@ -25,8 +25,8 @@ var meta_default$4 = {
|
|
|
25
25
|
var meta_default$3 = {
|
|
26
26
|
name: "follow-up-tracker",
|
|
27
27
|
label: "Follow-up Tracker",
|
|
28
|
-
desc: "A
|
|
29
|
-
description: "Look at what was just built or shipped in this session and set up a loop that tracks its aftermath. Before creating anything, verify a concrete way to observe the outcome exists on this machine - logs, metrics or MCP tools, a URL to check, or gh - and run it once as a smoke test; if nothing can actually be observed, say so and do not create a blind loop. Define a concrete
|
|
28
|
+
desc: "A continuous loop that watches what happens after something you just shipped and surfaces regressions against a standing objective. Works best pasted right after finishing the task you want tracked.",
|
|
29
|
+
description: "Look at what was just built or shipped in this session and set up a loop that tracks its aftermath. Before creating anything, verify a concrete way to observe the outcome exists on this machine - logs, metrics or MCP tools, a URL to check, or gh - and run it once as a smoke test; if nothing can actually be observed, say so and do not create a blind loop. Define a concrete standing objective. Propose a cadence that fits the thing being tracked (a few runs per day is a common default) and confirm it with me. On each run, observe through the verified path, report what you find (and every declared metric), and keep watching after the target is met so regressions remain visible; the owner decides when to pause or delete the loop. Set up a modest dashboard at creation: an embed of the latest report, plus a metric chart when a metric was defined."
|
|
30
30
|
};
|
|
31
31
|
var meta_default$2 = {
|
|
32
32
|
name: "housekeeper",
|
|
@@ -49,7 +49,7 @@ var meta_default = {
|
|
|
49
49
|
var thumb_default$6 = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of the loop's dashboard: the merged / deferred / blocked triage\n kanban over the open-dependency-PR count easing down. Colors ride the\n app's CSS variables. -->\n <rect x=\"10\" y=\"8\" width=\"36\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-green, #009b48)\"/>\n <rect x=\"10.5\" y=\"16.5\" width=\"35\" height=\"15\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"15\" y=\"21\" width=\"20\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <path d=\"M37 23l2 2 3.5-4\" stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <rect x=\"10.5\" y=\"36.5\" width=\"35\" height=\"15\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"15\" y=\"41\" width=\"24\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"15\" y=\"46\" width=\"14\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"54\" y=\"8\" width=\"36\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-yellow, #ffd500)\"/>\n <rect x=\"54.5\" y=\"16.5\" width=\"35\" height=\"15\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"59\" y=\"21\" width=\"22\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"59\" y=\"26\" width=\"12\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"98\" y=\"8\" width=\"36\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-red, #b71234)\"/>\n <rect x=\"98.5\" y=\"16.5\" width=\"35\" height=\"15\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"103\" y=\"21\" width=\"18\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <circle cx=\"127\" cy=\"24\" r=\"2.5\" stroke=\"var(--color-rubik-red, #b71234)\" stroke-width=\"1.4\"/>\n <path d=\"M125.3 22.3l3.4 3.4\" stroke=\"var(--color-rubik-red, #b71234)\" stroke-width=\"1.4\" stroke-linecap=\"round\"/>\n <rect x=\"54\" y=\"42\" width=\"24\" height=\"7\" rx=\"3.5\" fill=\"var(--color-interactive-soft, rgba(0,70,173,0.08))\"/>\n <path d=\"M60 47.5v-4m0 0l-1.7 1.7M60 43.5l1.7 1.7\" stroke=\"var(--color-rubik-blue, #0046ad)\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <rect x=\"65\" y=\"44.5\" width=\"10\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-rubik-blue, #0046ad)\" opacity=\"0.5\"/>\n <path d=\"M12 74h122\" stroke=\"var(--color-hairline, #e3e5ea)\" stroke-width=\"1.2\"/>\n <path d=\"M12 60 36 63 60 61 84 67 108 66 132 70\" stroke=\"var(--color-rubik-blue, #0046ad)\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <rect x=\"12\" y=\"55\" width=\"20\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n</svg>\n";
|
|
50
50
|
var thumb_default$5 = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of the loop's dashboard: a doc page with stale lines caught and\n corrected, beside the drift count trending to zero. Colors ride the\n app's CSS variables. -->\n <rect x=\"10.5\" y=\"8.5\" width=\"61\" height=\"63\" rx=\"5\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"17\" y=\"15\" width=\"30\" height=\"3\" rx=\"1.5\" fill=\"var(--color-wire, #cfd3db)\"/>\n <g fill=\"var(--color-hairline, #e3e5ea)\">\n <rect x=\"17\" y=\"25\" width=\"48\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"17\" y=\"31\" width=\"40\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"17\" y=\"49\" width=\"48\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"17\" y=\"61\" width=\"28\" height=\"2.5\" rx=\"1.25\"/>\n </g>\n <rect x=\"17\" y=\"37\" width=\"44\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-rubik-orange, #ff5800)\" opacity=\"0.45\"/>\n <path d=\"M15 38.25h48\" stroke=\"var(--color-rubik-orange, #ff5800)\" stroke-width=\"1.2\" stroke-linecap=\"round\"/>\n <rect x=\"17\" y=\"43\" width=\"38\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <path d=\"M58 43.5l2 2 3.5-4\" stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <rect x=\"17\" y=\"55\" width=\"34\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-rubik-orange, #ff5800)\" opacity=\"0.45\"/>\n <path d=\"M15 56.25h40\" stroke=\"var(--color-rubik-orange, #ff5800)\" stroke-width=\"1.2\" stroke-linecap=\"round\"/>\n <rect x=\"80\" y=\"12\" width=\"24\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-orange, #ff5800)\"/>\n <path d=\"M80 66h54\" stroke=\"var(--color-hairline, #e3e5ea)\" stroke-width=\"1.2\"/>\n <path d=\"M81 26 92 33 103 31 114 45 125 56 133 64\" stroke=\"var(--color-rubik-orange, #ff5800)\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"133\" cy=\"64\" r=\"3\" fill=\"var(--color-rubik-green, #009b48)\"/>\n</svg>\n";
|
|
51
51
|
var thumb_default$4 = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of the loop's mechanics: a production log pane with an incident\n traced to a verified fix PR, and the actionable-error count falling.\n Colors ride the app's CSS variables. -->\n <rect x=\"10.5\" y=\"8.5\" width=\"62\" height=\"63\" rx=\"5\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"17\" y=\"15\" width=\"26\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-red, #b71234)\"/>\n <g fill=\"var(--color-hairline, #e3e5ea)\">\n <rect x=\"24\" y=\"26\" width=\"40\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"24\" y=\"50\" width=\"42\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"24\" y=\"62\" width=\"30\" height=\"2.5\" rx=\"1.25\"/>\n </g>\n <circle cx=\"19.5\" cy=\"27.25\" r=\"1.5\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"15\" y=\"34.5\" width=\"53\" height=\"9\" rx=\"3\" fill=\"var(--color-rubik-red, #b71234)\" opacity=\"0.08\"/>\n <circle cx=\"19.5\" cy=\"39\" r=\"2\" fill=\"var(--color-rubik-red, #b71234)\"/>\n <rect x=\"24\" y=\"37.75\" width=\"38\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <circle cx=\"19.5\" cy=\"51.25\" r=\"1.5\" fill=\"var(--color-wire, #cfd3db)\"/>\n <circle cx=\"19.5\" cy=\"63.25\" r=\"1.5\" fill=\"var(--color-wire, #cfd3db)\"/>\n <path d=\"M72 39h16\" stroke=\"var(--color-wire, #cfd3db)\" stroke-width=\"1.2\" stroke-dasharray=\"3 3\"/>\n <rect x=\"90.5\" y=\"28.5\" width=\"43\" height=\"21\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"96\" y=\"34\" width=\"22\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"96\" y=\"40\" width=\"14\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n <circle cx=\"125\" cy=\"39\" r=\"5.5\" fill=\"var(--color-success-soft, rgba(0,155,72,0.1))\"/>\n <path d=\"M122.5 39l1.8 1.8 3.2-3.6\" stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <rect x=\"90\" y=\"12\" width=\"20\" height=\"3\" rx=\"1.5\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n <path d=\"M90 68h44\" stroke=\"var(--color-hairline, #e3e5ea)\" stroke-width=\"1.2\"/>\n <path d=\"M91 56 100 59 109 57 118 63 127 65 133 66.5\" stroke=\"var(--color-rubik-red, #b71234)\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <circle cx=\"133\" cy=\"66.5\" r=\"2.5\" fill=\"var(--color-rubik-green, #009b48)\"/>\n</svg>\n";
|
|
52
|
-
var thumb_default$3 = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of
|
|
52
|
+
var thumb_default$3 = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of an ongoing loop tracking a standing objective through observed\n checkpoints. Colors ride the app's CSS variables. -->\n <rect x=\"10\" y=\"8\" width=\"62\" height=\"11\" rx=\"5.5\" fill=\"var(--color-success-soft, rgba(0,155,72,0.1))\"/>\n <circle cx=\"18\" cy=\"13.5\" r=\"2\" fill=\"var(--color-rubik-green, #009b48)\"/>\n <rect x=\"24\" y=\"12.5\" width=\"40\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-rubik-green, #009b48)\" opacity=\"0.55\"/>\n <g stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <circle cx=\"17\" cy=\"31\" r=\"4.5\" fill=\"none\"/>\n <path d=\"M15 31l1.6 1.6 2.8-3\"/>\n <circle cx=\"17\" cy=\"46\" r=\"4.5\" fill=\"none\"/>\n <path d=\"M15 46l1.6 1.6 2.8-3\"/>\n </g>\n <circle cx=\"17\" cy=\"61\" r=\"4.5\" stroke=\"var(--color-wire, #cfd3db)\" stroke-width=\"1.5\" fill=\"none\"/>\n <g fill=\"var(--color-wire, #cfd3db)\">\n <rect x=\"28\" y=\"29.5\" width=\"52\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"28\" y=\"44.5\" width=\"44\" height=\"2.5\" rx=\"1.25\"/>\n </g>\n <g fill=\"var(--color-hairline, #e3e5ea)\">\n <rect x=\"28\" y=\"35\" width=\"34\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"28\" y=\"50\" width=\"28\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"28\" y=\"59.5\" width=\"48\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"28\" y=\"65\" width=\"20\" height=\"2.5\" rx=\"1.25\"/>\n </g>\n <path d=\"M96 40h14\" stroke=\"var(--color-wire, #cfd3db)\" stroke-width=\"1.2\" stroke-dasharray=\"3 3\"/>\n <circle cx=\"121\" cy=\"40\" r=\"9\" fill=\"var(--color-success-soft, rgba(0,155,72,0.1))\"/>\n <path d=\"M116.5 40l3 3 5.5-6\" stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n";
|
|
53
53
|
var thumb_default$2 = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of the loop's mechanics: one proven deletion kept only because the\n checks stay green, a deferred candidate parked, and cleanups landing\n over time. Colors ride the app's CSS variables. -->\n <rect x=\"10.5\" y=\"8.5\" width=\"80\" height=\"63\" rx=\"5\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"17\" y=\"15\" width=\"34\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-yellow, #ffd500)\"/>\n <g fill=\"var(--color-hairline, #e3e5ea)\">\n <rect x=\"17\" y=\"25\" width=\"60\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"17\" y=\"43\" width=\"64\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"17\" y=\"61\" width=\"42\" height=\"2.5\" rx=\"1.25\"/>\n </g>\n <rect x=\"15\" y=\"31.5\" width=\"70\" height=\"8\" rx=\"3\" fill=\"var(--color-rubik-red, #b71234)\" opacity=\"0.08\"/>\n <rect x=\"19\" y=\"34.25\" width=\"3.5\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-rubik-red, #b71234)\"/>\n <rect x=\"26\" y=\"34.25\" width=\"46\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <path d=\"M26 35.5h46\" stroke=\"var(--color-rubik-red, #b71234)\" stroke-width=\"1.2\" stroke-linecap=\"round\"/>\n <circle cx=\"20.5\" cy=\"53.25\" r=\"2\" fill=\"var(--color-rubik-yellow, #ffd500)\"/>\n <rect x=\"26\" y=\"52\" width=\"38\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"68\" y=\"50\" width=\"14\" height=\"6\" rx=\"3\" fill=\"var(--color-interactive-soft, rgba(0,70,173,0.08))\"/>\n <circle cx=\"113\" cy=\"22\" r=\"9\" fill=\"var(--color-success-soft, rgba(0,155,72,0.1))\"/>\n <path d=\"M108.5 22l3 3 5.5-6\" stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <g fill=\"var(--color-rubik-green, #009b48)\">\n <rect x=\"99\" y=\"60\" width=\"6\" height=\"8\" rx=\"1.5\" opacity=\"0.35\"/>\n <rect x=\"108\" y=\"55\" width=\"6\" height=\"13\" rx=\"1.5\" opacity=\"0.55\"/>\n <rect x=\"117\" y=\"50\" width=\"6\" height=\"18\" rx=\"1.5\" opacity=\"0.75\"/>\n <rect x=\"126\" y=\"44\" width=\"6\" height=\"24\" rx=\"1.5\"/>\n </g>\n</svg>\n";
|
|
54
54
|
var thumb_default$1 = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of the loop's dashboard: a calendar of dated reports beside the\n newest report. Colors ride the app's CSS variables. -->\n <rect x=\"10\" y=\"10\" width=\"16\" height=\"3\" rx=\"1.5\" fill=\"var(--color-wire, #cfd3db)\"/>\n <g stroke=\"var(--color-hairline, #e3e5ea)\" fill=\"var(--color-surface, #fff)\">\n <rect x=\"10.5\" y=\"18.5\" width=\"15\" height=\"13\" rx=\"3\"/><rect x=\"29.5\" y=\"18.5\" width=\"15\" height=\"13\" rx=\"3\"/><rect x=\"48.5\" y=\"18.5\" width=\"15\" height=\"13\" rx=\"3\"/>\n <rect x=\"10.5\" y=\"35.5\" width=\"15\" height=\"13\" rx=\"3\"/><rect x=\"29.5\" y=\"35.5\" width=\"15\" height=\"13\" rx=\"3\"/><rect x=\"48.5\" y=\"35.5\" width=\"15\" height=\"13\" rx=\"3\"/>\n <rect x=\"10.5\" y=\"52.5\" width=\"15\" height=\"13\" rx=\"3\"/><rect x=\"29.5\" y=\"52.5\" width=\"15\" height=\"13\" rx=\"3\"/><rect x=\"48.5\" y=\"52.5\" width=\"15\" height=\"13\" rx=\"3\"/>\n </g>\n <g fill=\"var(--color-rubik-blue, #0046ad)\">\n <circle cx=\"18\" cy=\"25\" r=\"2\"/><circle cx=\"37\" cy=\"25\" r=\"2\"/><circle cx=\"56\" cy=\"25\" r=\"2\"/>\n <circle cx=\"18\" cy=\"42\" r=\"2\"/><circle cx=\"37\" cy=\"42\" r=\"2\"/>\n </g>\n <rect x=\"72.5\" y=\"10.5\" width=\"61\" height=\"59\" rx=\"5\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"79\" y=\"18\" width=\"28\" height=\"3\" rx=\"1.5\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"112\" y=\"17\" width=\"16\" height=\"5\" rx=\"2.5\" fill=\"var(--color-interactive-soft, rgba(0,70,173,0.08))\"/>\n <g fill=\"var(--color-hairline, #e3e5ea)\">\n <rect x=\"79\" y=\"28\" width=\"48\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"79\" y=\"34\" width=\"42\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"79\" y=\"40\" width=\"48\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"79\" y=\"46\" width=\"34\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"79\" y=\"56\" width=\"44\" height=\"2.5\" rx=\"1.25\"/>\n <rect x=\"79\" y=\"62\" width=\"26\" height=\"2.5\" rx=\"1.25\"/>\n </g>\n</svg>\n";
|
|
55
55
|
var thumb_default = "<svg viewBox=\"0 0 144 80\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <!-- Mock of the loop's dashboard: a PR kanban (open -> merged) over the\n health-score trend. Colors ride the app's CSS variables. -->\n <rect x=\"10\" y=\"8\" width=\"58\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-yellow, #ffd500)\"/>\n <rect x=\"10.5\" y=\"16.5\" width=\"57\" height=\"15\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"16\" y=\"21\" width=\"30\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"16\" y=\"26\" width=\"20\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"10.5\" y=\"36.5\" width=\"57\" height=\"15\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"16\" y=\"41\" width=\"36\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <rect x=\"16\" y=\"46\" width=\"24\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"76\" y=\"8\" width=\"58\" height=\"3\" rx=\"1.5\" fill=\"var(--color-rubik-green, #009b48)\"/>\n <rect x=\"76.5\" y=\"16.5\" width=\"57\" height=\"15\" rx=\"4\" fill=\"var(--color-surface, #fff)\" stroke=\"var(--color-hairline, #e3e5ea)\"/>\n <rect x=\"82\" y=\"21\" width=\"28\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-wire, #cfd3db)\"/>\n <path d=\"M122 23.5l2.5 2.5 4.5-5\" stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 70 38 68 64 61 90 63 116 55 132 51\" stroke=\"var(--color-rubik-green, #009b48)\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <rect x=\"12\" y=\"59\" width=\"22\" height=\"2.5\" rx=\"1.25\" fill=\"var(--color-hairline, #e3e5ea)\"/>\n</svg>\n";
|
|
@@ -135,7 +135,7 @@ var getAuthState_createServerFn_handler = createServerRpc({
|
|
|
135
135
|
filename: "src/server/loopApi.ts"
|
|
136
136
|
}, (opts) => getAuthState.__executeServer(opts));
|
|
137
137
|
var getAuthState = createServerFn({ method: "GET" }).handler(getAuthState_createServerFn_handler, async () => {
|
|
138
|
-
const { authEnabled } = await import("./auth-
|
|
138
|
+
const { authEnabled } = await import("./auth-CbAfO4Ne.mjs");
|
|
139
139
|
return { enabled: authEnabled };
|
|
140
140
|
});
|
|
141
141
|
var getConfig_createServerFn_handler = createServerRpc({
|
|
@@ -244,7 +244,7 @@ var getArtifacts_createServerFn_handler = createServerRpc({
|
|
|
244
244
|
var getArtifacts = createServerFn({ method: "GET" }).validator((d) => d).handler(getArtifacts_createServerFn_handler, async ({ data }) => {
|
|
245
245
|
await backend();
|
|
246
246
|
if (!await ownedLoop(data.loopId)) return [];
|
|
247
|
-
const { listLoopArtifacts } = await import("./artifactFiles-
|
|
247
|
+
const { listLoopArtifacts } = await import("./artifactFiles-Dl1EaUtJ.mjs");
|
|
248
248
|
return listLoopArtifacts(data.loopId);
|
|
249
249
|
});
|
|
250
250
|
var getArtifact_createServerFn_handler = createServerRpc({
|
|
@@ -255,7 +255,7 @@ var getArtifact_createServerFn_handler = createServerRpc({
|
|
|
255
255
|
var getArtifact = createServerFn({ method: "GET" }).validator((d) => d).handler(getArtifact_createServerFn_handler, async ({ data }) => {
|
|
256
256
|
await backend();
|
|
257
257
|
if (!await ownedLoop(data.loopId)) return { error: "file not found" };
|
|
258
|
-
const { readLoopArtifact } = await import("./artifactFiles-
|
|
258
|
+
const { readLoopArtifact } = await import("./artifactFiles-Dl1EaUtJ.mjs");
|
|
259
259
|
return readLoopArtifact(data.loopId, data.path);
|
|
260
260
|
});
|
|
261
261
|
var getRunDiff_createServerFn_handler = createServerRpc({
|
|
@@ -274,7 +274,7 @@ var getRunDiff = createServerFn({ method: "GET" }).validator((d) => d).handler(g
|
|
|
274
274
|
hasSnapshot: false,
|
|
275
275
|
files: []
|
|
276
276
|
};
|
|
277
|
-
const { computeRunDiff } = await import("./runDiff-
|
|
277
|
+
const { computeRunDiff } = await import("./runDiff-B9t7ouYj.mjs");
|
|
278
278
|
return computeRunDiff(data.runId);
|
|
279
279
|
});
|
|
280
280
|
var listTemplates_createServerFn_handler = createServerRpc({
|
|
@@ -300,6 +300,13 @@ var patchJob = createServerFn({ method: "POST" }).validator((d) => d).handler(pa
|
|
|
300
300
|
if (p.continuousDelayMinutes !== void 0 && (!Number.isInteger(p.continuousDelayMinutes) || p.continuousDelayMinutes < 1)) return { error: "continuousDelayMinutes must be an integer >= 1" };
|
|
301
301
|
if (p.channelId && enforce && (await getChannel(p.channelId))?.teamId !== owned.loop.teamId) return { error: "channel not found" };
|
|
302
302
|
const agent = coerceCodingAgent(p.agent);
|
|
303
|
+
let metricSchema;
|
|
304
|
+
if (p.metricSchema !== void 0) if (p.metricSchema === null) metricSchema = null;
|
|
305
|
+
else {
|
|
306
|
+
const validated = await validateSchema(data.id, p.metricSchema);
|
|
307
|
+
if (!validated.ok) return { error: validated.detail };
|
|
308
|
+
metricSchema = validated.value;
|
|
309
|
+
}
|
|
303
310
|
const loop = await updateLoop(data.id, {
|
|
304
311
|
...p.name !== void 0 ? { name: p.name.trim() || null } : {},
|
|
305
312
|
...p.cron !== void 0 ? { cron: p.cron } : {},
|
|
@@ -311,7 +318,7 @@ var patchJob = createServerFn({ method: "POST" }).validator((d) => d).handler(pa
|
|
|
311
318
|
...agent ? { agent } : {},
|
|
312
319
|
...p.goal !== void 0 ? { goal: p.goal?.trim() || null } : {},
|
|
313
320
|
...p.taskFile !== void 0 ? { taskFile: p.taskFile.trim() || null } : {},
|
|
314
|
-
...p.
|
|
321
|
+
...p.metricSchema !== void 0 ? { metricSchema: metricSchema ?? null } : {},
|
|
315
322
|
...p.ui !== void 0 ? { ui: coerceUi(p.ui) ?? null } : {},
|
|
316
323
|
...p.exec?.workdir !== void 0 ? { workdir: p.exec.workdir.trim() || null } : {},
|
|
317
324
|
...p.exec?.model !== void 0 ? { model: normalizeProviderSetting(p.exec.model) } : {},
|
|
@@ -345,7 +352,6 @@ var startJob = createServerFn({ method: "POST" }).validator((id) => id).handler(
|
|
|
345
352
|
const owned = await ownedLoop(id);
|
|
346
353
|
if (!owned) return { error: "not found" };
|
|
347
354
|
if (owned.loop.deleteRequestedAt) return { error: "loop is being deleted" };
|
|
348
|
-
if (owned.loop.completedAt) return { error: "completed loops must be reopened" };
|
|
349
355
|
const loop = await startLoop(id);
|
|
350
356
|
if (!loop) return { error: "not found" };
|
|
351
357
|
scheduler.addLoop(loop);
|
|
@@ -389,7 +395,7 @@ var deleteJob = createServerFn({ method: "POST" }).validator((id) => id).handler
|
|
|
389
395
|
if (!await requestDeleteLoop(id)) return { error: "not found" };
|
|
390
396
|
if (unreachable && mayRetireAuthority) {
|
|
391
397
|
if (!await forceDeleteLoop(id)) return { error: "delete failed; server data was not deleted" };
|
|
392
|
-
const { logger } = await import("./logger-
|
|
398
|
+
const { logger } = await import("./logger-C7aewtve.mjs");
|
|
393
399
|
logger.child({ mod: "loop-lifecycle" }).warn({
|
|
394
400
|
action: "unreachable-delete",
|
|
395
401
|
loopId: id,
|
|
@@ -429,7 +435,7 @@ var forceDeleteJob = createServerFn({ method: "POST" }).validator((d) => d).hand
|
|
|
429
435
|
}
|
|
430
436
|
scheduler.removeLoop(data.id);
|
|
431
437
|
if (!await forceDeleteLoop(data.id)) return { error: "force delete failed; server data was not deleted" };
|
|
432
|
-
const { logger } = await import("./logger-
|
|
438
|
+
const { logger } = await import("./logger-C7aewtve.mjs");
|
|
433
439
|
logger.child({ mod: "loop-lifecycle" }).warn({
|
|
434
440
|
action: "force-delete",
|
|
435
441
|
loopId: data.id,
|
|
@@ -477,17 +483,17 @@ var evolveJob = createServerFn({ method: "POST" }).validator((id) => id).handler
|
|
|
477
483
|
coalesced: queued.state === "coalesced"
|
|
478
484
|
};
|
|
479
485
|
});
|
|
480
|
-
var
|
|
481
|
-
id: "
|
|
482
|
-
name: "
|
|
486
|
+
var requestSteer_createServerFn_handler = createServerRpc({
|
|
487
|
+
id: "38b831a8de4883e3d877f2169eaebde5864a2f256b1c5c790fa669702968cff9",
|
|
488
|
+
name: "requestSteer",
|
|
483
489
|
filename: "src/server/loopApi.ts"
|
|
484
|
-
}, (opts) =>
|
|
485
|
-
var
|
|
490
|
+
}, (opts) => requestSteer.__executeServer(opts));
|
|
491
|
+
var requestSteer = createServerFn({ method: "POST" }).validator((d) => d).handler(requestSteer_createServerFn_handler, async ({ data }) => {
|
|
486
492
|
const { scheduler } = await backend();
|
|
487
493
|
if (!await ownedLoop(data.id)) return { error: "not found" };
|
|
488
|
-
const instruction = data.instruction
|
|
489
|
-
if (!instruction) return { error:
|
|
490
|
-
const queued = await scheduler.
|
|
494
|
+
const instruction = validateSteerInstruction(data.instruction);
|
|
495
|
+
if (!instruction.ok) return { error: instruction.detail };
|
|
496
|
+
const queued = await scheduler.requestSteer(data.id, instruction.value);
|
|
491
497
|
if (!("run" in queued)) return { error: queued.reason };
|
|
492
498
|
return {
|
|
493
499
|
ok: true,
|
|
@@ -520,7 +526,7 @@ var mintClaim_createServerFn_handler = createServerRpc({
|
|
|
520
526
|
}, (opts) => mintClaim.__executeServer(opts));
|
|
521
527
|
var mintClaim = createServerFn({ method: "POST" }).validator((teamId) => teamId).handler(mintClaim_createServerFn_handler, async ({ data: teamId }) => {
|
|
522
528
|
await backend();
|
|
523
|
-
const { mintDeviceToken, rememberConnectKey } = await import("./tokens-
|
|
529
|
+
const { mintDeviceToken, rememberConnectKey } = await import("./tokens-DI_pklQB.mjs");
|
|
524
530
|
const { userId, teamId: active } = await requestScope(teamId);
|
|
525
531
|
const owner = userId ?? "shared";
|
|
526
532
|
const token = mintDeviceToken();
|
|
@@ -545,4 +551,4 @@ var claimStatus = createServerFn({ method: "GET" }).validator((token) => token).
|
|
|
545
551
|
} : { done: false };
|
|
546
552
|
});
|
|
547
553
|
//#endregion
|
|
548
|
-
export { canViewTeam_createServerFn_handler, claimStatus_createServerFn_handler, deleteJob_createServerFn_handler, evolveJob_createServerFn_handler, forceDeleteJob_createServerFn_handler, getArtifact_createServerFn_handler, getArtifacts_createServerFn_handler, getAuthState_createServerFn_handler, getConfig_createServerFn_handler, getDefaultTeam_createServerFn_handler, getJobDetail_createServerFn_handler, getRunDiff_createServerFn_handler, listJobs_createServerFn_handler, listMyTeams_createServerFn_handler, listTemplates_createServerFn_handler, loadOlderRuns_createServerFn_handler, mintClaim_createServerFn_handler, patchJob_createServerFn_handler, pauseJob_createServerFn_handler,
|
|
554
|
+
export { canViewTeam_createServerFn_handler, claimStatus_createServerFn_handler, deleteJob_createServerFn_handler, evolveJob_createServerFn_handler, forceDeleteJob_createServerFn_handler, getArtifact_createServerFn_handler, getArtifacts_createServerFn_handler, getAuthState_createServerFn_handler, getConfig_createServerFn_handler, getDefaultTeam_createServerFn_handler, getJobDetail_createServerFn_handler, getRunDiff_createServerFn_handler, listJobs_createServerFn_handler, listMyTeams_createServerFn_handler, listTemplates_createServerFn_handler, loadOlderRuns_createServerFn_handler, mintClaim_createServerFn_handler, patchJob_createServerFn_handler, pauseJob_createServerFn_handler, requestSteer_createServerFn_handler, runJob_createServerFn_handler, startJob_createServerFn_handler, stopJob_createServerFn_handler, stopRun_createServerFn_handler };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
2
|
-
import { c as getAuthState } from "./loopApi-
|
|
3
|
-
import { a as authClient } from "./LoopPlaybook-
|
|
4
|
-
//#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-
|
|
5
|
-
var $$splitComponentImporter = () => import("./loops._loopId-
|
|
2
|
+
import { c as getAuthState } from "./loopApi-7MTSs6hy.mjs";
|
|
3
|
+
import { a as authClient } from "./LoopPlaybook-C86vJIjZ.mjs";
|
|
4
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-CJxQ0EG4.js
|
|
5
|
+
var $$splitComponentImporter = () => import("./loops._loopId-DFkyTJR3.mjs");
|
|
6
6
|
/**
|
|
7
7
|
* Loop detail PAGE — `/loops/$loopId`. The dedicated page that replaced the old
|
|
8
8
|
* dashboard modal: a loop header + action toolbar, the unified Files panel (task
|