@kky42/pievo-server 2.4.14 → 4.1.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 (95) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/MarkdownView-BuFKr9Jg.js +66 -0
  3. package/.output/public/assets/{actionUi-5PtES4q0.js → actionUi-BZrLpgHT.js} +1 -1
  4. package/.output/public/assets/app-x1CeeY7N.css +2 -0
  5. package/.output/public/assets/index-D0FIKiiW.js +10 -0
  6. package/.output/public/assets/loops._loopId-DTkIz4C0.js +2 -0
  7. package/.output/public/assets/loops._loopId_.runs._runId-CsV2Ih4Z.js +3 -0
  8. package/.output/public/assets/preload-helper-BSxGu4d0.js +3 -0
  9. package/.output/public/assets/{routes-Dm_3J2aV.js → routes-BIOJZsig.js} +1 -1
  10. package/.output/public/assets/routes-m4Z90DTR.js +1 -0
  11. package/.output/server/_chunks/ssr-renderer.mjs +1 -1
  12. package/.output/server/_libs/{drizzle-orm+postgres.mjs → drizzle-orm.mjs} +93 -2218
  13. package/.output/server/_ssr/{MachinesModal-BaEtzycr.mjs → MachinesModal-CLBZxZkq.mjs} +47 -47
  14. package/.output/server/_ssr/MarkdownView-D1J7ImYF.mjs +70 -0
  15. package/.output/server/_ssr/{actionUi-5HOCZnom.mjs → actionUi-DE-Pb2tv.mjs} +1 -2
  16. package/.output/server/_ssr/artifactFiles-B0NPRDOR.mjs +52 -0
  17. package/.output/server/_ssr/{artifactKind-DwDr8IYc.mjs → artifactKind-a2oxT2wQ.mjs} +4 -10
  18. package/.output/server/_ssr/{boot-C472kLwY.mjs → boot-DmpKtb0A.mjs} +2659 -890
  19. package/.output/server/_ssr/lifecycleUi-DEjM8Etm.mjs +106 -0
  20. package/.output/server/_ssr/{loopApi-DT751TJA.mjs → loopApi-DK1lQPrx.mjs} +53 -69
  21. package/.output/server/_ssr/{loopProjection-qaD2I48a.mjs → loopProjection-DdFivf7-.mjs} +6 -24
  22. package/.output/server/_ssr/{loops._loopId-CXgw2Rz1.mjs → loops._loopId-DVCvGSEc.mjs} +36 -116
  23. package/.output/server/_ssr/{loops._loopId_.runs._runId-SASSqOfy.mjs → loops._loopId_.runs._runId-BXbTfLlC.mjs} +35 -39
  24. package/.output/server/_ssr/{loops._loopId_.runs._runId-Dk94Z0Jq.mjs → loops._loopId_.runs._runId-Dr6E-FA5.mjs} +3 -8
  25. package/.output/server/_ssr/{machineFns-BSrIgn3f.mjs → machineFns-DLRHgDdS.mjs} +13 -50
  26. package/.output/server/_ssr/networkAccess-CIlK3ION.mjs +30 -0
  27. package/.output/server/_ssr/router-BhHsTGqu.mjs +355 -0
  28. package/.output/server/_ssr/routes-CCallyCT.mjs +12 -0
  29. package/.output/server/_ssr/{routes-Cr-9yDEH.mjs → routes-CL2Kef-Q.mjs} +91 -50
  30. package/.output/server/_ssr/{routes-DRBS4Zi4.mjs → routes-ngpX7h8D.mjs} +2 -4
  31. package/.output/server/_ssr/ssr.mjs +25 -34
  32. package/.output/server/_ssr/start-B5_9Z5W-.mjs +35 -0
  33. package/.output/server/{_tanstack-start-manifest_v-DxLIQ0cc.mjs → _tanstack-start-manifest_v-BPiJ4yWT.mjs} +9 -15
  34. package/.output/server/drizzle/0000_baseline.sql +6 -97
  35. package/.output/server/drizzle/0001_loop_files.sql +9 -0
  36. package/.output/server/drizzle/meta/_journal.json +3 -17
  37. package/.output/server/index.mjs +50 -50
  38. package/drizzle/0000_baseline.sql +6 -97
  39. package/drizzle/0001_loop_files.sql +9 -0
  40. package/drizzle/meta/_journal.json +3 -17
  41. package/package.json +4 -8
  42. package/scripts/pievo-server.mjs +49 -47
  43. package/scripts/server-cli-lib.mjs +21 -12
  44. package/scripts/server-network.mjs +139 -0
  45. package/.output/public/assets/SignIn-CIFwnZtF.js +0 -1
  46. package/.output/public/assets/app-DvHMhs7S.css +0 -2
  47. package/.output/public/assets/index-CRX2pu0W.js +0 -10
  48. package/.output/public/assets/loops._loopId-BsuV-Rmf.js +0 -67
  49. package/.output/public/assets/loops._loopId_.runs._runId-DpK_fzmZ.js +0 -3
  50. package/.output/public/assets/preload-helper-sAZOZb3G.js +0 -5
  51. package/.output/public/assets/routes-DxF_s3cD.js +0 -1
  52. package/.output/server/_libs/@aws-crypto/crc32+[...].mjs +0 -419
  53. package/.output/server/_libs/@aws-sdk/checksums+[...].mjs +0 -10732
  54. package/.output/server/_libs/@aws-sdk/client-s3+[...].mjs +0 -9475
  55. package/.output/server/_libs/@aws-sdk/credential-provider-http+[...].mjs +0 -137
  56. package/.output/server/_libs/@aws-sdk/credential-provider-ini+[...].mjs +0 -440
  57. package/.output/server/_libs/@aws-sdk/credential-provider-process+[...].mjs +0 -62
  58. package/.output/server/_libs/@aws-sdk/credential-provider-sso+[...].mjs +0 -818
  59. package/.output/server/_libs/@aws-sdk/credential-provider-web-identity+[...].mjs +0 -59
  60. package/.output/server/_libs/@smithy/credential-provider-imds+[...].mjs +0 -342
  61. package/.output/server/_libs/aws-crypto__crc32c.mjs +0 -314
  62. package/.output/server/_libs/aws-sdk__nested-clients.mjs +0 -2671
  63. package/.output/server/_ssr/SignIn-sHQaBQJC.mjs +0 -53
  64. package/.output/server/_ssr/artifactFiles-DO43wwXA.mjs +0 -60
  65. package/.output/server/_ssr/artifacts-Cd7Qx3Qp.mjs +0 -2
  66. package/.output/server/_ssr/auth-0AamrwHo.mjs +0 -38355
  67. package/.output/server/_ssr/auth-client-lSMb_Idt.mjs +0 -1070
  68. package/.output/server/_ssr/bun-sqlite-dialect-BW9W1_Ps-DLIXocA0.mjs +0 -162
  69. package/.output/server/_ssr/core-RrmWoKne.mjs +0 -5
  70. package/.output/server/_ssr/d1-sqlite-dialect-BLC8LXE6-BoFMIPr_.mjs +0 -112
  71. package/.output/server/_ssr/db-BzvMQ2kx.mjs +0 -2
  72. package/.output/server/_ssr/dist-ClzqkwxD.mjs +0 -342
  73. package/.output/server/_ssr/factory-ixUjZqJn.mjs +0 -6903
  74. package/.output/server/_ssr/kysely-adapter-DkZbmKgV.mjs +0 -2
  75. package/.output/server/_ssr/kysely-migration-tables-JkVUjPF_-bPAX9LR_.mjs +0 -19
  76. package/.output/server/_ssr/logger-DDjsYB2X.mjs +0 -2
  77. package/.output/server/_ssr/loopTags-CXx5UdGf.mjs +0 -3356
  78. package/.output/server/_ssr/node-sqlite-dialect-BbUqnnYv.mjs +0 -162
  79. package/.output/server/_ssr/router-BlLlhfJe.mjs +0 -543
  80. package/.output/server/_ssr/routes-DTBltabU.mjs +0 -27
  81. package/.output/server/_ssr/start-4ifArtKx.mjs +0 -4
  82. package/.output/server/_ssr/store-vDZ9INSa.mjs +0 -2
  83. package/.output/server/_ssr/tokens-BHiCElYD.mjs +0 -2
  84. package/.output/server/drizzle/0001_add_pi_agent.sql +0 -9
  85. package/.output/server/drizzle/0002_remove_teams.sql +0 -15
  86. package/.output/server/drizzle/0003_add_loop_tags.sql +0 -5
  87. package/.output/server/node_modules/tslib/modules/index.js +0 -70
  88. package/.output/server/node_modules/tslib/modules/package.json +0 -3
  89. package/.output/server/node_modules/tslib/package.json +0 -47
  90. package/.output/server/node_modules/tslib/tslib.js +0 -484
  91. package/.output/server/package.json +0 -9
  92. package/drizzle/0001_add_pi_agent.sql +0 -9
  93. package/drizzle/0002_remove_teams.sql +0 -15
  94. package/drizzle/0003_add_loop_tags.sql +0 -5
  95. package/scripts/prestart.mjs +0 -66
@@ -1,5 +1,4 @@
1
1
  import { r as __exportAll } from "../_runtime.mjs";
2
- import { i as __exportAll$1 } from "./factory-ixUjZqJn.mjs";
3
2
  import { g as require_react, h as require_jsx_runtime } from "../_libs/@base-ui/react+[...].mjs";
4
3
  import { a as RouterProvider, n as defineHandlerCallback, t as renderRouterToStream } from "../_libs/@tanstack/react-router+[...].mjs";
5
4
  import { PassThrough, Readable } from "node:stream";
@@ -11,7 +10,7 @@ var ssr_exports = /* @__PURE__ */ __exportAll({
11
10
  i: () => getServerFnById,
12
11
  n: () => createServerFn,
13
12
  r: () => TSS_SERVER_FUNCTION,
14
- t: () => server_exports
13
+ t: () => createMiddleware
15
14
  });
16
15
  require_react();
17
16
  var import_jsx_runtime = require_jsx_runtime();
@@ -597,9 +596,6 @@ function getH3Event() {
597
596
  if (!event) throw new Error(`No StartEvent found in AsyncLocalStorage. Make sure you are using the function within the server runtime.`);
598
597
  return event.h3Event;
599
598
  }
600
- function getRequest() {
601
- return getH3Event().req;
602
- }
603
599
  function getResponse() {
604
600
  return getH3Event().res;
605
601
  }
@@ -3418,7 +3414,7 @@ var defaultSerovalPlugins = [
3418
3414
  * the dev styles URL for route-scoped CSS collection.
3419
3415
  */
3420
3416
  async function getStartManifest(matchedRoutes) {
3421
- const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-DxLIQ0cc.mjs");
3417
+ const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-BPiJ4yWT.mjs");
3422
3418
  const startManifest = tsrStartManifest();
3423
3419
  let routes = startManifest.routes;
3424
3420
  routes[rootRouteId];
@@ -3440,87 +3436,83 @@ async function getStartManifest(matchedRoutes) {
3440
3436
  var manifest = {
3441
3437
  "08565e35f6a3dd06ef25401de0343976c47f7ae319d3baed6320b56dd3718311": {
3442
3438
  functionName: "runLoop_createServerFn_handler",
3443
- importer: () => import("./loopApi-DT751TJA.mjs")
3439
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3444
3440
  },
3445
3441
  "08c28b892712a1b491b120b74c7dcb81761988d31ccea60216d1807b73c1182c": {
3446
3442
  functionName: "getRunDiff_createServerFn_handler",
3447
- importer: () => import("./loopApi-DT751TJA.mjs")
3443
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3448
3444
  },
3449
3445
  "169566e7637a22599b4eb32ee3775574e99677406922bbef7482a102036c33dd": {
3450
3446
  functionName: "machineStatus_createServerFn_handler",
3451
- importer: () => import("./machineFns-BSrIgn3f.mjs")
3447
+ importer: () => import("./machineFns-DLRHgDdS.mjs")
3452
3448
  },
3453
3449
  "23e290b2b7483ceea6fe669024c35b12c2c4ddd76649f6fab21c958ceda02940": {
3454
3450
  functionName: "listLoops_createServerFn_handler",
3455
- importer: () => import("./loopApi-DT751TJA.mjs")
3451
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3456
3452
  },
3457
3453
  "27d7eba0b6a2257949392fdd56057275a5c5366484ae01faf3b5897a225ecd83": {
3458
3454
  functionName: "finalizeMachine_createServerFn_handler",
3459
- importer: () => import("./machineFns-BSrIgn3f.mjs")
3455
+ importer: () => import("./machineFns-DLRHgDdS.mjs")
3460
3456
  },
3461
3457
  "5660ea82ea5ff2549e0ce2f8f070c54f3e9e24fee84d547601ef5d6ef49a4016": {
3462
3458
  functionName: "startLoop_createServerFn_handler",
3463
- importer: () => import("./loopApi-DT751TJA.mjs")
3459
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3464
3460
  },
3465
3461
  "5e0d6b55f5629faac2f55a68661eeb82668b2be752192b16264ffb5cd1e6fabe": {
3466
3462
  functionName: "deleteLoop_createServerFn_handler",
3467
- importer: () => import("./loopApi-DT751TJA.mjs")
3463
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3468
3464
  },
3469
3465
  "6850ba403da9dec5aff45794eb52636ca540ddec2d9e59f5c75ccbb852bfeacb": {
3470
3466
  functionName: "stopRun_createServerFn_handler",
3471
- importer: () => import("./loopApi-DT751TJA.mjs")
3467
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3472
3468
  },
3473
3469
  "85fdf73d4fee43aed762f93c5d47d33200fbff39e2d082647dc921f610d32698": {
3474
3470
  functionName: "loadOlderRuns_createServerFn_handler",
3475
- importer: () => import("./loopApi-DT751TJA.mjs")
3471
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3476
3472
  },
3477
3473
  "95b7483b333d7649e70c848319417e83c2af6a0327bbcda2d0e331f626dffe05": {
3478
3474
  functionName: "pauseLoop_createServerFn_handler",
3479
- importer: () => import("./loopApi-DT751TJA.mjs")
3475
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3480
3476
  },
3481
3477
  "9befe6b8d67ccbbd7aa9b538bde2a161a9894761c8936761a9503fda1a88c0fc": {
3482
3478
  functionName: "patchLoop_createServerFn_handler",
3483
- importer: () => import("./loopApi-DT751TJA.mjs")
3479
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3484
3480
  },
3485
3481
  "a6384dc7154d9930422d29396f5de64b3ac69c62ad3824bc4a22d745fc07b293": {
3486
3482
  functionName: "deleteMachine_createServerFn_handler",
3487
- importer: () => import("./machineFns-BSrIgn3f.mjs")
3483
+ importer: () => import("./machineFns-DLRHgDdS.mjs")
3488
3484
  },
3489
3485
  "aa46310016bb8a58b273a648ffd498c87f1f450d12827e30110a3b83ba6a27d9": {
3490
3486
  functionName: "listMachines_createServerFn_handler",
3491
- importer: () => import("./machineFns-BSrIgn3f.mjs")
3487
+ importer: () => import("./machineFns-DLRHgDdS.mjs")
3492
3488
  },
3493
3489
  "b050455aacc84dd2a2c9a45517826ad10f91d8f1545e87cc7015784cc7116a97": {
3494
3490
  functionName: "getLoopDetail_createServerFn_handler",
3495
- importer: () => import("./loopApi-DT751TJA.mjs")
3491
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3496
3492
  },
3497
3493
  "b18bbec3d06dfc77714e1e527dfb9172fd7575a64a6c0d6e73ba6dc658dccf0d": {
3498
3494
  functionName: "getArtifacts_createServerFn_handler",
3499
- importer: () => import("./loopApi-DT751TJA.mjs")
3500
- },
3501
- "b8119d5fe6ca1ed9f609702aa2133b5ac5337030c0bdcf92dc7eba889d6bd2e6": {
3502
- functionName: "getAuthState_createServerFn_handler",
3503
- importer: () => import("./loopApi-DT751TJA.mjs")
3495
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3504
3496
  },
3505
3497
  "cbb6a1b09b309459bbba3dc3851ae85fc468658b3cda77e22b6c6f3e28b65af4": {
3506
3498
  functionName: "getConfig_createServerFn_handler",
3507
- importer: () => import("./loopApi-DT751TJA.mjs")
3499
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3508
3500
  },
3509
3501
  "ce43dcb9366e7c8f7338a6ad28e4290b75a5ee3b13d0d2c9cb585020008f12c6": {
3510
3502
  functionName: "mintConnectKey_createServerFn_handler",
3511
- importer: () => import("./loopApi-DT751TJA.mjs")
3503
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3512
3504
  },
3513
3505
  "e233a461e4526dec3cc4cbaa891a7c3621d5967ce7f32b4fb17e9fb645857b9a": {
3514
3506
  functionName: "stopLoop_createServerFn_handler",
3515
- importer: () => import("./loopApi-DT751TJA.mjs")
3507
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3516
3508
  },
3517
3509
  "ed10d5fe79208e5e0e4e18e4a17b18d7f7db4dd16204c00c3ac90c4644668841": {
3518
3510
  functionName: "getArtifact_createServerFn_handler",
3519
- importer: () => import("./loopApi-DT751TJA.mjs")
3511
+ importer: () => import("./loopApi-DK1lQPrx.mjs")
3520
3512
  },
3521
3513
  "ed679b4e1e05e903a5d4ba4a70d9b9d883991ab22ed59b4d2d69078941818415": {
3522
3514
  functionName: "createMachine_createServerFn_handler",
3523
- importer: () => import("./machineFns-BSrIgn3f.mjs")
3515
+ importer: () => import("./machineFns-DLRHgDdS.mjs")
3524
3516
  }
3525
3517
  };
3526
3518
  async function getServerFnById(id, access) {
@@ -5352,8 +5344,8 @@ var getBaseManifest = getProdBaseManifest;
5352
5344
  var createEarlyHintsForRequest = createEarlyHintsCollector;
5353
5345
  async function loadEntries() {
5354
5346
  const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
5355
- import("./router-BlLlhfJe.mjs"),
5356
- import("./start-4ifArtKx.mjs"),
5347
+ import("./router-BhHsTGqu.mjs"),
5348
+ import("./start-B5_9Z5W-.mjs"),
5357
5349
  import("./empty-plugin-adapters-DKUlnwwl.mjs")
5358
5350
  ]);
5359
5351
  return {
@@ -5729,7 +5721,6 @@ async function handleServerRoutes({ getRouter, request, url, executeRouter, cont
5729
5721
  }
5730
5722
  return normalizeSsrResponse(response);
5731
5723
  }
5732
- var server_exports = /* @__PURE__ */ __exportAll$1({ getRequest: () => getRequest });
5733
5724
  var fetch$1 = createStartHandler(defaultStreamHandler);
5734
5725
  function createServerEntry(entry) {
5735
5726
  return { async fetch(...args) {
@@ -5738,4 +5729,4 @@ function createServerEntry(entry) {
5738
5729
  }
5739
5730
  var server_default = createServerEntry({ fetch: fetch$1 });
5740
5731
  //#endregion
5741
- export { ssr_exports as i, createServerFn as n, getServerFnById as r, TSS_SERVER_FUNCTION as t };
5732
+ export { ssr_exports as a, getServerFnById as i, createMiddleware as n, createServerFn as r, TSS_SERVER_FUNCTION as t };
@@ -0,0 +1,35 @@
1
+ import { n as createMiddleware } from "./ssr.mjs";
2
+ //#region node_modules/.nitro/vite/services/ssr/assets/start-B5_9Z5W-.js
3
+ function dedupeSerializationAdapters(deduped, serializationAdapters) {
4
+ for (let i = 0, len = serializationAdapters.length; i < len; i++) {
5
+ const current = serializationAdapters[i];
6
+ if (!deduped.has(current)) {
7
+ deduped.add(current);
8
+ if (current.extends) dedupeSerializationAdapters(deduped, current.extends);
9
+ }
10
+ }
11
+ }
12
+ var createStart = (getOptions) => {
13
+ return {
14
+ getOptions: async () => {
15
+ const options = await getOptions();
16
+ if (options.serializationAdapters) {
17
+ const deduped = /* @__PURE__ */ new Set();
18
+ dedupeSerializationAdapters(deduped, options.serializationAdapters);
19
+ options.serializationAdapters = Array.from(deduped);
20
+ }
21
+ return options;
22
+ },
23
+ createMiddleware
24
+ };
25
+ };
26
+ /** Rejects requests from outside this machine, the LAN, and the tailnet. */
27
+ var networkAccess = createMiddleware().server(async ({ request, next }) => {
28
+ const { isTrustedPeer } = await import("./networkAccess-CIlK3ION.mjs");
29
+ const peer = request.ip;
30
+ if (!isTrustedPeer(peer)) return new Response("Pievo only accepts connections from this machine, the local network, or Tailscale.", { status: 403 });
31
+ return next();
32
+ });
33
+ var startInstance = createStart(() => ({ requestMiddleware: [networkAccess] }));
34
+ //#endregion
35
+ export { startInstance };
@@ -1,4 +1,4 @@
1
- //#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-DxLIQ0cc.js
1
+ //#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-BPiJ4yWT.js
2
2
  var tsrStartManifest = () => ({ routes: {
3
3
  __root__: {
4
4
  filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/__root.tsx",
@@ -8,44 +8,38 @@ var tsrStartManifest = () => ({ routes: {
8
8
  "/api/ready",
9
9
  "/loops/$loopId",
10
10
  "/machine/report",
11
- "/api/auth/$",
12
11
  "/api/machine/cli",
13
12
  "/api/machine/poll",
14
13
  "/api/machine/status",
15
- "/api/machine/sync",
16
14
  "/api/artifact/$loopId/$",
17
- "/api/machine/blob/$hash",
15
+ "/api/machine/run-files/$name",
18
16
  "/loops/$loopId_/runs/$runId"
19
17
  ],
20
18
  preloads: [
21
- "/assets/index-CRX2pu0W.js",
22
- "/assets/actionUi-5PtES4q0.js",
23
- "/assets/preload-helper-sAZOZb3G.js"
19
+ "/assets/index-D0FIKiiW.js",
20
+ "/assets/actionUi-BZrLpgHT.js",
21
+ "/assets/preload-helper-BSxGu4d0.js"
24
22
  ],
25
23
  scripts: [{ attrs: {
26
24
  type: "module",
27
25
  async: !0,
28
- src: "/assets/index-CRX2pu0W.js"
26
+ src: "/assets/index-D0FIKiiW.js"
29
27
  } }]
30
28
  },
31
29
  "/": {
32
30
  filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/index.tsx",
33
31
  children: void 0,
34
- preloads: [
35
- "/assets/routes-Dm_3J2aV.js",
36
- "/assets/routes-DxF_s3cD.js",
37
- "/assets/SignIn-CIFwnZtF.js"
38
- ]
32
+ preloads: ["/assets/routes-BIOJZsig.js", "/assets/routes-m4Z90DTR.js"]
39
33
  },
40
34
  "/loops/$loopId": {
41
35
  filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/loops.$loopId.tsx",
42
36
  children: void 0,
43
- preloads: ["/assets/loops._loopId-BsuV-Rmf.js", "/assets/SignIn-CIFwnZtF.js"]
37
+ preloads: ["/assets/loops._loopId-DTkIz4C0.js", "/assets/MarkdownView-BuFKr9Jg.js"]
44
38
  },
45
39
  "/loops/$loopId_/runs/$runId": {
46
40
  filePath: "/home/runner/work/pievo/pievo/packages/server/src/routes/loops.$loopId_.runs.$runId.tsx",
47
41
  children: void 0,
48
- preloads: ["/assets/loops._loopId_.runs._runId-DpK_fzmZ.js", "/assets/SignIn-CIFwnZtF.js"]
42
+ preloads: ["/assets/loops._loopId_.runs._runId-CsV2Ih4Z.js", "/assets/MarkdownView-BuFKr9Jg.js"]
49
43
  }
50
44
  } });
51
45
  //#endregion
@@ -18,17 +18,14 @@ CREATE TABLE "blobs" (
18
18
  --> statement-breakpoint
19
19
  CREATE TABLE "connect_keys" (
20
20
  "machine_id" text PRIMARY KEY NOT NULL,
21
- "user_id" text NOT NULL,
22
- "team_id" text NOT NULL,
23
21
  "minted_at" text NOT NULL
24
22
  );
25
23
  --> statement-breakpoint
26
24
  CREATE TABLE "loops" (
27
25
  "id" text PRIMARY KEY NOT NULL,
28
- "user_id" text NOT NULL,
29
- "team_id" text NOT NULL,
30
26
  "machine_id" text NOT NULL,
31
27
  "name" text NOT NULL,
28
+ "tags" text[] DEFAULT ARRAY[]::text[] NOT NULL,
32
29
  "prompt" text NOT NULL,
33
30
  "status_keep" text NOT NULL,
34
31
  "status_no_change" text NOT NULL,
@@ -51,15 +48,15 @@ CREATE TABLE "loops" (
51
48
  "last_run_index" integer DEFAULT 0 NOT NULL,
52
49
  "created_at" text NOT NULL,
53
50
  "updated_at" text NOT NULL,
54
- CONSTRAINT "loops_agent_check" CHECK ("loops"."agent" IN ('claude-code', 'codex')),
51
+ CONSTRAINT "loops_agent_check" CHECK ("loops"."agent" IN ('claude-code', 'codex', 'pi')),
52
+ CONSTRAINT "loops_tags_count_check" CHECK (cardinality("loops"."tags") <= 4),
53
+ CONSTRAINT "loops_tags_reserved_check" CHECK (NOT ("loops"."tags" && ARRAY['all loops', 'active', 'paused', 'blocked']::text[])),
55
54
  CONSTRAINT "loops_schedule_mode_check" CHECK ("loops"."schedule_mode" IN ('cron', 'continuous')),
56
55
  CONSTRAINT "loops_cron_overlap_check" CHECK ("loops"."cron_overlap" IN ('skip', 'queue-one'))
57
56
  );
58
57
  --> statement-breakpoint
59
58
  CREATE TABLE "machines" (
60
59
  "id" text PRIMARY KEY NOT NULL,
61
- "user_id" text NOT NULL,
62
- "team_id" text NOT NULL,
63
60
  "name" text NOT NULL,
64
61
  "hostname" text,
65
62
  "platform" text,
@@ -125,40 +122,12 @@ CREATE TABLE "runs" (
125
122
  "cancel_requested_at" timestamp with time zone,
126
123
  "heartbeat_at" text,
127
124
  "report_incident" jsonb,
128
- CONSTRAINT "runs_agent_check" CHECK ("runs"."agent" IS NULL OR "runs"."agent" IN ('claude-code', 'codex')),
125
+ CONSTRAINT "runs_agent_check" CHECK ("runs"."agent" IS NULL OR "runs"."agent" IN ('claude-code', 'codex', 'pi')),
129
126
  CONSTRAINT "runs_phase_check" CHECK ("runs"."phase" IN ('pending', 'running', 'done', 'error', 'canceled')),
130
127
  CONSTRAINT "runs_requested_by_check" CHECK ("runs"."requested_by" IN ('owner', 'system')),
131
128
  CONSTRAINT "runs_status_check" CHECK ("runs"."status" IS NULL OR "runs"."status" IN ('keep', 'no-change', 'block'))
132
129
  );
133
130
  --> statement-breakpoint
134
- CREATE TABLE "team_invites" (
135
- "token" text PRIMARY KEY NOT NULL,
136
- "team_id" text NOT NULL,
137
- "role" text DEFAULT 'member' NOT NULL,
138
- "invited_by_user_id" text NOT NULL,
139
- "expires_at" text NOT NULL,
140
- "redeemed_at" text,
141
- "redeemed_by_user_id" text,
142
- "created_at" text NOT NULL,
143
- CONSTRAINT "team_invites_role_check" CHECK ("team_invites"."role" IN ('owner', 'member'))
144
- );
145
- --> statement-breakpoint
146
- CREATE TABLE "team_members" (
147
- "id" text PRIMARY KEY NOT NULL,
148
- "team_id" text NOT NULL,
149
- "user_id" text NOT NULL,
150
- "role" text DEFAULT 'member' NOT NULL,
151
- "created_at" text NOT NULL,
152
- CONSTRAINT "team_members_role_check" CHECK ("team_members"."role" IN ('owner', 'member'))
153
- );
154
- --> statement-breakpoint
155
- CREATE TABLE "teams" (
156
- "id" text PRIMARY KEY NOT NULL,
157
- "name" text NOT NULL,
158
- "owner_user_id" text,
159
- "created_at" text NOT NULL
160
- );
161
- --> statement-breakpoint
162
131
  CREATE TABLE "terminal_report_incidents" (
163
132
  "id" text PRIMARY KEY NOT NULL,
164
133
  "run_id" text NOT NULL,
@@ -170,65 +139,11 @@ CREATE TABLE "terminal_report_incidents" (
170
139
  CONSTRAINT "terminal_report_incidents_disposition_check" CHECK ("terminal_report_incidents"."disposition" IN ('run-error', 'telemetry-rejected'))
171
140
  );
172
141
  --> statement-breakpoint
173
- CREATE TABLE "account" (
174
- "id" text PRIMARY KEY NOT NULL,
175
- "account_id" text NOT NULL,
176
- "provider_id" text NOT NULL,
177
- "user_id" text NOT NULL,
178
- "access_token" text,
179
- "refresh_token" text,
180
- "id_token" text,
181
- "access_token_expires_at" timestamp,
182
- "refresh_token_expires_at" timestamp,
183
- "scope" text,
184
- "password" text,
185
- "created_at" timestamp DEFAULT now() NOT NULL,
186
- "updated_at" timestamp NOT NULL
187
- );
188
- --> statement-breakpoint
189
- CREATE TABLE "session" (
190
- "id" text PRIMARY KEY NOT NULL,
191
- "expires_at" timestamp NOT NULL,
192
- "token" text NOT NULL,
193
- "created_at" timestamp DEFAULT now() NOT NULL,
194
- "updated_at" timestamp NOT NULL,
195
- "ip_address" text,
196
- "user_agent" text,
197
- "user_id" text NOT NULL,
198
- CONSTRAINT "session_token_unique" UNIQUE("token")
199
- );
200
- --> statement-breakpoint
201
- CREATE TABLE "user" (
202
- "id" text PRIMARY KEY NOT NULL,
203
- "name" text NOT NULL,
204
- "email" text NOT NULL,
205
- "email_verified" boolean DEFAULT false NOT NULL,
206
- "image" text,
207
- "created_at" timestamp DEFAULT now() NOT NULL,
208
- "updated_at" timestamp DEFAULT now() NOT NULL,
209
- CONSTRAINT "user_email_unique" UNIQUE("email")
210
- );
211
- --> statement-breakpoint
212
- CREATE TABLE "verification" (
213
- "id" text PRIMARY KEY NOT NULL,
214
- "identifier" text NOT NULL,
215
- "value" text NOT NULL,
216
- "expires_at" timestamp NOT NULL,
217
- "created_at" timestamp DEFAULT now() NOT NULL,
218
- "updated_at" timestamp DEFAULT now() NOT NULL
219
- );
220
- --> statement-breakpoint
221
- ALTER TABLE "account" ADD CONSTRAINT "account_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
222
- ALTER TABLE "session" ADD CONSTRAINT "session_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
223
142
  CREATE INDEX "artifact_files_loop_idx" ON "artifact_files" USING btree ("loop_id");--> statement-breakpoint
224
143
  CREATE UNIQUE INDEX "artifact_files_loop_path_idx" ON "artifact_files" USING btree ("loop_id","path");--> statement-breakpoint
225
144
  CREATE INDEX "artifact_files_hash_idx" ON "artifact_files" USING btree ("hash");--> statement-breakpoint
226
- CREATE INDEX "loops_user_idx" ON "loops" USING btree ("user_id");--> statement-breakpoint
227
- CREATE INDEX "loops_team_idx" ON "loops" USING btree ("team_id");--> statement-breakpoint
228
145
  CREATE INDEX "loops_machine_idx" ON "loops" USING btree ("machine_id");--> statement-breakpoint
229
146
  CREATE INDEX "delete_requested_loops" ON "loops" USING btree ("delete_requested_at") WHERE "loops"."delete_requested_at" IS NOT NULL;--> statement-breakpoint
230
- CREATE INDEX "machines_user_idx" ON "machines" USING btree ("user_id");--> statement-breakpoint
231
- CREATE INDEX "machines_team_idx" ON "machines" USING btree ("team_id");--> statement-breakpoint
232
147
  CREATE INDEX "run_leases_run_idx" ON "run_leases" USING btree ("run_id");--> statement-breakpoint
233
148
  CREATE INDEX "run_leases_loop_idx" ON "run_leases" USING btree ("loop_id");--> statement-breakpoint
234
149
  CREATE INDEX "report_receipts_created" ON "run_report_receipts" USING btree ("created_at");--> statement-breakpoint
@@ -241,11 +156,5 @@ CREATE UNIQUE INDEX "runs_loop_run_index_idx" ON "runs" USING btree ("loop_id","
241
156
  CREATE INDEX "runs_loop_terminal_history_idx" ON "runs" USING btree ("loop_id","run_index") WHERE "runs"."run_index" IS NOT NULL AND "runs"."phase" IN ('done', 'error', 'canceled');--> statement-breakpoint
242
157
  CREATE UNIQUE INDEX "runs_loop_pending_idx" ON "runs" USING btree ("loop_id") WHERE "runs"."phase" = 'pending';--> statement-breakpoint
243
158
  CREATE UNIQUE INDEX "one_running_run_per_loop" ON "runs" USING btree ("loop_id") WHERE "runs"."phase" = 'running';--> statement-breakpoint
244
- CREATE INDEX "team_invites_team_idx" ON "team_invites" USING btree ("team_id");--> statement-breakpoint
245
- CREATE INDEX "team_members_team_idx" ON "team_members" USING btree ("team_id");--> statement-breakpoint
246
- CREATE INDEX "team_members_user_idx" ON "team_members" USING btree ("user_id");--> statement-breakpoint
247
159
  CREATE INDEX "terminal_report_incidents_report_id" ON "terminal_report_incidents" USING btree ("report_id");--> statement-breakpoint
248
- CREATE INDEX "terminal_report_incidents_created" ON "terminal_report_incidents" USING btree ("created_at");--> statement-breakpoint
249
- CREATE INDEX "account_userId_idx" ON "account" USING btree ("user_id");--> statement-breakpoint
250
- CREATE INDEX "session_userId_idx" ON "session" USING btree ("user_id");--> statement-breakpoint
251
- CREATE INDEX "verification_identifier_idx" ON "verification" USING btree ("identifier");
160
+ CREATE INDEX "terminal_report_incidents_created" ON "terminal_report_incidents" USING btree ("created_at");
@@ -0,0 +1,9 @@
1
+ -- Loop files replace workdir-relative artifact sync (protocol v5).
2
+ -- DATA LOSS (intentional): previously synced workdir artifacts, their per-run
3
+ -- snapshots, and every loop's configured artifact paths are dropped. Old paths
4
+ -- are not valid loop file names; orphaned blob bytes are reclaimed by the next
5
+ -- storage-maintenance pass. Run history and loop configuration are otherwise kept.
6
+ DELETE FROM "artifact_files";--> statement-breakpoint
7
+ DELETE FROM "run_snapshots";--> statement-breakpoint
8
+ UPDATE "loops" SET "artifacts" = '[]'::jsonb;--> statement-breakpoint
9
+ ALTER TABLE "runs" ADD COLUMN "file_notices" jsonb;
@@ -5,29 +5,15 @@
5
5
  {
6
6
  "idx": 0,
7
7
  "version": "7",
8
- "when": 1785146849042,
8
+ "when": 1792651729223,
9
9
  "tag": "0000_baseline",
10
10
  "breakpoints": true
11
11
  },
12
12
  {
13
13
  "idx": 1,
14
14
  "version": "7",
15
- "when": 1785146849043,
16
- "tag": "0001_add_pi_agent",
17
- "breakpoints": true
18
- },
19
- {
20
- "idx": 2,
21
- "version": "7",
22
- "when": 1785146849044,
23
- "tag": "0002_remove_teams",
24
- "breakpoints": true
25
- },
26
- {
27
- "idx": 3,
28
- "version": "7",
29
- "when": 1786301181156,
30
- "tag": "0003_add_loop_tags",
15
+ "when": 1792900000000,
16
+ "tag": "0001_loop_files",
31
17
  "breakpoints": true
32
18
  }
33
19
  ]
@@ -14,79 +14,79 @@ var public_assets_data_default = {
14
14
  "/favicon.svg": {
15
15
  "type": "image/svg+xml",
16
16
  "etag": "\"2f9-diQHMODwkdsIQ2ssl9fzDaFKaXE\"",
17
- "mtime": "2026-08-10T01:06:28.350Z",
17
+ "mtime": "2026-10-22T10:50:51.051Z",
18
18
  "size": 761,
19
19
  "path": "../public/favicon.svg"
20
20
  },
21
- "/assets/SignIn-CIFwnZtF.js": {
21
+ "/assets/MarkdownView-BuFKr9Jg.js": {
22
22
  "type": "text/javascript; charset=utf-8",
23
- "etag": "\"40c-2rs0DSexiNCb72JsSSpXd0NasjQ\"",
24
- "mtime": "2026-08-10T01:06:27.499Z",
25
- "size": 1036,
26
- "path": "../public/assets/SignIn-CIFwnZtF.js"
23
+ "etag": "\"1094f-ls/sRzLDOuiphhEduGSuCi+lyfc\"",
24
+ "mtime": "2026-10-22T10:50:50.447Z",
25
+ "size": 67919,
26
+ "path": "../public/assets/MarkdownView-BuFKr9Jg.js"
27
27
  },
28
- "/assets/actionUi-5PtES4q0.js": {
28
+ "/assets/actionUi-BZrLpgHT.js": {
29
29
  "type": "text/javascript; charset=utf-8",
30
- "etag": "\"4291-Qip7gU3oZ0DhRdO+agF1M/wjQdk\"",
31
- "mtime": "2026-08-10T01:06:27.499Z",
32
- "size": 17041,
33
- "path": "../public/assets/actionUi-5PtES4q0.js"
30
+ "etag": "\"4286-Qit0x3bDDnN7vmOhgEqWGOFur4I\"",
31
+ "mtime": "2026-10-22T10:50:50.447Z",
32
+ "size": 17030,
33
+ "path": "../public/assets/actionUi-BZrLpgHT.js"
34
34
  },
35
- "/assets/app-DvHMhs7S.css": {
36
- "type": "text/css; charset=utf-8",
37
- "etag": "\"9b16-2OiJVtJYlZqGnZ1zxya8M2r8dwo\"",
38
- "mtime": "2026-08-10T01:06:27.500Z",
39
- "size": 39702,
40
- "path": "../public/assets/app-DvHMhs7S.css"
41
- },
42
- "/assets/loops._loopId-BsuV-Rmf.js": {
35
+ "/assets/loops._loopId_.runs._runId-CsV2Ih4Z.js": {
43
36
  "type": "text/javascript; charset=utf-8",
44
- "etag": "\"1764c-nikBeaC2+r4UoKv9zhAqMGPFxGc\"",
45
- "mtime": "2026-08-10T01:06:27.499Z",
46
- "size": 95820,
47
- "path": "../public/assets/loops._loopId-BsuV-Rmf.js"
37
+ "etag": "\"33d0-NGoMGM+6xxPh+j5QdHf/G1xVycI\"",
38
+ "mtime": "2026-10-22T10:50:50.447Z",
39
+ "size": 13264,
40
+ "path": "../public/assets/loops._loopId_.runs._runId-CsV2Ih4Z.js"
48
41
  },
49
- "/assets/loops._loopId_.runs._runId-DpK_fzmZ.js": {
42
+ "/assets/preload-helper-BSxGu4d0.js": {
50
43
  "type": "text/javascript; charset=utf-8",
51
- "etag": "\"33f3-kdFmoz9qUQuwLYEywD9Ly5ZD6iE\"",
52
- "mtime": "2026-08-10T01:06:27.499Z",
53
- "size": 13299,
54
- "path": "../public/assets/loops._loopId_.runs._runId-DpK_fzmZ.js"
44
+ "etag": "\"11674-qLNzLzvmlEU0VhEXuxCi3rXqW0U\"",
45
+ "mtime": "2026-10-22T10:50:50.447Z",
46
+ "size": 71284,
47
+ "path": "../public/assets/preload-helper-BSxGu4d0.js"
55
48
  },
56
- "/assets/index-CRX2pu0W.js": {
57
- "type": "text/javascript; charset=utf-8",
58
- "etag": "\"5def1-sVvbabEyPmXuKmSaK1pWDF1HSPg\"",
59
- "mtime": "2026-08-10T01:06:27.499Z",
60
- "size": 384753,
61
- "path": "../public/assets/index-CRX2pu0W.js"
49
+ "/assets/app-x1CeeY7N.css": {
50
+ "type": "text/css; charset=utf-8",
51
+ "etag": "\"9848-45FOUv7o+DUQLbOgP4klOpzsZlc\"",
52
+ "mtime": "2026-10-22T10:50:50.447Z",
53
+ "size": 38984,
54
+ "path": "../public/assets/app-x1CeeY7N.css"
62
55
  },
63
- "/assets/routes-Dm_3J2aV.js": {
56
+ "/assets/index-D0FIKiiW.js": {
64
57
  "type": "text/javascript; charset=utf-8",
65
- "etag": "\"135-m+5pzcK0mToJrOEQv+dqjYiJYEs\"",
66
- "mtime": "2026-08-10T01:06:27.500Z",
67
- "size": 309,
68
- "path": "../public/assets/routes-Dm_3J2aV.js"
58
+ "etag": "\"5e321-k6ntrCh8J63jgArNgabC/WbApxI\"",
59
+ "mtime": "2026-10-22T10:50:50.447Z",
60
+ "size": 385825,
61
+ "path": "../public/assets/index-D0FIKiiW.js"
69
62
  },
70
- "/assets/routes-DxF_s3cD.js": {
63
+ "/assets/routes-BIOJZsig.js": {
71
64
  "type": "text/javascript; charset=utf-8",
72
- "etag": "\"1f4-3t0cgqrPmuajC0RY2kyeo64RxDQ\"",
73
- "mtime": "2026-08-10T01:06:27.500Z",
74
- "size": 500,
75
- "path": "../public/assets/routes-DxF_s3cD.js"
65
+ "etag": "\"135-XoZP43FtQXsg+qNy3Rq8mg5WHbw\"",
66
+ "mtime": "2026-10-22T10:50:50.447Z",
67
+ "size": 309,
68
+ "path": "../public/assets/routes-BIOJZsig.js"
76
69
  },
77
- "/assets/preload-helper-sAZOZb3G.js": {
70
+ "/assets/loops._loopId-DTkIz4C0.js": {
78
71
  "type": "text/javascript; charset=utf-8",
79
- "etag": "\"18d18-g49yLMFDSKWfjoY0LWsdw76xYUU\"",
80
- "mtime": "2026-08-10T01:06:27.499Z",
81
- "size": 101656,
82
- "path": "../public/assets/preload-helper-sAZOZb3G.js"
72
+ "etag": "\"6a47-oFDeTT3EX4wtMFGhce3ocN/bKVA\"",
73
+ "mtime": "2026-10-22T10:50:50.447Z",
74
+ "size": 27207,
75
+ "path": "../public/assets/loops._loopId-DTkIz4C0.js"
83
76
  },
84
77
  "/fonts/GeistPixel-Square.woff2": {
85
78
  "type": "font/woff2",
86
79
  "etag": "\"6f7c-IQXyklzDeInO8O/YtOs5/0tckOE\"",
87
- "mtime": "2026-08-10T01:06:28.350Z",
80
+ "mtime": "2026-10-22T10:50:51.051Z",
88
81
  "size": 28540,
89
82
  "path": "../public/fonts/GeistPixel-Square.woff2"
83
+ },
84
+ "/assets/routes-m4Z90DTR.js": {
85
+ "type": "text/javascript; charset=utf-8",
86
+ "etag": "\"b7-4IBOQXhD+4FU+W+UeF0P6Bs7mxM\"",
87
+ "mtime": "2026-10-22T10:50:50.447Z",
88
+ "size": 183,
89
+ "path": "../public/assets/routes-m4Z90DTR.js"
90
90
  }
91
91
  };
92
92
  //#endregion