@kky42/pievo-server 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/app-vKFxjMMk.css +2 -0
  3. package/.output/public/assets/{index-C4UaIr-9.js → index-DSF-1ahT.js} +3 -3
  4. package/.output/public/assets/{invite._token-CnyCmLfD.js → invite._token-Cl9Oarnq.js} +1 -1
  5. package/.output/public/assets/loops._loopId-B-dYxc9i.js +4 -0
  6. package/.output/public/assets/{loops._loopId_.runs._runId-DTwSFHkl.js → loops._loopId_.runs._runId-DepMp3Me.js} +1 -1
  7. package/.output/public/assets/{routes-G3WYRyPN.js → routes-BB4aDC1D.js} +1 -1
  8. package/.output/public/assets/{t._teamId-CGv7Oq6A.js → t._teamId-D552b9PT.js} +1 -1
  9. package/.output/server/_ssr/{CodeField-tm4rr6G3.mjs → CodeField-B7oOmmwH.mjs} +3 -3
  10. package/.output/server/_ssr/{DashboardView-CmDqjCiq.mjs → DashboardView-D3E-zevQ.mjs} +3 -3
  11. package/.output/server/_ssr/{LoopPlaybook-BBn-xXpG.mjs → LoopPlaybook-DJlWGia5.mjs} +2 -2
  12. package/.output/server/_ssr/{LoopView-DdyJYOCY.mjs → LoopView-BtMANpb_.mjs} +2 -2
  13. package/.output/server/_ssr/{SignIn-RJN_0GFZ.mjs → SignIn-CjFonm71.mjs} +2 -2
  14. package/.output/server/_ssr/{adapters-CJUhP66K.mjs → adapters-vbuo_-wD.mjs} +3 -4
  15. package/.output/server/_ssr/{artifactFiles-zP43a-_v.mjs → artifactFiles-BGod8IWQ.mjs} +3 -3
  16. package/.output/server/_ssr/artifacts-CduiDAM2.mjs +2 -0
  17. package/.output/server/_ssr/{auth-D2SlCxwE.mjs → auth-Ca-um-e8.mjs} +9 -9
  18. package/.output/server/_ssr/{boot-BHTcCXzm.mjs → boot-C0f0HGCw.mjs} +1 -1
  19. package/.output/server/_ssr/{boot-aI3l2EYT.mjs → boot-CkFZynUz.mjs} +43 -191
  20. package/.output/server/_ssr/{bun-sqlite-dialect-BW9W1_Ps-B-3PhI3u.mjs → bun-sqlite-dialect-BW9W1_Ps-CG9VPNj0.mjs} +2 -2
  21. package/.output/server/_ssr/{d1-sqlite-dialect-BLC8LXE6-Dm_NrETM.mjs → d1-sqlite-dialect-BLC8LXE6-DBf7xVin.mjs} +2 -2
  22. package/.output/server/_ssr/db-Cs0gnPZZ.mjs +2 -0
  23. package/.output/server/_ssr/{dist-DW3TO9NM.mjs → dist-CwI9FwLx.mjs} +2 -2
  24. package/.output/server/_ssr/{factory-Voe90MEY.mjs → factory-L3gsmDL7.mjs} +2 -2
  25. package/.output/server/_ssr/{invite._token-CeD9PCvh.mjs → invite._token-CN2p7Gt3.mjs} +4 -4
  26. package/.output/server/_ssr/{invite._token-D80GP0-u.mjs → invite._token-KLCPnHk-.mjs} +3 -3
  27. package/.output/server/_ssr/{kysely-adapter-DSLWmYjO.mjs → kysely-adapter-Czkfz-W-.mjs} +1 -1
  28. package/.output/server/_ssr/logger-Cj1GFV_8.mjs +2 -0
  29. package/.output/server/_ssr/{loopApi-ByX_X17-.mjs → loopApi-CVf9RC6s.mjs} +12 -13
  30. package/.output/server/_ssr/{loops._loopId-BODmoHPu.mjs → loops._loopId-CbuhuTAp.mjs} +11 -35
  31. package/.output/server/_ssr/{loops._loopId-u8Dr2J5f.mjs → loops._loopId-gNSxIQBe.mjs} +3 -3
  32. package/.output/server/_ssr/{loops._loopId_.runs._runId-DaKJdso2.mjs → loops._loopId_.runs._runId-0MahUyHy.mjs} +4 -4
  33. package/.output/server/_ssr/{loops._loopId_.runs._runId-kGL-CMG6.mjs → loops._loopId_.runs._runId-BptlCXat.mjs} +3 -3
  34. package/.output/server/_ssr/{machineFns-MMSoHs7N.mjs → machineFns-D5rQWyLl.mjs} +3 -3
  35. package/.output/server/_ssr/{node-sqlite-dialect-Y22MTyEv.mjs → node-sqlite-dialect-Dr9_QokR.mjs} +2 -2
  36. package/.output/server/_ssr/{notifyFns-Bmqhlrkc.mjs → notifyFns-BobPaLWi.mjs} +3 -3
  37. package/.output/server/_ssr/{notifyFns-CdrijMGW.mjs → notifyFns-c7ZY2TWF.mjs} +2 -2
  38. package/.output/server/_ssr/{router-CdxedJtm.mjs → router-B8JTBtGd.mjs} +29 -29
  39. package/.output/server/_ssr/{routes-Bhay1OjL.mjs → routes-B-MWifFy.mjs} +5 -5
  40. package/.output/server/_ssr/{routes-ROFun1nJ.mjs → routes-BJCWMIzb.mjs} +4 -4
  41. package/.output/server/_ssr/{runDiff-DWwt7qXb.mjs → runDiff-C0w1D4a3.mjs} +2 -2
  42. package/.output/server/_ssr/ssr.mjs +48 -48
  43. package/.output/server/_ssr/store-LYphMSJ-.mjs +2 -0
  44. package/.output/server/_ssr/{t._teamId-DTKU7GOp.mjs → t._teamId-FYVEIAGw.mjs} +5 -5
  45. package/.output/server/_ssr/{t._teamId-CGba9PRq.mjs → t._teamId-fw8RfHyI.mjs} +4 -4
  46. package/.output/server/_ssr/{teamFns-BMDqynoT.mjs → teamFns-Dz41U7gA.mjs} +3 -3
  47. package/.output/server/_ssr/{tokens-BHjz7Lvx.mjs → tokens-3ZFpqsuf.mjs} +1 -1
  48. package/.output/server/{_tanstack-start-manifest_v-BwejIUux.mjs → _tanstack-start-manifest_v-C9p30TZH.mjs} +10 -10
  49. package/.output/server/drizzle/0011_steep_marvel_zombies.sql +3 -0
  50. package/.output/server/drizzle/meta/0011_snapshot.json +1872 -0
  51. package/.output/server/drizzle/meta/_journal.json +7 -0
  52. package/.output/server/index.mjs +90 -90
  53. package/drizzle/0011_steep_marvel_zombies.sql +3 -0
  54. package/drizzle/meta/0011_snapshot.json +1872 -0
  55. package/drizzle/meta/_journal.json +7 -0
  56. package/package.json +1 -1
  57. package/.output/public/assets/app-BKySt9Ta.css +0 -2
  58. package/.output/public/assets/loops._loopId-DdWM2f1F.js +0 -5
  59. package/.output/server/_ssr/artifacts-CwCDal_d.mjs +0 -2
  60. package/.output/server/_ssr/db-7gZ8_zkc.mjs +0 -2
  61. package/.output/server/_ssr/logger-Dbz2vUU-.mjs +0 -2
  62. package/.output/server/_ssr/store-D75hcTob.mjs +0 -2
@@ -1,6 +1,6 @@
1
- import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-D2SlCxwE.mjs";
1
+ import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-Ca-um-e8.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-B-3PhI3u.js
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/bun-sqlite-dialect-BW9W1_Ps-CG9VPNj0.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-D2SlCxwE.mjs";
1
+ import { a as SqliteQueryCompiler, i as SqliteAdapter } from "./auth-Ca-um-e8.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-Dm_NrETM.js
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/d1-sqlite-dialect-BLC8LXE6-DBf7xVin.js
4
4
  var D1SqliteAdapter = class extends SqliteAdapter {};
5
5
  var D1SqliteDriver = class {
6
6
  #config;
@@ -0,0 +1,2 @@
1
+ import { k as db } from "./boot-CkFZynUz.mjs";
2
+ export { db };
@@ -1,5 +1,5 @@
1
- import { _ as logger, o as createAdapterFactory } from "./factory-Voe90MEY.mjs";
2
- //#region node_modules/.nitro/vite/services/ssr/assets/dist-DW3TO9NM.js
1
+ import { _ as logger, o as createAdapterFactory } from "./factory-L3gsmDL7.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/dist-CwI9FwLx.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 { K as getEnvVar, L as env, a as BetterAuthError } from "./boot-aI3l2EYT.mjs";
2
- //#region node_modules/.nitro/vite/services/ssr/assets/factory-Voe90MEY.js
1
+ import { K as getEnvVar, L as env, a as BetterAuthError } from "./boot-CkFZynUz.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/factory-L3gsmDL7.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) => {
@@ -2,12 +2,12 @@ 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
3
  import { l as btnPrimary } from "./ui-Dej2qjuS.mjs";
4
4
  import { d as useNavigate } from "../_libs/@tanstack/react-router+[...].mjs";
5
- import { i as PievoLogo, s as useSession } from "./LoopPlaybook-BBn-xXpG.mjs";
5
+ import { i as PievoLogo, s as useSession } from "./LoopPlaybook-DJlWGia5.mjs";
6
6
  import { t as setActiveTeamCookie } from "./teamCookie-B7hLOIie.mjs";
7
7
  import { c as redeemTeamInvite } from "./teamFns-D4I-0dEB.mjs";
8
- import { t as Route } from "./invite._token-D80GP0-u.mjs";
9
- import { t as SignIn } from "./SignIn-RJN_0GFZ.mjs";
10
- //#region node_modules/.nitro/vite/services/ssr/assets/invite._token-CeD9PCvh.js
8
+ import { t as Route } from "./invite._token-KLCPnHk-.mjs";
9
+ import { t as SignIn } from "./SignIn-CjFonm71.mjs";
10
+ //#region node_modules/.nitro/vite/services/ssr/assets/invite._token-CN2p7Gt3.js
11
11
  var import_react = /* @__PURE__ */ __toESM(require_react());
12
12
  var import_jsx_runtime = require_jsx_runtime();
13
13
  /**
@@ -1,9 +1,9 @@
1
1
  import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
2
2
  import { c as getAuthState } from "./loopApi-BfMnXaKT.mjs";
3
- import { a as authClient } from "./LoopPlaybook-BBn-xXpG.mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/invite._token-D80GP0-u.js
3
+ import { a as authClient } from "./LoopPlaybook-DJlWGia5.mjs";
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/invite._token-KLCPnHk-.js
5
5
  var $$splitErrorComponentImporter = () => import("./invite._token-DJxGLILJ.mjs");
6
- var $$splitComponentImporter = () => import("./invite._token-CeD9PCvh.mjs");
6
+ var $$splitComponentImporter = () => import("./invite._token-CN2p7Gt3.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-D2SlCxwE.mjs";
1
+ import { r as kyselyAdapter, t as createKyselyAdapter } from "./auth-Ca-um-e8.mjs";
2
2
  export { createKyselyAdapter, kyselyAdapter };
@@ -0,0 +1,2 @@
1
+ import { Dt as logger } from "./boot-CkFZynUz.mjs";
2
+ export { logger };
@@ -1,9 +1,9 @@
1
- import { $t as updateLoop, Et as listTeamsForUser, F as ensureServer, Ft as pauseLoop, Ht as requestDeleteLoop, Jt as startLoop, Pt as normalizeProviderSetting, Qt as tryDeleteLoop, Ut as requestRunCancel, W as getChannel, X as getLoop, Yt as stopLoop, Z as getMachine, at as hasRunningRun, b as coerceUi, et as getRun, g as canEvolve, jt as machinePresence, nt as getTeam, rt as getTeamMember, v as coerceCodingAgent, wt as listRunsBefore, y as coerceStateSchema, yt as listLoops, z as forceDeleteLoop } from "./boot-aI3l2EYT.mjs";
1
+ import { $t as updateLoop, Et as listTeamsForUser, F as ensureServer, Ft as pauseLoop, Ht as requestDeleteLoop, Jt as startLoop, Pt as normalizeProviderSetting, Qt as tryDeleteLoop, Ut as requestRunCancel, W as getChannel, X as getLoop, Yt as stopLoop, Z as getMachine, at as hasRunningRun, b as coerceUi, et as getRun, g as canEvolve, jt as machinePresence, nt as getTeam, rt as getTeamMember, v as coerceCodingAgent, wt as listRunsBefore, y as coerceStateSchema, yt as listLoops, z as forceDeleteLoop } from "./boot-CkFZynUz.mjs";
2
2
  import { n as createServerFn } from "./ssr.mjs";
3
- import { i as toRunSummary, n as toJobDetail, r as toJobSummary } from "./adapters-CJUhP66K.mjs";
4
- import { canAccessLoop, requestScope } from "./auth-D2SlCxwE.mjs";
3
+ import { i as toRunSummary, n as toJobDetail, r as toJobSummary } from "./adapters-vbuo_-wD.mjs";
4
+ import { canAccessLoop, requestScope } from "./auth-Ca-um-e8.mjs";
5
5
  import { t as createServerRpc } from "./createServerRpc-BD8Xn_0_.mjs";
6
- //#region node_modules/.nitro/vite/services/ssr/assets/loopApi-ByX_X17-.js
6
+ //#region node_modules/.nitro/vite/services/ssr/assets/loopApi-CVf9RC6s.js
7
7
  var meta_default$6 = {
8
8
  name: "dependency-triage",
9
9
  label: "Dependency Triage",
@@ -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-D2SlCxwE.mjs");
138
+ const { authEnabled } = await import("./auth-Ca-um-e8.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-zP43a-_v.mjs");
247
+ const { listLoopArtifacts } = await import("./artifactFiles-BGod8IWQ.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-zP43a-_v.mjs");
258
+ const { readLoopArtifact } = await import("./artifactFiles-BGod8IWQ.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-DWwt7qXb.mjs");
277
+ const { computeRunDiff } = await import("./runDiff-C0w1D4a3.mjs");
278
278
  return computeRunDiff(data.runId);
279
279
  });
280
280
  var listTemplates_createServerFn_handler = createServerRpc({
@@ -311,7 +311,6 @@ var patchJob = createServerFn({ method: "POST" }).validator((d) => d).handler(pa
311
311
  ...agent ? { agent } : {},
312
312
  ...p.goal !== void 0 ? { goal: p.goal?.trim() || null } : {},
313
313
  ...p.taskFile !== void 0 ? { taskFile: p.taskFile.trim() || null } : {},
314
- ...p.workflow !== void 0 ? { workflow: p.workflow.trim() || null } : {},
315
314
  ...p.stateSchema !== void 0 ? { stateSchema: coerceStateSchema(p.stateSchema) ?? null } : {},
316
315
  ...p.ui !== void 0 ? { ui: coerceUi(p.ui) ?? null } : {},
317
316
  ...p.exec?.workdir !== void 0 ? { workdir: p.exec.workdir.trim() || null } : {},
@@ -390,7 +389,7 @@ var deleteJob = createServerFn({ method: "POST" }).validator((id) => id).handler
390
389
  if (!await requestDeleteLoop(id)) return { error: "not found" };
391
390
  if (unreachable && mayRetireAuthority) {
392
391
  if (!await forceDeleteLoop(id)) return { error: "delete failed; server data was not deleted" };
393
- const { logger } = await import("./logger-Dbz2vUU-.mjs");
392
+ const { logger } = await import("./logger-Cj1GFV_8.mjs");
394
393
  logger.child({ mod: "loop-lifecycle" }).warn({
395
394
  action: "unreachable-delete",
396
395
  loopId: id,
@@ -430,7 +429,7 @@ var forceDeleteJob = createServerFn({ method: "POST" }).validator((d) => d).hand
430
429
  }
431
430
  scheduler.removeLoop(data.id);
432
431
  if (!await forceDeleteLoop(data.id)) return { error: "force delete failed; server data was not deleted" };
433
- const { logger } = await import("./logger-Dbz2vUU-.mjs");
432
+ const { logger } = await import("./logger-Cj1GFV_8.mjs");
434
433
  logger.child({ mod: "loop-lifecycle" }).warn({
435
434
  action: "force-delete",
436
435
  loopId: data.id,
@@ -468,7 +467,7 @@ var evolveJob = createServerFn({ method: "POST" }).validator((id) => id).handler
468
467
  const { scheduler } = await backend();
469
468
  const owned = await ownedLoop(id);
470
469
  if (!owned) return { error: "not found" };
471
- if (!canEvolve(owned.loop)) return { error: "nothing to evolve - add metrics or a workflow first" };
470
+ if (!canEvolve(owned.loop)) return { error: "nothing to evolve" };
472
471
  const queued = await scheduler.evolveNow(id);
473
472
  if (!("run" in queued)) return { error: queued.reason };
474
473
  return {
@@ -521,7 +520,7 @@ var mintClaim_createServerFn_handler = createServerRpc({
521
520
  }, (opts) => mintClaim.__executeServer(opts));
522
521
  var mintClaim = createServerFn({ method: "POST" }).validator((teamId) => teamId).handler(mintClaim_createServerFn_handler, async ({ data: teamId }) => {
523
522
  await backend();
524
- const { mintDeviceToken, rememberConnectKey } = await import("./tokens-BHjz7Lvx.mjs");
523
+ const { mintDeviceToken, rememberConnectKey } = await import("./tokens-3ZFpqsuf.mjs");
525
524
  const { userId, teamId: active } = await requestScope(teamId);
526
525
  const owner = userId ?? "shared";
527
526
  const token = mintDeviceToken();
@@ -1,18 +1,18 @@
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 { c as CODING_AGENTS, ft as isTaskEntry, h as buildFileEntries } from "./boot-aI3l2EYT.mjs";
3
+ import { c as CODING_AGENTS, ft as isTaskEntry, h as buildFileEntries } from "./boot-CkFZynUz.mjs";
4
4
  import { A as selectCls, C as labelCls, E as rel, M as until, O as runPulseStyle, S as isCompleted, _ as fmt, b as inputCls, c as btnDanger, d as btnQuiet, g as dur, h as dotLabel, i as Pre, j as tsShort, k as sectionHeadCls, l as btnPrimary, m as dotColor, n as Loading, o as btn, p as cronText, r as Pill, s as btnCost, t as ErrorBanner, x as isClosed, y as humanBytes } from "./ui-Dej2qjuS.mjs";
5
5
  import { d as useNavigate, u as Link } from "../_libs/@tanstack/react-router+[...].mjs";
6
6
  import { C as stopJob, S as startJob, a as evolveJob, b as requestEdit, d as getJobDetail, g as loadOlderRuns, i as deleteJob, s as getArtifacts, v as patchJob, x as runJob, y as pauseJob } from "./loopApi-BfMnXaKT.mjs";
7
7
  import { n as TaskFileView, r as ViewerHead, t as ArtifactBody } from "./artifactView-CYV1r48i.mjs";
8
- import { s as useSession } from "./LoopPlaybook-BBn-xXpG.mjs";
8
+ import { s as useSession } from "./LoopPlaybook-DJlWGia5.mjs";
9
9
  import { t as setActiveTeamCookie } from "./teamCookie-B7hLOIie.mjs";
10
- import { t as SignIn } from "./SignIn-RJN_0GFZ.mjs";
10
+ import { t as SignIn } from "./SignIn-CjFonm71.mjs";
11
11
  import { i as useFlash, n as FlashLine, r as LoadErrorCard, t as ConfirmBar } from "./actionUi-CZbEixbf.mjs";
12
12
  import { i as lifecycleDisplay, n as daemonStopSupport, r as deriveLoopLifecycle, t as DAEMON_UPGRADE_REQUIRED } from "./lifecycleUi-BhRsBvJ7.mjs";
13
- import { a as listChannels, n as Timeline, s as mergeRuns, t as MachinesModal } from "./notifyFns-CdrijMGW.mjs";
14
- import { t as Route } from "./loops._loopId-u8Dr2J5f.mjs";
15
- //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-BODmoHPu.js
13
+ import { a as listChannels, n as Timeline, s as mergeRuns, t as MachinesModal } from "./notifyFns-c7ZY2TWF.mjs";
14
+ import { t as Route } from "./loops._loopId-gNSxIQBe.mjs";
15
+ //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-CbuhuTAp.js
16
16
  var import_react = /* @__PURE__ */ __toESM(require_react());
17
17
  var import_jsx_runtime = require_jsx_runtime();
18
18
  /**
@@ -188,7 +188,7 @@ function ArtifactEntryView({ loopId, file }) {
188
188
  * Build the exec slice of a manual form save.
189
189
  *
190
190
  * Always emits so model / reasoningEffort / allowControl ride with Save even
191
- * when workdir is empty (common for taskFile/workflow-only loops). Empty strings
191
+ * when workdir is empty. Empty strings
192
192
  * stay defined so patchJob can clear stored execution settings via `trim() || null` -
193
193
  * do not coerce cleared fields to `undefined` or gate the whole object on workdir.
194
194
  */
@@ -201,7 +201,7 @@ function buildFormExec(f) {
201
201
  allowControl: f.allowControl
202
202
  };
203
203
  }
204
- var CodeField = (0, import_react.lazy)(() => import("./CodeField-tm4rr6G3.mjs"));
204
+ var CodeField = (0, import_react.lazy)(() => import("./CodeField-B7oOmmwH.mjs"));
205
205
  function initState(initial) {
206
206
  const e = initial?.exec;
207
207
  return {
@@ -212,7 +212,6 @@ function initState(initial) {
212
212
  taskFile: initial?.taskFile ?? "",
213
213
  notify: initial?.notify ?? "auto",
214
214
  channelId: initial?.channelId ?? "",
215
- workflow: initial?.workflow ?? "",
216
215
  stateSchema: initial?.stateSchema ? JSON.stringify(initial.stateSchema) : "",
217
216
  ui: initial?.ui ?? "",
218
217
  agent: initial?.agent ?? "claude-code",
@@ -305,7 +304,6 @@ var LoopForm = (0, import_react.forwardRef)(function LoopForm({ initial, channel
305
304
  taskFile: f.taskFile.trim(),
306
305
  notify: f.notify,
307
306
  channelId: f.channelId || null,
308
- workflow: f.workflow.trim(),
309
307
  ui: f.ui.trim() || void 0,
310
308
  agent: f.agent,
311
309
  exec: buildFormExec(f),
@@ -450,7 +448,7 @@ var LoopForm = (0, import_react.forwardRef)(function LoopForm({ initial, channel
450
448
  onChange: (v) => set("workdir", v),
451
449
  mono: true,
452
450
  ph: "/Users/you/Workspace/project",
453
- hint: "Project root on the machine - empty means workflow-only / agent() escalation."
451
+ hint: "Project root on the machine. Empty lets the daemon use a scratch directory."
454
452
  }),
455
453
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TextField, {
456
454
  label: "Model",
@@ -481,29 +479,7 @@ var LoopForm = (0, import_react.forwardRef)(function LoopForm({ initial, channel
481
479
  children: [
482
480
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Section, {
483
481
  title: "Agent-authored content",
484
- hint: "Workflow, metrics and dashboard - usually written by evolve passes; edit by hand here when you know exactly what you want."
485
- }),
486
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", {
487
- className: labelCls,
488
- children: "Workflow · JavaScript function body"
489
- }),
490
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, {
491
- fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EditorFallback, { minHeight: "180px" }),
492
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CodeField, {
493
- lang: "js",
494
- value: f.workflow,
495
- onChange: (v) => set("workflow", v),
496
- minHeight: "180px",
497
- placeholder: "const res = await tools.call(\"server.tool\", { ... })\nreturn { message: \"...\", state: { ... } }"
498
- })
499
- }),
500
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
501
- className: hintCls,
502
- children: [
503
- "Deterministic zero-LLM pre-stage; top-level await and return ",
504
- "{message, state}",
505
- " are allowed (optional)."
506
- ]
482
+ hint: "Metrics and dashboard - usually written by evolve passes; edit by hand here when you know exactly what you want."
507
483
  }),
508
484
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", {
509
485
  className: labelCls,
@@ -580,7 +556,7 @@ var EDIT_SEEDS = [
580
556
  seed: "Give this loop a goal, and finish it once the goal is met: "
581
557
  }
582
558
  ];
583
- var LoopView = (0, import_react.lazy)(() => import("./LoopView-DdyJYOCY.mjs").then((m) => ({ default: m.LoopView })));
559
+ var LoopView = (0, import_react.lazy)(() => import("./LoopView-BtMANpb_.mjs").then((m) => ({ default: m.LoopView })));
584
560
  /**
585
561
  * Loop detail PAGE body (`/loops/$loopId`) — the redesign of the former modal.
586
562
  * One scrolling page: a loop header (name / status / schedule / agent / machine +
@@ -1,8 +1,8 @@
1
1
  import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
2
2
  import { c as getAuthState } from "./loopApi-BfMnXaKT.mjs";
3
- import { a as authClient } from "./LoopPlaybook-BBn-xXpG.mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-u8Dr2J5f.js
5
- var $$splitComponentImporter = () => import("./loops._loopId-BODmoHPu.mjs");
3
+ import { a as authClient } from "./LoopPlaybook-DJlWGia5.mjs";
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId-gNSxIQBe.js
5
+ var $$splitComponentImporter = () => import("./loops._loopId-CbuhuTAp.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
@@ -3,11 +3,11 @@ import { g as require_jsx_runtime, h as require_react } from "../_libs/@base-ui/
3
3
  import { O as runPulseStyle, _ as fmt, a as StatusPill, c as btnDanger, g as dur, k as sectionHeadCls, n as Loading, o as btn, r as Pill, v as fnum, y as humanBytes } from "./ui-Dej2qjuS.mjs";
4
4
  import { u as Link } from "../_libs/@tanstack/react-router+[...].mjs";
5
5
  import { d as getJobDetail, f as getRunDiff, g as loadOlderRuns, w as stopRun } from "./loopApi-BfMnXaKT.mjs";
6
- import { s as useSession } from "./LoopPlaybook-BBn-xXpG.mjs";
7
- import { t as SignIn } from "./SignIn-RJN_0GFZ.mjs";
6
+ import { s as useSession } from "./LoopPlaybook-DJlWGia5.mjs";
7
+ import { t as SignIn } from "./SignIn-CjFonm71.mjs";
8
8
  import { r as LoadErrorCard } from "./actionUi-CZbEixbf.mjs";
9
- import { t as Route } from "./loops._loopId_.runs._runId-kGL-CMG6.mjs";
10
- //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-DaKJdso2.js
9
+ import { t as Route } from "./loops._loopId_.runs._runId-BptlCXat.mjs";
10
+ //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-0MahUyHy.js
11
11
  var import_react = /* @__PURE__ */ __toESM(require_react());
12
12
  var import_jsx_runtime = require_jsx_runtime();
13
13
  /**
@@ -1,8 +1,8 @@
1
1
  import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
2
2
  import { c as getAuthState } from "./loopApi-BfMnXaKT.mjs";
3
- import { a as authClient } from "./LoopPlaybook-BBn-xXpG.mjs";
4
- //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-kGL-CMG6.js
5
- var $$splitComponentImporter = () => import("./loops._loopId_.runs._runId-DaKJdso2.mjs");
3
+ import { a as authClient } from "./LoopPlaybook-DJlWGia5.mjs";
4
+ //#region node_modules/.nitro/vite/services/ssr/assets/loops._loopId_.runs._runId-BptlCXat.js
5
+ var $$splitComponentImporter = () => import("./loops._loopId_.runs._runId-0MahUyHy.mjs");
6
6
  /**
7
7
  * Run detail PAGE — `/loops/$loopId/runs/$runId`. A standalone page (the trailing
8
8
  * `_` on the `$loopId` segment opts it out of the loop page's component so the run
@@ -1,6 +1,6 @@
1
- import { At as machineIdFromToken, D as createMachine$1, F as ensureServer, Mt as mintDeviceToken, N as deleteMachine$1, Z as getMachine, bt as listMachines$1, en as updateMachine, kt as loopsForMachine, qt as sha256, xt as listMachinesForTeam, zt as rememberConnectKey } from "./boot-aI3l2EYT.mjs";
1
+ import { At as machineIdFromToken, D as createMachine$1, F as ensureServer, Mt as mintDeviceToken, N as deleteMachine$1, Z as getMachine, bt as listMachines$1, en as updateMachine, kt as loopsForMachine, qt as sha256, xt as listMachinesForTeam, zt as rememberConnectKey } from "./boot-CkFZynUz.mjs";
2
2
  import { n as createServerFn } from "./ssr.mjs";
3
- import { requestScope } from "./auth-D2SlCxwE.mjs";
3
+ import { requestScope } from "./auth-Ca-um-e8.mjs";
4
4
  import { t as createServerRpc } from "./createServerRpc-BD8Xn_0_.mjs";
5
5
  //#region node_modules/.nitro/vite/services/ssr/assets/machineScope-2h-fcKmG.js
6
6
  /**
@@ -28,7 +28,7 @@ function tokenVisibleTo(m, scope) {
28
28
  return !scope.enforce || m.userId === scope.userId;
29
29
  }
30
30
  //#endregion
31
- //#region node_modules/.nitro/vite/services/ssr/assets/machineFns-MMSoHs7N.js
31
+ //#region node_modules/.nitro/vite/services/ssr/assets/machineFns-D5rQWyLl.js
32
32
  /**
33
33
  * Latest published @kky42/pievo version — a cached, fail-silent lookup of the
34
34
  * npm dist-tag `latest`, so the web can tell a user their daemon is outdated and
@@ -1,6 +1,6 @@
1
- import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-D2SlCxwE.mjs";
1
+ import { n as DefaultQueryCompiler, o as CompiledQuery, s as sql$1 } from "./auth-Ca-um-e8.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-Y22MTyEv.js
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/node-sqlite-dialect-Dr9_QokR.js
4
4
  var NodeSqliteAdapter = class {
5
5
  get supportsCreateIfNotExists() {
6
6
  return true;
@@ -1,8 +1,8 @@
1
- import { C as createChannel$1, F as ensureServer, W as getChannel, j as deleteChannel$1, s as CHANNELS, vt as listChannels$1 } from "./boot-aI3l2EYT.mjs";
1
+ import { C as createChannel$1, F as ensureServer, W as getChannel, j as deleteChannel$1, s as CHANNELS, vt as listChannels$1 } from "./boot-CkFZynUz.mjs";
2
2
  import { n as createServerFn } from "./ssr.mjs";
3
- import { requestScope } from "./auth-D2SlCxwE.mjs";
3
+ import { requestScope } from "./auth-Ca-um-e8.mjs";
4
4
  import { t as createServerRpc } from "./createServerRpc-BD8Xn_0_.mjs";
5
- //#region node_modules/.nitro/vite/services/ssr/assets/notifyFns-Bmqhlrkc.js
5
+ //#region node_modules/.nitro/vite/services/ssr/assets/notifyFns-BobPaLWi.js
6
6
  /**
7
7
  * Notification-channel server functions. Channels are per-team push targets a
8
8
  * loop can route its run messages to. Secrets (bot token / chat id) live in the
@@ -1,12 +1,12 @@
1
1
  import { o as __toESM } from "../_runtime.mjs";
2
2
  import { a as TooltipTrigger, g as require_jsx_runtime, h as require_react, i as TooltipPortal, n as TooltipPopup, o as TooltipRoot, r as TooltipPositioner } from "../_libs/@base-ui/react+[...].mjs";
3
- import { jt as machinePresence } from "./boot-aI3l2EYT.mjs";
3
+ import { jt as machinePresence } from "./boot-CkFZynUz.mjs";
4
4
  import { C as labelCls, D as runPulseAnim, E as rel, M as until, N as useHydrated, S as isCompleted, _ as fmt, b as inputCls, c as btnDanger, g as dur, h as dotLabel, l as btnPrimary, m as dotColor, o as btn, t as ErrorBanner } from "./ui-Dej2qjuS.mjs";
5
5
  import { n as createServerFn } from "./ssr.mjs";
6
6
  import { l as getConfig, r as createSsrRpc } from "./loopApi-BfMnXaKT.mjs";
7
7
  import { n as ModalHead, r as ModalSection, t as Modal } from "./Modal-DpKZHLZK.mjs";
8
8
  import { n as daemonStopSupport } from "./lifecycleUi-BhRsBvJ7.mjs";
9
- //#region node_modules/.nitro/vite/services/ssr/assets/notifyFns-CdrijMGW.js
9
+ //#region node_modules/.nitro/vite/services/ssr/assets/notifyFns-c7ZY2TWF.js
10
10
  var import_react = /* @__PURE__ */ __toESM(require_react());
11
11
  var import_jsx_runtime = require_jsx_runtime();
12
12
  /**