@kky42/pievo-server 2.0.0 → 2.0.2

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 (83) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/{LoopView-d0XYkzpx.js → LoopView-XXW59HAV.js} +3 -3
  3. package/.output/public/assets/{Modal-D_od-AuP.js → Modal-BnCPgN_k.js} +1 -1
  4. package/.output/public/assets/{SignIn-CbMeIAJZ.js → SignIn-BAoOONQ9.js} +1 -1
  5. package/.output/public/assets/{actionUi-ChGGALzg.js → actionUi-Dxe9cHAc.js} +1 -1
  6. package/.output/public/assets/app-DzFILlbu.css +2 -0
  7. package/.output/public/assets/index-BtvLZjhl.js +12 -0
  8. package/.output/public/assets/{invite._token-DJtd-XE2.js → invite._token-BAqaXvte.js} +1 -1
  9. package/.output/public/assets/{invite._token-Cl9Oarnq.js → invite._token-q54LLZ6A.js} +1 -1
  10. package/.output/public/assets/{lifecycleUi-DGVOf5yS.js → lifecycleUi-B8Je9exd.js} +1 -1
  11. package/.output/public/assets/loops._loopId-BCK4oIRv.js +4 -0
  12. package/.output/public/assets/{loops._loopId_.runs._runId-DepMp3Me.js → loops._loopId_.runs._runId-lGYlHXTN.js} +2 -2
  13. package/.output/public/assets/notifyFns-BneSItOi.js +1 -0
  14. package/.output/public/assets/{routes-CTtlM_qt.js → routes-C7Pw5lGn.js} +1 -1
  15. package/.output/public/assets/{routes-BB4aDC1D.js → routes-D0zKR7gK.js} +1 -1
  16. package/.output/public/assets/{t._teamId-gR7BVKkR.js → t._teamId-CCgajlMS.js} +1 -1
  17. package/.output/public/assets/{t._teamId-D552b9PT.js → t._teamId-Cn7cRGAh.js} +1 -1
  18. package/.output/public/assets/ui-RFP3R3lU.js +1 -0
  19. package/.output/server/_ssr/{DashboardView-D3E-zevQ.mjs → DashboardView-BhJBW7IL.mjs} +13 -10
  20. package/.output/server/_ssr/{LoopPlaybook-DJlWGia5.mjs → LoopPlaybook-BC9Dvnw2.mjs} +2 -2
  21. package/.output/server/_ssr/{LoopView-BtMANpb_.mjs → LoopView-Dom6Ad5G.mjs} +4 -4
  22. package/.output/server/_ssr/{Modal-DpKZHLZK.mjs → Modal-CfWC9R49.mjs} +2 -2
  23. package/.output/server/_ssr/{SignIn-CjFonm71.mjs → SignIn-D70NUJsN.mjs} +3 -3
  24. package/.output/server/_ssr/{actionUi-CZbEixbf.mjs → actionUi-mDYOvJdB.mjs} +2 -2
  25. package/.output/server/_ssr/{adapters-vbuo_-wD.mjs → adapters-D0d1fBKK.mjs} +7 -4
  26. package/.output/server/_ssr/{artifactFiles-BGod8IWQ.mjs → artifactFiles-BfE1070_.mjs} +3 -3
  27. package/.output/server/_ssr/artifacts-CSGRJdSy.mjs +2 -0
  28. package/.output/server/_ssr/{auth-Ca-um-e8.mjs → auth-BP81awUE.mjs} +9 -9
  29. package/.output/server/_ssr/boot-pUGFIxSA.mjs +2 -0
  30. package/.output/server/_ssr/{boot-CkFZynUz.mjs → boot-sM4t8RJu.mjs} +148 -97
  31. package/.output/server/_ssr/{bun-sqlite-dialect-BW9W1_Ps-CG9VPNj0.mjs → bun-sqlite-dialect-BW9W1_Ps-CZJuWL5Z.mjs} +2 -2
  32. package/.output/server/_ssr/{d1-sqlite-dialect-BLC8LXE6-DBf7xVin.mjs → d1-sqlite-dialect-BLC8LXE6-C2PCtZfI.mjs} +2 -2
  33. package/.output/server/_ssr/db-Cc6I8bWL.mjs +2 -0
  34. package/.output/server/_ssr/{dist-CwI9FwLx.mjs → dist-Z7v6ihws.mjs} +2 -2
  35. package/.output/server/_ssr/{factory-L3gsmDL7.mjs → factory-BQ_XiP23.mjs} +2 -2
  36. package/.output/server/_ssr/{invite._token-DJxGLILJ.mjs → invite._token-23daBIfe.mjs} +2 -2
  37. package/.output/server/_ssr/{invite._token-CN2p7Gt3.mjs → invite._token-CRAl6-yK.mjs} +5 -5
  38. package/.output/server/_ssr/{invite._token-KLCPnHk-.mjs → invite._token-VKmyC9-R.mjs} +4 -4
  39. package/.output/server/_ssr/{kysely-adapter-Czkfz-W-.mjs → kysely-adapter-DjQPkqgJ.mjs} +1 -1
  40. package/.output/server/_ssr/{lifecycleUi-BhRsBvJ7.mjs → lifecycleUi-l3nx9i3T.mjs} +3 -3
  41. package/.output/server/_ssr/logger-CHoC5_kz.mjs +2 -0
  42. package/.output/server/_ssr/{loopApi-CVf9RC6s.mjs → loopApi-i7xdpokI.mjs} +11 -11
  43. package/.output/server/_ssr/{loops._loopId-CbuhuTAp.mjs → loops._loopId-DOPfN_Op.mjs} +43 -12
  44. package/.output/server/_ssr/{loops._loopId-gNSxIQBe.mjs → loops._loopId-jXSgPWG1.mjs} +3 -3
  45. package/.output/server/_ssr/{loops._loopId_.runs._runId-BptlCXat.mjs → loops._loopId_.runs._runId-BhoM6DWj.mjs} +3 -3
  46. package/.output/server/_ssr/{loops._loopId_.runs._runId-0MahUyHy.mjs → loops._loopId_.runs._runId-DiBP2rCe.mjs} +6 -6
  47. package/.output/server/_ssr/{machineFns-D5rQWyLl.mjs → machineFns-ChO1NM3C.mjs} +5 -3
  48. package/.output/server/_ssr/{node-sqlite-dialect-Dr9_QokR.mjs → node-sqlite-dialect-BGlhyZkk.mjs} +2 -2
  49. package/.output/server/_ssr/{notifyFns-BobPaLWi.mjs → notifyFns-B1MSIzrT.mjs} +3 -3
  50. package/.output/server/_ssr/{notifyFns-c7ZY2TWF.mjs → notifyFns-DWotltSJ.mjs} +35 -45
  51. package/.output/server/_ssr/{router-B8JTBtGd.mjs → router-BOHN4CWd.mjs} +29 -29
  52. package/.output/server/_ssr/{routes-B-MWifFy.mjs → routes-BQjhKV-m.mjs} +5 -5
  53. package/.output/server/_ssr/{routes-BJCWMIzb.mjs → routes-C2VJzARp.mjs} +5 -5
  54. package/.output/server/_ssr/{routes-Bcs4T1ox.mjs → routes-DjaTMZqZ.mjs} +2 -2
  55. package/.output/server/_ssr/{runDiff-C0w1D4a3.mjs → runDiff-SlGPjjNq.mjs} +2 -2
  56. package/.output/server/_ssr/ssr.mjs +48 -48
  57. package/.output/server/_ssr/store-BjXC623Z.mjs +2 -0
  58. package/.output/server/_ssr/{t._teamId-FYVEIAGw.mjs → t._teamId-CRgNlDGk.mjs} +5 -5
  59. package/.output/server/_ssr/{t._teamId-Dy_McbRt.mjs → t._teamId-D_vi_OuG.mjs} +2 -2
  60. package/.output/server/_ssr/{t._teamId-fw8RfHyI.mjs → t._teamId-o86wLJrg.mjs} +5 -5
  61. package/.output/server/_ssr/{teamFns-Dz41U7gA.mjs → teamFns-C3vnwAqv.mjs} +3 -3
  62. package/.output/server/_ssr/tokens-BCOvumer.mjs +2 -0
  63. package/.output/server/_ssr/{ui-Dej2qjuS.mjs → ui-WGITbP6Z.mjs} +72 -51
  64. package/.output/server/{_tanstack-start-manifest_v-C9p30TZH.mjs → _tanstack-start-manifest_v-DYC0z7st.mjs} +25 -25
  65. package/.output/server/drizzle/0012_blocked_run_status.sql +12 -0
  66. package/.output/server/drizzle/0013_drop_run_outcome.sql +2 -0
  67. package/.output/server/drizzle/meta/_journal.json +14 -0
  68. package/.output/server/index.mjs +105 -105
  69. package/drizzle/0012_blocked_run_status.sql +12 -0
  70. package/drizzle/0013_drop_run_outcome.sql +2 -0
  71. package/drizzle/meta/_journal.json +14 -0
  72. package/package.json +1 -1
  73. package/.output/public/assets/app-vKFxjMMk.css +0 -2
  74. package/.output/public/assets/index-DSF-1ahT.js +0 -12
  75. package/.output/public/assets/loops._loopId-B-dYxc9i.js +0 -4
  76. package/.output/public/assets/notifyFns-b_jCi5XK.js +0 -1
  77. package/.output/public/assets/ui-Dp88qUWh.js +0 -1
  78. package/.output/server/_ssr/artifacts-CduiDAM2.mjs +0 -2
  79. package/.output/server/_ssr/boot-C0f0HGCw.mjs +0 -2
  80. package/.output/server/_ssr/db-Cs0gnPZZ.mjs +0 -2
  81. package/.output/server/_ssr/logger-Cj1GFV_8.mjs +0 -2
  82. package/.output/server/_ssr/store-LYphMSJ-.mjs +0 -2
  83. package/.output/server/_ssr/tokens-3ZFpqsuf.mjs +0 -2
@@ -1,10 +1,10 @@
1
1
  import { c as createFileRoute, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
2
2
  import { c as getAuthState, h as listTemplates, t as canViewTeam } from "./loopApi-BfMnXaKT.mjs";
3
- import { a as authClient } from "./LoopPlaybook-DJlWGia5.mjs";
4
- import { n as fetchLiveData } from "./DashboardView-D3E-zevQ.mjs";
5
- //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-fw8RfHyI.js
6
- var $$splitErrorComponentImporter = () => import("./t._teamId-Dy_McbRt.mjs");
7
- var $$splitComponentImporter = () => import("./t._teamId-FYVEIAGw.mjs");
3
+ import { a as authClient } from "./LoopPlaybook-BC9Dvnw2.mjs";
4
+ import { n as fetchLiveData } from "./DashboardView-BhJBW7IL.mjs";
5
+ //#region node_modules/.nitro/vite/services/ssr/assets/t._teamId-o86wLJrg.js
6
+ var $$splitErrorComponentImporter = () => import("./t._teamId-D_vi_OuG.mjs");
7
+ var $$splitComponentImporter = () => import("./t._teamId-CRgNlDGk.mjs");
8
8
  /**
9
9
  * The explicit-team dashboard (`/t/<teamId>`, Phase 2): the same dashboard scoped
10
10
  * to the team in the PATH, so a view is bookmarkable and each browser tab keeps
@@ -1,9 +1,9 @@
1
- import { Bt as removeTeamMemberGuarded, E as createInvite$1, Et as listTeamsForUser, F as ensureServer, Kt as setTeamMemberRoleGuarded, M as deleteInvite, O as createTeam$2, P as deleteTeamCascade, Rt as redeemInviteAtomic, St as listPendingInvites, Tt as listTeamMembers, Vt as renameTeam$2, Y as getInvite, ct as isPersonalTeam, nt as getTeam, p as addTeamMember$1, rt as getTeamMember, tn as userByEmail, x as countLoopsForTeam } from "./boot-CkFZynUz.mjs";
1
+ import { D as createInvite$1, I as deleteTeamCascade, L as ensureServer, Ot as listTeamMembers, P as deleteInvite, S as countLoopsForTeam, Tt as listPendingInvites, Ut as removeTeamMemberGuarded, Vt as redeemInviteAtomic, Wt as renameTeam$2, Yt as setTeamMemberRoleGuarded, Z as getInvite, at as getTeamMember, dt as isPersonalTeam, in as userByEmail, it as getTeam, k as createTeam$2, kt as listTeamsForUser, m as addTeamMember$1 } from "./boot-sM4t8RJu.mjs";
2
2
  import { n as createServerFn } from "./ssr.mjs";
3
- import { authEnabled, currentUserId } from "./auth-Ca-um-e8.mjs";
3
+ import { authEnabled, currentUserId } from "./auth-BP81awUE.mjs";
4
4
  import { t as createServerRpc } from "./createServerRpc-BD8Xn_0_.mjs";
5
5
  import { randomUUID } from "node:crypto";
6
- //#region node_modules/.nitro/vite/services/ssr/assets/teamFns-Dz41U7gA.js
6
+ //#region node_modules/.nitro/vite/services/ssr/assets/teamFns-C3vnwAqv.js
7
7
  /**
8
8
  * Team lifecycle + membership logic (design report §2/§4/§5, all six §7 decisions
9
9
  * approved as recommended). This module is the ONE authorization + rules
@@ -0,0 +1,2 @@
1
+ import { Ft as mintDeviceToken, Ht as rememberConnectKey } from "./boot-sM4t8RJu.mjs";
2
+ export { mintDeviceToken, rememberConnectKey };
@@ -1,6 +1,6 @@
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
- //#region node_modules/.nitro/vite/services/ssr/assets/ui-Dej2qjuS.js
3
+ //#region node_modules/.nitro/vite/services/ssr/assets/ui-WGITbP6Z.js
4
4
  var import_react = /* @__PURE__ */ __toESM(require_react());
5
5
  var import_jsx_runtime = require_jsx_runtime();
6
6
  var fmt = (t) => t ? new Date(t).toLocaleString() : "—";
@@ -84,69 +84,87 @@ function humanBytes(n) {
84
84
  * for meaning. Mirrored by the --color-run-* tokens used in Tailwind classes.
85
85
  */
86
86
  var ST = {
87
- "nothing-new": {
88
- c: "var(--color-secondary)",
89
- label: "No update"
87
+ kept: {
88
+ c: "var(--color-run-kept)",
89
+ label: "Kept"
90
90
  },
91
- new: {
92
- c: "var(--color-display)",
93
- label: "New"
91
+ "no-change": {
92
+ c: "var(--color-run-no-change)",
93
+ label: "No change"
94
94
  },
95
- resolved: {
96
- c: "var(--color-success)",
97
- label: "Resolved"
95
+ blocked: {
96
+ c: "var(--color-run-blocked)",
97
+ label: "Blocked"
98
98
  },
99
99
  error: {
100
- c: "var(--color-accent)",
100
+ c: "var(--color-run-error)",
101
101
  label: "Error"
102
102
  },
103
- silent: {
104
- c: "var(--color-disabled)",
105
- label: "Silent"
103
+ warning: {
104
+ c: "var(--color-run-warning)",
105
+ label: "Missing status"
106
106
  },
107
- evolve: {
108
- c: "var(--color-interactive)",
109
- label: "Evolved"
107
+ canceled: {
108
+ c: "var(--color-run-canceled)",
109
+ label: "Canceled"
110
+ },
111
+ queued: {
112
+ c: "var(--color-run-queued)",
113
+ label: "Queued"
114
+ },
115
+ "active-exec": {
116
+ c: "var(--color-run-active-exec)",
117
+ label: "Running…"
118
+ },
119
+ "active-edit": {
120
+ c: "var(--color-run-active-edit)",
121
+ label: "Editing…"
122
+ },
123
+ "active-evolve": {
124
+ c: "var(--color-run-active-evolve)",
125
+ label: "Evolving…"
110
126
  }
111
127
  };
112
- var lookup = (k) => k ? ST[k] : void 0;
113
- /**
114
- * Human labels for the *delivery outcome* of a run that carries no richer status.
115
- * These describe how a run finished — `direct`/`agent` mean a report reached the
116
- * user (verbatim vs relayed), `exec` means a normal run completed. We show the
117
- * user-facing meaning, not the internal enum, so "DIRECT" never leaks into the UI.
118
- */
119
- var OUTCOME_LABEL = {
120
- direct: "Reported",
121
- agent: "Reported",
122
- exec: "Ran"
123
- };
124
- /** Safety net for any unmapped status/outcome string — Title-case, never raw. */
125
- var titleCase = (s) => s ? s.charAt(0).toUpperCase() + s.slice(1).replace(/-/g, " ") : s;
128
+ var statusMeta = (k) => k === "kept" || k === "no-change" || k === "blocked" ? ST[k] : void 0;
129
+ var roleWord = (r) => r.role === "edit" ? "edit" : r.role === "evolve" ? "evolve" : "exec";
130
+ var keptLabel = (r) => roleWord(r) === "edit" ? "Edited" : roleWord(r) === "evolve" ? "Improved" : "Kept";
126
131
  function dotColor(r) {
127
- if (r.queued) return ST.silent.c;
128
- if (r.running) return r.role === "evolve" ? ST.evolve.c : ST.new.c;
129
- if (r.canceled) return ST.silent.c;
130
- if (r.outcome === "error") return ST.error.c;
131
- if (r.outcome === "evolve") return ST.evolve.c;
132
- if (r.outcome === "silent") return ST.silent.c;
133
- return (lookup(r.status) ?? ST["nothing-new"]).c;
132
+ if (r.running) return ST[`active-${roleWord(r)}`].c;
133
+ if (r.status === "blocked") return ST.blocked.c;
134
+ if (r.queued) return ST.queued.c;
135
+ if (r.phase === "error") return ST.error.c;
136
+ if (r.canceled || r.phase === "canceled") return ST.canceled.c;
137
+ if (r.phase === "done" && !statusMeta(r.status)) return ST.warning.c;
138
+ return (statusMeta(r.status) ?? ST["no-change"]).c;
139
+ }
140
+ function dotOpacity(r) {
141
+ if (r.running || r.status === "blocked" || r.phase === "error") return 1;
142
+ if (r.queued) return .7;
143
+ if (r.canceled || r.phase === "canceled") return .5;
144
+ if (r.phase === "done" && !statusMeta(r.status)) return .9;
145
+ if (r.status === "no-change") return .55;
146
+ return 1;
134
147
  }
135
148
  function dotLabel(r) {
136
- if (r.queued) return "Queued";
149
+ if (r.queued) return ST.queued.label;
137
150
  if (r.running) {
138
151
  if (r.cancelRequested) return "Stopping…";
139
- return r.role === "evolve" ? "Evolving…" : "Running…";
152
+ return ST[`active-${roleWord(r)}`].label;
153
+ }
154
+ if (r.status === "blocked") return ST.blocked.label;
155
+ if (r.phase === "error") {
156
+ if (r.cancelRequested) return "Failed while stopping";
157
+ return ST.error.label;
158
+ }
159
+ if (r.canceled || r.phase === "canceled") {
160
+ if (r.error === "stopped by user") return "Canceled";
161
+ return "Canceled";
140
162
  }
141
- if (r.canceled && r.error === "stopped by user") return "Canceled";
142
- if (r.outcome === "skipped") return "Skipped";
143
- if (r.canceled) return "Canceled";
144
- if (r.cancelRequested && r.outcome === "error") return "Failed while stopping";
145
- if (r.cancelRequested && r.outcome !== "silent" && r.outcome !== "evolve") return "Succeeded while stopping";
146
- if (r.outcome === "error") return ST.error.label;
147
- if (r.outcome === "evolve") return ST.evolve.label;
148
- if (r.outcome === "silent") return ST.silent.label;
149
- return lookup(r.status)?.label ?? OUTCOME_LABEL[r.outcome] ?? titleCase(r.outcome);
163
+ if (r.cancelRequested && r.phase === "done") return "Succeeded while stopping";
164
+ if (r.status === "kept") return keptLabel(r);
165
+ if (r.status === "no-change") return ST["no-change"].label;
166
+ if (r.phase === "done") return ST.warning.label;
167
+ return ST["no-change"].label;
150
168
  }
151
169
  var lastRunOf = (j) => {
152
170
  const a = j.runs ?? [];
@@ -259,9 +277,12 @@ function StatusPill({ run, colorText }) {
259
277
  style: colorText ? { color: dotColor(run) } : void 0,
260
278
  children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
261
279
  className: "size-2 rounded-full",
262
- style: { background: dotColor(run) }
280
+ style: {
281
+ background: dotColor(run),
282
+ opacity: dotOpacity(run)
283
+ }
263
284
  }), dotLabel(run)]
264
285
  });
265
286
  }
266
287
  //#endregion
267
- export { selectCls as A, labelCls as C, runPulseAnim as D, rel as E, until as M, useHydrated as N, runPulseStyle as O, isCompleted as S, md as T, fmt as _, StatusPill as a, inputCls as b, btnDanger as c, btnQuiet as d, btnSm as f, dur as g, dotLabel as h, Pre as i, tsShort as j, sectionHeadCls as k, btnPrimary as l, dotColor as m, Loading as n, btn as o, cronText as p, Pill as r, btnCost as s, ErrorBanner as t, btnPrimaryPill as u, fnum as v, lastRunOf as w, isClosed as x, humanBytes as y };
288
+ export { sectionHeadCls as A, isCompleted as C, rel as D, md as E, tsShort as M, until as N, runPulseAnim as O, useHydrated as P, isClosed as S, lastRunOf as T, dur as _, StatusPill as a, humanBytes as b, btnDanger as c, btnQuiet as d, btnSm as f, dotOpacity as g, dotLabel as h, Pre as i, selectCls as j, runPulseStyle as k, btnPrimary as l, dotColor as m, Loading as n, btn as o, cronText as p, Pill as r, btnCost as s, ErrorBanner as t, btnPrimaryPill as u, fmt as v, labelCls as w, inputCls as x, fnum as y };
@@ -1,4 +1,4 @@
1
- //#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-C9p30TZH.js
1
+ //#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-DYC0z7st.js
2
2
  var tsrStartManifest = () => ({ routes: {
3
3
  __root__: {
4
4
  filePath: "/Users/kky/dev/evo/packages/server/src/routes/__root.tsx",
@@ -25,69 +25,69 @@ var tsrStartManifest = () => ({ routes: {
25
25
  "/loops/$loopId_/runs/$runId"
26
26
  ],
27
27
  preloads: [
28
- "/assets/index-DSF-1ahT.js",
28
+ "/assets/index-BtvLZjhl.js",
29
29
  "/assets/jsx-runtime-BseJUIpC.js",
30
30
  "/assets/preload-helper-ycaoAemE.js",
31
- "/assets/Modal-D_od-AuP.js",
32
- "/assets/notifyFns-b_jCi5XK.js",
31
+ "/assets/Modal-BnCPgN_k.js",
32
+ "/assets/notifyFns-BneSItOi.js",
33
33
  "/assets/useRouter-DsjH8G0p.js",
34
34
  "/assets/loopApi-5s2-kCnu.js",
35
- "/assets/ui-Dp88qUWh.js",
36
- "/assets/lifecycleUi-DGVOf5yS.js"
35
+ "/assets/ui-RFP3R3lU.js",
36
+ "/assets/lifecycleUi-B8Je9exd.js"
37
37
  ],
38
38
  scripts: [{ attrs: {
39
39
  type: "module",
40
40
  async: !0,
41
- src: "/assets/index-DSF-1ahT.js"
41
+ src: "/assets/index-BtvLZjhl.js"
42
42
  } }]
43
43
  },
44
44
  "/": {
45
45
  filePath: "/Users/kky/dev/evo/packages/server/src/routes/index.tsx",
46
46
  children: void 0,
47
47
  preloads: [
48
- "/assets/routes-BB4aDC1D.js",
49
- "/assets/SignIn-CbMeIAJZ.js",
50
- "/assets/routes-CTtlM_qt.js",
51
- "/assets/actionUi-ChGGALzg.js"
48
+ "/assets/routes-C7Pw5lGn.js",
49
+ "/assets/actionUi-Dxe9cHAc.js",
50
+ "/assets/routes-D0zKR7gK.js",
51
+ "/assets/SignIn-BAoOONQ9.js"
52
52
  ]
53
53
  },
54
54
  "/invite/$token": {
55
55
  filePath: "/Users/kky/dev/evo/packages/server/src/routes/invite.$token.tsx",
56
56
  children: void 0,
57
57
  preloads: [
58
- "/assets/invite._token-Cl9Oarnq.js",
59
- "/assets/SignIn-CbMeIAJZ.js",
60
- "/assets/invite._token-DJtd-XE2.js",
61
- "/assets/actionUi-ChGGALzg.js"
58
+ "/assets/invite._token-BAqaXvte.js",
59
+ "/assets/actionUi-Dxe9cHAc.js",
60
+ "/assets/invite._token-q54LLZ6A.js",
61
+ "/assets/SignIn-BAoOONQ9.js"
62
62
  ]
63
63
  },
64
64
  "/loops/$loopId": {
65
65
  filePath: "/Users/kky/dev/evo/packages/server/src/routes/loops.$loopId.tsx",
66
66
  children: void 0,
67
67
  preloads: [
68
- "/assets/loops._loopId-B-dYxc9i.js",
68
+ "/assets/loops._loopId-BCK4oIRv.js",
69
69
  "/assets/artifactView-DekEs5ME.js",
70
- "/assets/SignIn-CbMeIAJZ.js",
71
- "/assets/actionUi-ChGGALzg.js"
70
+ "/assets/SignIn-BAoOONQ9.js",
71
+ "/assets/actionUi-Dxe9cHAc.js"
72
72
  ]
73
73
  },
74
74
  "/t/$teamId": {
75
75
  filePath: "/Users/kky/dev/evo/packages/server/src/routes/t.$teamId.tsx",
76
76
  children: void 0,
77
77
  preloads: [
78
- "/assets/t._teamId-D552b9PT.js",
79
- "/assets/SignIn-CbMeIAJZ.js",
80
- "/assets/t._teamId-gR7BVKkR.js",
81
- "/assets/actionUi-ChGGALzg.js"
78
+ "/assets/t._teamId-CCgajlMS.js",
79
+ "/assets/actionUi-Dxe9cHAc.js",
80
+ "/assets/t._teamId-Cn7cRGAh.js",
81
+ "/assets/SignIn-BAoOONQ9.js"
82
82
  ]
83
83
  },
84
84
  "/loops/$loopId_/runs/$runId": {
85
85
  filePath: "/Users/kky/dev/evo/packages/server/src/routes/loops.$loopId_.runs.$runId.tsx",
86
86
  children: void 0,
87
87
  preloads: [
88
- "/assets/loops._loopId_.runs._runId-DepMp3Me.js",
89
- "/assets/SignIn-CbMeIAJZ.js",
90
- "/assets/actionUi-ChGGALzg.js"
88
+ "/assets/loops._loopId_.runs._runId-lGYlHXTN.js",
89
+ "/assets/SignIn-BAoOONQ9.js",
90
+ "/assets/actionUi-Dxe9cHAc.js"
91
91
  ]
92
92
  }
93
93
  } });
@@ -0,0 +1,12 @@
1
+ -- Redesign run status as the agent's business result across exec/edit/evolve.
2
+ -- The column is plain text (Drizzle enum is TS-only), so this is a data migration
3
+ -- for existing history rather than a DDL constraint change.
4
+ UPDATE "runs"
5
+ SET "status" = CASE "status"
6
+ WHEN 'new' THEN 'kept'
7
+ WHEN 'resolved' THEN 'kept'
8
+ WHEN 'nothing-new' THEN 'no-change'
9
+ ELSE NULL
10
+ END
11
+ WHERE "status" IS NOT NULL
12
+ AND "status" NOT IN ('kept', 'no-change', 'blocked');
@@ -0,0 +1,2 @@
1
+ -- Breaking change: run display/result is derived from role + phase + status.
2
+ ALTER TABLE "runs" DROP COLUMN IF EXISTS "outcome";
@@ -85,6 +85,20 @@
85
85
  "when": 1784649067459,
86
86
  "tag": "0011_steep_marvel_zombies",
87
87
  "breakpoints": true
88
+ },
89
+ {
90
+ "idx": 12,
91
+ "version": "7",
92
+ "when": 1784649067460,
93
+ "tag": "0012_blocked_run_status",
94
+ "breakpoints": true
95
+ },
96
+ {
97
+ "idx": 13,
98
+ "version": "7",
99
+ "when": 1784649067461,
100
+ "tag": "0013_drop_run_outcome",
101
+ "breakpoints": true
88
102
  }
89
103
  ]
90
104
  }
@@ -14,175 +14,175 @@ var public_assets_data_default = {
14
14
  "/favicon.svg": {
15
15
  "type": "image/svg+xml",
16
16
  "etag": "\"2f9-diQHMODwkdsIQ2ssl9fzDaFKaXE\"",
17
- "mtime": "2026-07-21T16:12:39.391Z",
17
+ "mtime": "2026-07-22T06:01:56.409Z",
18
18
  "size": 761,
19
19
  "path": "../public/favicon.svg"
20
20
  },
21
- "/assets/actionUi-ChGGALzg.js": {
21
+ "/assets/Modal-BnCPgN_k.js": {
22
22
  "type": "text/javascript; charset=utf-8",
23
- "etag": "\"8d4-nLJ8ZKDE5rs21P7Ctczg9UD2Hk8\"",
24
- "mtime": "2026-07-21T16:12:38.912Z",
23
+ "etag": "\"f440-zVPXy2SI6PSoD5QvNXh7XBZCiNg\"",
24
+ "mtime": "2026-07-22T06:01:55.928Z",
25
+ "size": 62528,
26
+ "path": "../public/assets/Modal-BnCPgN_k.js"
27
+ },
28
+ "/assets/actionUi-Dxe9cHAc.js": {
29
+ "type": "text/javascript; charset=utf-8",
30
+ "etag": "\"8d4-g19KC7NOB/5dq2hgvbNiOgKU5X0\"",
31
+ "mtime": "2026-07-22T06:01:55.928Z",
25
32
  "size": 2260,
26
- "path": "../public/assets/actionUi-ChGGALzg.js"
33
+ "path": "../public/assets/actionUi-Dxe9cHAc.js"
27
34
  },
28
- "/assets/SignIn-CbMeIAJZ.js": {
35
+ "/assets/SignIn-BAoOONQ9.js": {
29
36
  "type": "text/javascript; charset=utf-8",
30
- "etag": "\"56e-x7Y7tTvFQnVkJDiLbdcKKNw6KeY\"",
31
- "mtime": "2026-07-21T16:12:38.912Z",
37
+ "etag": "\"56e-3GjxqwtZakcb//J0mRKqKElmZVY\"",
38
+ "mtime": "2026-07-22T06:01:55.928Z",
32
39
  "size": 1390,
33
- "path": "../public/assets/SignIn-CbMeIAJZ.js"
40
+ "path": "../public/assets/SignIn-BAoOONQ9.js"
34
41
  },
35
- "/assets/app-vKFxjMMk.css": {
42
+ "/assets/app-DzFILlbu.css": {
36
43
  "type": "text/css; charset=utf-8",
37
- "etag": "\"d79c-icybkL3S8suGcaMeDrlFQqDyUuE\"",
38
- "mtime": "2026-07-21T16:12:38.914Z",
39
- "size": 55196,
40
- "path": "../public/assets/app-vKFxjMMk.css"
44
+ "etag": "\"dbcf-XLTCs2MQtQFP5HAk43xAu5LHbYk\"",
45
+ "mtime": "2026-07-22T06:01:55.930Z",
46
+ "size": 56271,
47
+ "path": "../public/assets/app-DzFILlbu.css"
41
48
  },
42
- "/assets/artifactView-DekEs5ME.js": {
49
+ "/assets/index-BtvLZjhl.js": {
43
50
  "type": "text/javascript; charset=utf-8",
44
- "etag": "\"11ea7-M8vnVKtngk1cLoDExl+oxZpZKdg\"",
45
- "mtime": "2026-07-21T16:12:38.912Z",
46
- "size": 73383,
47
- "path": "../public/assets/artifactView-DekEs5ME.js"
51
+ "etag": "\"4a112-yhmumK2gPLj2aB/eSNjNvD5COoA\"",
52
+ "mtime": "2026-07-22T06:01:55.928Z",
53
+ "size": 303378,
54
+ "path": "../public/assets/index-BtvLZjhl.js"
48
55
  },
49
- "/assets/Modal-D_od-AuP.js": {
56
+ "/assets/invite._token-BAqaXvte.js": {
50
57
  "type": "text/javascript; charset=utf-8",
51
- "etag": "\"f440-0pA3VydYvQQpOxLqp4eFFnBSH8E\"",
52
- "mtime": "2026-07-21T16:12:38.912Z",
53
- "size": 62528,
54
- "path": "../public/assets/Modal-D_od-AuP.js"
58
+ "etag": "\"17a-oKCKOsX4SdWkviOf9p4CUwKPENQ\"",
59
+ "mtime": "2026-07-22T06:01:55.929Z",
60
+ "size": 378,
61
+ "path": "../public/assets/invite._token-BAqaXvte.js"
55
62
  },
56
- "/assets/invite._token-Cl9Oarnq.js": {
63
+ "/assets/invite._token-q54LLZ6A.js": {
57
64
  "type": "text/javascript; charset=utf-8",
58
- "etag": "\"65a-V0+/OAbuRsL09goNdyXc8/8X+PQ\"",
59
- "mtime": "2026-07-21T16:12:38.912Z",
65
+ "etag": "\"65a-vYW9pXF8NjJXToXWi6o9R6ioVd0\"",
66
+ "mtime": "2026-07-22T06:01:55.929Z",
60
67
  "size": 1626,
61
- "path": "../public/assets/invite._token-Cl9Oarnq.js"
68
+ "path": "../public/assets/invite._token-q54LLZ6A.js"
62
69
  },
63
- "/assets/LoopView-d0XYkzpx.js": {
70
+ "/assets/artifactView-DekEs5ME.js": {
64
71
  "type": "text/javascript; charset=utf-8",
65
- "etag": "\"63032-kg24BuToJS0l8t3GX/FZmYaIzF8\"",
66
- "mtime": "2026-07-21T16:12:38.912Z",
67
- "size": 405554,
68
- "path": "../public/assets/LoopView-d0XYkzpx.js"
72
+ "etag": "\"11ea7-M8vnVKtngk1cLoDExl+oxZpZKdg\"",
73
+ "mtime": "2026-07-22T06:01:55.929Z",
74
+ "size": 73383,
75
+ "path": "../public/assets/artifactView-DekEs5ME.js"
69
76
  },
70
- "/assets/lifecycleUi-DGVOf5yS.js": {
77
+ "/assets/lifecycleUi-B8Je9exd.js": {
71
78
  "type": "text/javascript; charset=utf-8",
72
- "etag": "\"4c9-xq410PWZKCVMG9544RCH1KwgRss\"",
73
- "mtime": "2026-07-21T16:12:38.913Z",
74
- "size": 1225,
75
- "path": "../public/assets/lifecycleUi-DGVOf5yS.js"
79
+ "etag": "\"55a-5kQTiyhaoUFiJgfkwcmjimREaT4\"",
80
+ "mtime": "2026-07-22T06:01:55.929Z",
81
+ "size": 1370,
82
+ "path": "../public/assets/lifecycleUi-B8Je9exd.js"
76
83
  },
77
- "/assets/invite._token-DJtd-XE2.js": {
84
+ "/assets/LoopView-XXW59HAV.js": {
78
85
  "type": "text/javascript; charset=utf-8",
79
- "etag": "\"17a-cAdlGHABrQC1EieXNozbAP4LVXM\"",
80
- "mtime": "2026-07-21T16:12:38.912Z",
81
- "size": 378,
82
- "path": "../public/assets/invite._token-DJtd-XE2.js"
86
+ "etag": "\"63032-au4WyKv51Kb06j5W4Z45pfHAeSk\"",
87
+ "mtime": "2026-07-22T06:01:55.928Z",
88
+ "size": 405554,
89
+ "path": "../public/assets/LoopView-XXW59HAV.js"
83
90
  },
84
- "/assets/index-DSF-1ahT.js": {
91
+ "/assets/loops._loopId_.runs._runId-lGYlHXTN.js": {
85
92
  "type": "text/javascript; charset=utf-8",
86
- "etag": "\"4a03d-aO3kr8RiIJaph2kC1w+qBwhvTL4\"",
87
- "mtime": "2026-07-21T16:12:38.912Z",
88
- "size": 303165,
89
- "path": "../public/assets/index-DSF-1ahT.js"
93
+ "etag": "\"34fe-VB95dPTpACz75XLcgUWeZJcrL4w\"",
94
+ "mtime": "2026-07-22T06:01:55.929Z",
95
+ "size": 13566,
96
+ "path": "../public/assets/loops._loopId_.runs._runId-lGYlHXTN.js"
90
97
  },
91
98
  "/assets/loopApi-5s2-kCnu.js": {
92
99
  "type": "text/javascript; charset=utf-8",
93
100
  "etag": "\"abb6-KWN+E6PxmR4Pvc5kPukIO41BE9I\"",
94
- "mtime": "2026-07-21T16:12:38.913Z",
101
+ "mtime": "2026-07-22T06:01:55.929Z",
95
102
  "size": 43958,
96
103
  "path": "../public/assets/loopApi-5s2-kCnu.js"
97
104
  },
98
- "/assets/loops._loopId_.runs._runId-DepMp3Me.js": {
105
+ "/assets/loops._loopId-BCK4oIRv.js": {
99
106
  "type": "text/javascript; charset=utf-8",
100
- "etag": "\"34fe-bVKtkCf3ZKPAEBl6ogb0SOSaDFk\"",
101
- "mtime": "2026-07-21T16:12:38.913Z",
102
- "size": 13566,
103
- "path": "../public/assets/loops._loopId_.runs._runId-DepMp3Me.js"
107
+ "etag": "\"8441-oh3SAtymo5Jix0VcNwxmL2knD0U\"",
108
+ "mtime": "2026-07-22T06:01:55.929Z",
109
+ "size": 33857,
110
+ "path": "../public/assets/loops._loopId-BCK4oIRv.js"
104
111
  },
105
- "/assets/routes-BB4aDC1D.js": {
112
+ "/assets/routes-C7Pw5lGn.js": {
106
113
  "type": "text/javascript; charset=utf-8",
107
- "etag": "\"17b-Phsm0oJjcd57MVY8VTO3Eh2llXg\"",
108
- "mtime": "2026-07-21T16:12:38.913Z",
114
+ "etag": "\"17c-hD1eTmNs0nGrAP/DW1jR3LQ/R00\"",
115
+ "mtime": "2026-07-22T06:01:55.929Z",
116
+ "size": 380,
117
+ "path": "../public/assets/routes-C7Pw5lGn.js"
118
+ },
119
+ "/assets/routes-D0zKR7gK.js": {
120
+ "type": "text/javascript; charset=utf-8",
121
+ "etag": "\"17b-Ml9xHpo7F1lqlX76BtxNE6Wz41k\"",
122
+ "mtime": "2026-07-22T06:01:55.929Z",
109
123
  "size": 379,
110
- "path": "../public/assets/routes-BB4aDC1D.js"
124
+ "path": "../public/assets/routes-D0zKR7gK.js"
111
125
  },
112
- "/assets/routes-CTtlM_qt.js": {
126
+ "/assets/t._teamId-CCgajlMS.js": {
113
127
  "type": "text/javascript; charset=utf-8",
114
- "etag": "\"17c-4kukxdOVK/PerPICY86l0YH7c34\"",
115
- "mtime": "2026-07-21T16:12:38.913Z",
116
- "size": 380,
117
- "path": "../public/assets/routes-CTtlM_qt.js"
128
+ "etag": "\"178-9SZFXkDVdtCl5AxcXVfzEuQvKwE\"",
129
+ "mtime": "2026-07-22T06:01:55.929Z",
130
+ "size": 376,
131
+ "path": "../public/assets/t._teamId-CCgajlMS.js"
118
132
  },
119
- "/assets/t._teamId-D552b9PT.js": {
133
+ "/assets/jsx-runtime-BseJUIpC.js": {
120
134
  "type": "text/javascript; charset=utf-8",
121
- "etag": "\"194-lMkQW6nwxrHXcL/GqnDzcxhyt14\"",
122
- "mtime": "2026-07-21T16:12:38.913Z",
123
- "size": 404,
124
- "path": "../public/assets/t._teamId-D552b9PT.js"
135
+ "etag": "\"21db-Zc8kSR08Ehf1UdEHwfS1+Mhso7E\"",
136
+ "mtime": "2026-07-22T06:01:55.929Z",
137
+ "size": 8667,
138
+ "path": "../public/assets/jsx-runtime-BseJUIpC.js"
125
139
  },
126
- "/assets/t._teamId-gR7BVKkR.js": {
140
+ "/assets/t._teamId-Cn7cRGAh.js": {
127
141
  "type": "text/javascript; charset=utf-8",
128
- "etag": "\"178-JyjpENlP5LT8o5HiPy8/g9GxHRI\"",
129
- "mtime": "2026-07-21T16:12:38.913Z",
130
- "size": 376,
131
- "path": "../public/assets/t._teamId-gR7BVKkR.js"
142
+ "etag": "\"194-F8MvWHrnN0YUVk1axrMNwmW5tuQ\"",
143
+ "mtime": "2026-07-22T06:01:55.929Z",
144
+ "size": 404,
145
+ "path": "../public/assets/t._teamId-Cn7cRGAh.js"
132
146
  },
133
- "/assets/notifyFns-b_jCi5XK.js": {
147
+ "/assets/ui-RFP3R3lU.js": {
134
148
  "type": "text/javascript; charset=utf-8",
135
- "etag": "\"f832-C490qc/s5nF1F9eaQqoHLuzYVjc\"",
136
- "mtime": "2026-07-21T16:12:38.913Z",
137
- "size": 63538,
138
- "path": "../public/assets/notifyFns-b_jCi5XK.js"
149
+ "etag": "\"1b66-FHqjBCEZ8HFR1kHRBiUXj4iHLPo\"",
150
+ "mtime": "2026-07-22T06:01:55.930Z",
151
+ "size": 7014,
152
+ "path": "../public/assets/ui-RFP3R3lU.js"
139
153
  },
140
- "/assets/ui-Dp88qUWh.js": {
154
+ "/assets/notifyFns-BneSItOi.js": {
141
155
  "type": "text/javascript; charset=utf-8",
142
- "etag": "\"197f-LXTeIiDu7ctg/qLUkH8t3zT/mEA\"",
143
- "mtime": "2026-07-21T16:12:38.913Z",
144
- "size": 6527,
145
- "path": "../public/assets/ui-Dp88qUWh.js"
156
+ "etag": "\"fbf0-62DHTGx7a4/McwqHodTSL9RYREI\"",
157
+ "mtime": "2026-07-22T06:01:55.929Z",
158
+ "size": 64496,
159
+ "path": "../public/assets/notifyFns-BneSItOi.js"
146
160
  },
147
161
  "/assets/useRouter-DsjH8G0p.js": {
148
162
  "type": "text/javascript; charset=utf-8",
149
163
  "etag": "\"97-bwshbj7pN2rnQJllfZOPZLnOIos\"",
150
- "mtime": "2026-07-21T16:12:38.913Z",
164
+ "mtime": "2026-07-22T06:01:55.930Z",
151
165
  "size": 151,
152
166
  "path": "../public/assets/useRouter-DsjH8G0p.js"
153
167
  },
154
- "/assets/loops._loopId-B-dYxc9i.js": {
155
- "type": "text/javascript; charset=utf-8",
156
- "etag": "\"80a8-yMaDZwwxqIiqtBFhCjvhFypCDKE\"",
157
- "mtime": "2026-07-21T16:12:38.913Z",
158
- "size": 32936,
159
- "path": "../public/assets/loops._loopId-B-dYxc9i.js"
160
- },
161
- "/assets/jsx-runtime-BseJUIpC.js": {
168
+ "/assets/preload-helper-ycaoAemE.js": {
162
169
  "type": "text/javascript; charset=utf-8",
163
- "etag": "\"21db-Zc8kSR08Ehf1UdEHwfS1+Mhso7E\"",
164
- "mtime": "2026-07-21T16:12:38.913Z",
165
- "size": 8667,
166
- "path": "../public/assets/jsx-runtime-BseJUIpC.js"
170
+ "etag": "\"14b77-zGa0lyao2YDxwB4DhkXehm0o13w\"",
171
+ "mtime": "2026-07-22T06:01:55.929Z",
172
+ "size": 84855,
173
+ "path": "../public/assets/preload-helper-ycaoAemE.js"
167
174
  },
168
175
  "/fonts/GeistPixel-Square.woff2": {
169
176
  "type": "font/woff2",
170
177
  "etag": "\"6f7c-IQXyklzDeInO8O/YtOs5/0tckOE\"",
171
- "mtime": "2026-07-21T16:12:39.391Z",
178
+ "mtime": "2026-07-22T06:01:56.409Z",
172
179
  "size": 28540,
173
180
  "path": "../public/fonts/GeistPixel-Square.woff2"
174
181
  },
175
- "/assets/preload-helper-ycaoAemE.js": {
176
- "type": "text/javascript; charset=utf-8",
177
- "etag": "\"14b77-zGa0lyao2YDxwB4DhkXehm0o13w\"",
178
- "mtime": "2026-07-21T16:12:38.913Z",
179
- "size": 84855,
180
- "path": "../public/assets/preload-helper-ycaoAemE.js"
181
- },
182
182
  "/assets/CodeField-dOzyFQNH.js": {
183
183
  "type": "text/javascript; charset=utf-8",
184
184
  "etag": "\"8c119-K1dNstx4oT3G0gi1kwFhBau674k\"",
185
- "mtime": "2026-07-21T16:12:38.912Z",
185
+ "mtime": "2026-07-22T06:01:55.928Z",
186
186
  "size": 573721,
187
187
  "path": "../public/assets/CodeField-dOzyFQNH.js"
188
188
  }
@@ -0,0 +1,12 @@
1
+ -- Redesign run status as the agent's business result across exec/edit/evolve.
2
+ -- The column is plain text (Drizzle enum is TS-only), so this is a data migration
3
+ -- for existing history rather than a DDL constraint change.
4
+ UPDATE "runs"
5
+ SET "status" = CASE "status"
6
+ WHEN 'new' THEN 'kept'
7
+ WHEN 'resolved' THEN 'kept'
8
+ WHEN 'nothing-new' THEN 'no-change'
9
+ ELSE NULL
10
+ END
11
+ WHERE "status" IS NOT NULL
12
+ AND "status" NOT IN ('kept', 'no-change', 'blocked');