@voltro/cli 0.59.0 → 0.61.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 (96) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/dist/apiBuild-5U7PxjLa.js +2 -0
  3. package/dist/{apiBuild-BU5cd-Fn.js → apiBuild-C5HhMAEm.js} +2 -2
  4. package/dist/bin.js +1 -1
  5. package/dist/{build-uRMZrT8z.js → build-DQr7SsKK.js} +21 -17
  6. package/dist/{checkCommand-C1CQc8lD.js → checkCommand-ByaOhdc8.js} +1 -1
  7. package/dist/{checkCommand-DC7k1_hP.js → checkCommand-CvSheSdb.js} +3 -3
  8. package/dist/{codegenCommand-kS3Twuc9.js → codegenCommand-CI0mpjxo.js} +1 -1
  9. package/dist/{codemodRunner-kNnh1I7_.js → codemodRunner-Drb-H-jr.js} +258 -159
  10. package/dist/{commands-cu34ENUT.js → commands-pCItjdHG.js} +21 -21
  11. package/dist/{dashboardCommand-gG1y4PFG.js → dashboardCommand-O-ToEgiH.js} +3 -3
  12. package/dist/{dataCommand-hNOGKz4K.js → dataCommand-mn1Zc88W.js} +1 -1
  13. package/dist/{dev-Ce2gEziv.js → dev-dSH-Pkb2.js} +1 -1
  14. package/dist/{dev-Dff_pdik.js → dev-kn9-7RXZ.js} +1 -1
  15. package/dist/doctorCommand-BVat2ejT.js +2 -0
  16. package/dist/{doctorCommand-CGjefPmk.js → doctorCommand-ClB7Ucz5.js} +13 -13
  17. package/dist/{dormancyCommand-DYgI0Kf-.js → dormancyCommand-DZupfuq-.js} +1 -1
  18. package/dist/{embeddingsCommand-yJivQSrI.js → embeddingsCommand-D8_GquVX.js} +1 -1
  19. package/dist/{envCommand-ORJUf8r_.js → envCommand-DRjVSXRp.js} +2 -2
  20. package/dist/{evolveCommand-8CuFBlbQ.js → evolveCommand-Cb0C2b3V.js} +2 -2
  21. package/dist/index.js +1 -1
  22. package/dist/{infoCommand-D02A4WI2.js → infoCommand-BlKnoY2D.js} +1 -1
  23. package/dist/{probeCommand-BUYzc0CT.js → probeCommand-DYsOFm62.js} +1 -1
  24. package/dist/{runtimeTrace-DDuKJgVi.js → runtimeTrace-BI3kdicc.js} +1 -1
  25. package/dist/{sdkgen-vq1fF9D_.js → sdkgen-DZ4zCtV4.js} +1 -1
  26. package/dist/serveCommand-CwK_6Wxt.js +2 -0
  27. package/dist/{serveCommand-Dr4KXmTS.js → serveCommand-DnxqCQ16.js} +3 -3
  28. package/dist/serveEntry.js +1 -1
  29. package/dist/{start-C75w6ftA.js → start-DE4ixCTi.js} +1 -1
  30. package/dist/{start-DNtIlBcn.js → start-bqT4GRH0.js} +286 -226
  31. package/dist/startEntry.js +1 -1
  32. package/dist/{updateCommand-Bw3mCUDT.js → updateCommand-B18ZQNFg.js} +1 -1
  33. package/dist/updateCommand-B4EgDD-m.js +2 -0
  34. package/dist/{webDev-CBN9KkyQ.js → webDev-CYjhmOTZ.js} +1 -1
  35. package/dist/{webDev-Bzb8ZFus.js → webDev-CuG3Ged-.js} +1 -1
  36. package/dist/{webhooksCommand-BPJQOGTe.js → webhooksCommand-Bs-HZ4wY.js} +1 -1
  37. package/package.json +37 -19
  38. package/templates/AGENTS.md +2 -2
  39. package/templates/agent-docs/_index.md +2 -2
  40. package/templates/agent-docs/_manifest.json +1 -1
  41. package/templates/agent-docs/data.md +10 -2
  42. package/templates/agent-docs/observability.md +7 -1
  43. package/templates/agent-docs/plugins/sentry.md +121 -17
  44. package/templates/agent-docs/schema-driven-ui.md +38 -10
  45. package/templates/agent-docs/whats-new.md +11 -41
  46. package/templates/apps/api-ai/package.json +6 -6
  47. package/templates/apps/api-auth/package.json +8 -8
  48. package/templates/apps/api-backend/package.json +7 -7
  49. package/templates/apps/api-backend-deactivation/package.json +7 -7
  50. package/templates/apps/api-backend-mail/package.json +8 -8
  51. package/templates/apps/api-backend-mariadb/package.json +9 -9
  52. package/templates/apps/api-backend-sqlite/package.json +8 -8
  53. package/templates/apps/api-backend-storage/package.json +8 -8
  54. package/templates/apps/api-cms/package.json +9 -9
  55. package/templates/apps/api-collab/package.json +8 -8
  56. package/templates/apps/api-data-advanced/package.json +8 -8
  57. package/templates/apps/api-durable/package.json +8 -8
  58. package/templates/apps/api-feature-flags/package.json +9 -9
  59. package/templates/apps/api-governance/package.json +8 -8
  60. package/templates/apps/api-kv/package.json +8 -8
  61. package/templates/apps/api-moderation/package.json +8 -8
  62. package/templates/apps/api-observability/package.json +8 -8
  63. package/templates/apps/api-ratelimit/package.json +8 -8
  64. package/templates/apps/api-rbac/package.json +8 -8
  65. package/templates/apps/api-rest/package.json +7 -7
  66. package/templates/apps/api-row-history/package.json +8 -8
  67. package/templates/apps/api-saas/package.json +11 -11
  68. package/templates/apps/api-saas-starter/package.json +10 -10
  69. package/templates/apps/api-search/package.json +8 -8
  70. package/templates/apps/api-status/package.json +8 -8
  71. package/templates/apps/api-webhooks/package.json +9 -9
  72. package/templates/apps/changelog/package.json +7 -7
  73. package/templates/apps/edge-functions/package.json +2 -2
  74. package/templates/apps/frontend-admin/package.json +7 -7
  75. package/templates/apps/frontend-app/package.json +8 -8
  76. package/templates/apps/frontend-auth/package.json +7 -7
  77. package/templates/apps/frontend-blank/package.json +6 -6
  78. package/templates/apps/frontend-cms/package.json +8 -8
  79. package/templates/apps/frontend-collab/package.json +9 -9
  80. package/templates/apps/frontend-contact/package.json +7 -7
  81. package/templates/apps/frontend-dashboard/package.json +6 -6
  82. package/templates/apps/frontend-docs/package.json +8 -8
  83. package/templates/apps/frontend-i18n/package.json +6 -6
  84. package/templates/apps/frontend-landing/package.json +7 -7
  85. package/templates/apps/frontend-portal/package.json +7 -7
  86. package/templates/apps/frontend-saas/package.json +7 -7
  87. package/templates/apps/frontend-spa/package.json +6 -6
  88. package/templates/apps/frontend-ssr/package.json +6 -6
  89. package/templates/apps/frontend-ssr-api/package.json +7 -7
  90. package/templates/apps/frontend-static-blog/package.json +8 -8
  91. package/templates/apps/frontend-status/package.json +7 -7
  92. package/templates/apps/mobile-app/package.json +4 -4
  93. package/dist/apiBuild-B9OvhITV.js +0 -2
  94. package/dist/doctorCommand-DXnNpKQT.js +0 -2
  95. package/dist/serveCommand-1R52mo6F.js +0 -2
  96. package/dist/updateCommand-inInBIAh.js +0 -2
@@ -91,7 +91,7 @@ var u = () => {
91
91
  name: "dev",
92
92
  summary: "Start the local development server (auto-discovers routes / mutations).",
93
93
  status: "wired",
94
- run: (e) => import("./dev-Dff_pdik.js").then((t) => t.runDev(e)),
94
+ run: (e) => import("./dev-kn9-7RXZ.js").then((t) => t.runDev(e)),
95
95
  help: {
96
96
  usage: "[app]",
97
97
  examples: [["voltro dev", "boot the app in the current directory"], ["voltro dev apps/acme/api", "boot a specific app"]],
@@ -109,7 +109,7 @@ var u = () => {
109
109
  name: "dashboard",
110
110
  summary: "Serve the DevTools dashboard standalone (from @voltro/dashboard). Targets via VOLTRO_DASHBOARD_APPS; --port to override.",
111
111
  status: "wired",
112
- run: (e) => import("./dashboardCommand-gG1y4PFG.js").then((t) => t.runDashboardCommand(e)),
112
+ run: (e) => import("./dashboardCommand-O-ToEgiH.js").then((t) => t.runDashboardCommand(e)),
113
113
  help: {
114
114
  usage: "[--port <n>]",
115
115
  flags: [["--port <n>", "port to serve the dashboard on"]],
@@ -121,7 +121,7 @@ var u = () => {
121
121
  name: "check",
122
122
  summary: "Verify the app graph (blast-radius checks) against a running api; LLM-shaped --json diagnostics. Flags: --json, --process <p>, --diff removeTable:<name>.",
123
123
  status: "wired",
124
- run: (e) => import("./checkCommand-C1CQc8lD.js").then((t) => t.runCheckCommand(e)),
124
+ run: (e) => import("./checkCommand-ByaOhdc8.js").then((t) => t.runCheckCommand(e)),
125
125
  help: {
126
126
  usage: "[--json] [--offline] [--process <name>] [--diff removeTable:<name>]",
127
127
  flags: [
@@ -155,7 +155,7 @@ var u = () => {
155
155
  name: "webhooks",
156
156
  summary: "Outbound-webhook artefacts. `consumer` generates the ZERO-DEPENDENCY Standard-Webhooks verification package a subscriber installs, from this app's own declared events; `events` lists the events a subscriber can register for. Usage: voltro webhooks <consumer|events> [path] [--out <dir>] [--name <pkg>] [--json].",
157
157
  status: "wired",
158
- run: (e) => import("./webhooksCommand-BPJQOGTe.js").then((t) => t.runWebhooksCommand(e)),
158
+ run: (e) => import("./webhooksCommand-Bs-HZ4wY.js").then((t) => t.runWebhooksCommand(e)),
159
159
  help: {
160
160
  usage: "<consumer|events> [path] [--out <dir>] [--name <pkg>] [--json]",
161
161
  flags: [
@@ -171,7 +171,7 @@ var u = () => {
171
171
  name: "evolve",
172
172
  summary: "Schema-evolution copilot: propose an observed-graph-driven codemod + a branch-verified backfill for a schema change (rename/retype/split/drop a column, rename a table). Dry-run by default; --write applies. Usage: voltro evolve rename-column <table>.<col> --to <newName> [--write] [--json].",
173
173
  status: "wired",
174
- run: (e) => import("./evolveCommand-8CuFBlbQ.js").then((t) => t.runEvolveCommand(e)),
174
+ run: (e) => import("./evolveCommand-Cb0C2b3V.js").then((t) => t.runEvolveCommand(e)),
175
175
  help: {
176
176
  usage: "<rename-column|rename-table|retype-column|split-column|drop-column> <target> [--to <new>] [--write]",
177
177
  flags: [
@@ -188,7 +188,7 @@ var u = () => {
188
188
  name: "codegen",
189
189
  summary: "Emit rpcGroup.generated.ts from discovered route / mutation descriptors.",
190
190
  status: "wired",
191
- run: (e) => import("./codegenCommand-kS3Twuc9.js").then((t) => t.runCodegenCommand(e)),
191
+ run: (e) => import("./codegenCommand-CI0mpjxo.js").then((t) => t.runCodegenCommand(e)),
192
192
  help: {
193
193
  usage: "[app]",
194
194
  examples: [["voltro codegen", "regenerate rpcGroup.generated.ts for the app in the cwd"]],
@@ -281,7 +281,7 @@ var u = () => {
281
281
  name: "info",
282
282
  summary: "Report versions (CLI, node, every installed @voltro/* — flags lockstep skew), package manager, and dialect. --json for CI. Exits 1 on version skew.",
283
283
  status: "wired",
284
- run: (e) => import("./infoCommand-D02A4WI2.js").then((t) => t.runInfoCommand(e)),
284
+ run: (e) => import("./infoCommand-BlKnoY2D.js").then((t) => t.runInfoCommand(e)),
285
285
  help: {
286
286
  usage: "[--json]",
287
287
  flags: [["--json", "machine-readable report"]],
@@ -302,7 +302,7 @@ var u = () => {
302
302
  name: "env",
303
303
  summary: "Inspect/sync the typed-env manifest. Subcommands: check (default), sync (.env.example), types (env.generated.d.ts for CI tsc), turbo.",
304
304
  status: "wired",
305
- run: (e) => import("./envCommand-ORJUf8r_.js").then((t) => t.runEnvCommand(e)),
305
+ run: (e) => import("./envCommand-DRjVSXRp.js").then((t) => t.runEnvCommand(e)),
306
306
  help: {
307
307
  usage: "[check|sync|types|turbo] [--force]",
308
308
  flags: [["--force", "overwrite the generated file instead of refusing on a conflict"]],
@@ -331,12 +331,12 @@ var u = () => {
331
331
  run: async (e) => {
332
332
  let t = e.find((e) => !e.startsWith("-")) ?? process.cwd();
333
333
  if (e.includes("--preflight")) {
334
- let { runServePreflight: e } = await import("./doctorCommand-DXnNpKQT.js");
334
+ let { runServePreflight: e } = await import("./doctorCommand-BVat2ejT.js");
335
335
  return e(s(t), !0);
336
336
  }
337
- let { tryRunWebServe: n } = await import("./webDev-Bzb8ZFus.js"), r = await n(s(t));
337
+ let { tryRunWebServe: n } = await import("./webDev-CuG3Ged-.js"), r = await n(s(t));
338
338
  if (!r.ran) {
339
- let { runServeDispatch: t } = await import("./serveCommand-1R52mo6F.js");
339
+ let { runServeDispatch: t } = await import("./serveCommand-CwK_6Wxt.js");
340
340
  return t(e);
341
341
  }
342
342
  return r.exitCode;
@@ -364,13 +364,13 @@ var u = () => {
364
364
  handlesHelp: !0,
365
365
  summary: "Preflight an app for production: the precompiled serve bundle, hand-rolled primitives (naming the shipped one), @voltro/* version skew, executors with no access check, `.serverOnly()` leaks, and junction-FK gaps.",
366
366
  status: "wired",
367
- run: (e) => import("./doctorCommand-DXnNpKQT.js").then((t) => t.runDoctorCommand(e))
367
+ run: (e) => import("./doctorCommand-BVat2ejT.js").then((t) => t.runDoctorCommand(e))
368
368
  },
369
369
  {
370
370
  name: "build",
371
371
  summary: "Production build for a web app (vite build + per-page SSG pre-render).",
372
372
  status: "wired",
373
- run: (e) => import("./build-uRMZrT8z.js").then((t) => t.runBuildCommand(e)),
373
+ run: (e) => import("./build-DQr7SsKK.js").then((t) => t.runBuildCommand(e)),
374
374
  help: {
375
375
  usage: "[app] [--target <t>]",
376
376
  flags: [["--target <t>", "build target"], ["--report", "print what a visitor downloads: first load, chunks, server artefacts"]],
@@ -386,7 +386,7 @@ var u = () => {
386
386
  name: "prune-runtime",
387
387
  summary: "Trim a deployed web tree’s node_modules to the reachable runtime set (standalone image slimming).",
388
388
  status: "wired",
389
- run: (e) => import("./runtimeTrace-DDuKJgVi.js").then((t) => t.runPruneRuntimeCommand(e)),
389
+ run: (e) => import("./runtimeTrace-BI3kdicc.js").then((t) => t.runPruneRuntimeCommand(e)),
390
390
  hidden: !0
391
391
  },
392
392
  {
@@ -404,7 +404,7 @@ var u = () => {
404
404
  name: "dormancy",
405
405
  summary: "Single-node scale-to-zero: front the API with a wake-orchestrator that stops the app when idle and brings it back on a request or a due wakeup (cron/workflow). Needs a SQL store. Flags: --port, --app-port, --idle-grace-ms, --tick-ms.",
406
406
  status: "wired",
407
- run: (e) => import("./dormancyCommand-DYgI0Kf-.js").then((t) => t.runDormancyCommand(e)),
407
+ run: (e) => import("./dormancyCommand-DZupfuq-.js").then((t) => t.runDormancyCommand(e)),
408
408
  help: {
409
409
  usage: "[app] [--port <n>] [--app-port <n>] [--idle-grace-ms <n>] [--tick-ms <n>]",
410
410
  flags: [
@@ -421,7 +421,7 @@ var u = () => {
421
421
  name: "start",
422
422
  summary: "Production runtime: serves dist + SSR-on-demand for ssr/isr pages.",
423
423
  status: "wired",
424
- run: (e) => import("./start-C75w6ftA.js").then((t) => t.runStartCommand(e)),
424
+ run: (e) => import("./start-DE4ixCTi.js").then((t) => t.runStartCommand(e)),
425
425
  help: {
426
426
  usage: "[app]",
427
427
  examples: [["voltro start", "serve a built web app (dist + SSR-on-demand)"]],
@@ -491,7 +491,7 @@ var u = () => {
491
491
  name: "data",
492
492
  summary: "Export/import + backup/restore of app data. Logical (rows + optional assets): export <dir> [--tenant <id>|--tables a,b|--exclude a,b] [--assets] [--compression zstd|gzip|none] [--consistency live|snapshot]; import <dir> [--assets] [--no-verify]; transfers — the history in all four directions, including a run in flight; inspect <file|dir>; unpack <file> <dir>. Native (vendor dump, no resume): backup <dir> [--assets] / restore <dir> [--assets] (pg_dump/mariadb-dump/…) — a restore marks the database in-progress until it finishes. Recovery: clear-replace-marker, clear-staging. Resumable + typed-NDJSON on the logical path; content-addressed assets on both.",
493
493
  status: "wired",
494
- run: (e) => import("./dataCommand-hNOGKz4K.js").then((t) => t.runDataCommand(e)),
494
+ run: (e) => import("./dataCommand-mn1Zc88W.js").then((t) => t.runDataCommand(e)),
495
495
  help: {
496
496
  usage: e(i),
497
497
  flags: [
@@ -555,20 +555,20 @@ var u = () => {
555
555
  handlesHelp: !0,
556
556
  summary: "Upgrade the app to the latest framework: bump every @voltro/* dependency (across ALL workspace members, install once at the workspace root), then run the codemods shipped with the target version. Flags: --to <version>, --from <version>, --codemods-only, --dry-run, --force, --exact, --help. After: run `voltro db apply`.",
557
557
  status: "wired",
558
- run: (e) => import("./updateCommand-inInBIAh.js").then((t) => t.runUpdateCommand(e))
558
+ run: (e) => import("./updateCommand-B4EgDD-m.js").then((t) => t.runUpdateCommand(e))
559
559
  },
560
560
  {
561
561
  name: "_apply-codemods",
562
562
  summary: "Internal: apply shipped codemods for a framework version jump (re-exec target of `voltro update`).",
563
563
  status: "wired",
564
564
  hidden: !0,
565
- run: (e) => import("./updateCommand-inInBIAh.js").then((t) => t.runApplyCodemods(e))
565
+ run: (e) => import("./updateCommand-B4EgDD-m.js").then((t) => t.runApplyCodemods(e))
566
566
  },
567
567
  {
568
568
  name: "embeddings",
569
569
  summary: "Embeddings tooling. Subcommand: backfill <table> --text <field> --vector <field> [--model <m>] [--model-field <f>] [--batch <n>] [--dry-run] — (re)embed rows the vectorEmbedding() mixin missed.",
570
570
  status: "wired",
571
- run: (e) => import("./embeddingsCommand-yJivQSrI.js").then((t) => t.runEmbeddingsCommand(e)),
571
+ run: (e) => import("./embeddingsCommand-D8_GquVX.js").then((t) => t.runEmbeddingsCommand(e)),
572
572
  help: {
573
573
  usage: "backfill <table> --text <field> --vector <field> [--model <m>] [--batch <n>] [--dry-run]",
574
574
  flags: [
@@ -614,7 +614,7 @@ var u = () => {
614
614
  summary: "Ask a RUNNING app whether its declared access is enforced. `access` calls every guarded procedure with NO credentials and reports any that answer (--process, --url, --strict, --format).",
615
615
  status: "wired",
616
616
  handlesHelp: !0,
617
- run: (e) => import("./probeCommand-BUYzc0CT.js").then((t) => t.runProbeCommand(e))
617
+ run: (e) => import("./probeCommand-DYsOFm62.js").then((t) => t.runProbeCommand(e))
618
618
  },
619
619
  {
620
620
  name: "schedule",
@@ -1,6 +1,6 @@
1
- import { p as e } from "./dev-Ce2gEziv.js";
2
- import { it as t, st as n } from "./webDev-CBN9KkyQ.js";
3
- import { t as r } from "./start-DNtIlBcn.js";
1
+ import { p as e } from "./dev-dSH-Pkb2.js";
2
+ import { it as t, st as n } from "./webDev-CYjhmOTZ.js";
3
+ import { t as r } from "./start-bqT4GRH0.js";
4
4
  import { join as i } from "node:path";
5
5
  import { existsSync as a } from "node:fs";
6
6
  import { createLogger as o } from "@voltro/logger";
@@ -1,6 +1,6 @@
1
1
  import { a as e, t } from "./subcommandNames-CDzfEtKV.js";
2
2
  import { t as n } from "./cliError-BmdYnghb.js";
3
- import { a as r, l as i, q as a, s as o } from "./dev-Ce2gEziv.js";
3
+ import { a as r, l as i, q as a, s as o } from "./dev-dSH-Pkb2.js";
4
4
  import { n as s, t as c } from "./cliArgs-D4p8n7EE.js";
5
5
  import { r as l } from "./dialectDriver-czCHYpeH.js";
6
6
  import { i as u, n as d, r as f, t as p } from "./dataProfile-Du3ztYxv.js";
@@ -4,7 +4,7 @@ import { n } from "./appModuleLoader-C9r9mxZt.js";
4
4
  import { t as r } from "./bootRefusal-pgvDxlrU.js";
5
5
  import { n as i, r as a } from "./startupRunner-CEqQq7ax.js";
6
6
  import { n as o, t as s } from "./interruptedReplace-CwnkBb2X.js";
7
- import { $t as c, Gt as l, Kt as u, S as d, Wt as f, Yt as p, dt as m, en as h, ft as g, lt as _, mt as v, ot as ee, qt as y, st as te, tn as b } from "./webDev-CBN9KkyQ.js";
7
+ import { $t as c, Gt as l, Kt as u, S as d, Wt as f, Yt as p, dt as m, en as h, ft as g, lt as _, mt as v, ot as ee, qt as y, st as te, tn as b } from "./webDev-CYjhmOTZ.js";
8
8
  import { C as x, D as S, E as ne, F as re, N as ie, O as C, S as w, T as ae, _ as oe, a as se, b as ce, c as T, d as le, f as ue, g as de, h as fe, i as pe, j as me, k as he, l as ge, m as _e, o as ve, p as ye, s as be, t as xe, u as Se, v as Ce, w as we, x as E, y as D } from "./inspect-PcC5J-Dl.js";
9
9
  import { r as Te } from "./appPort-B_HpJ_ck.js";
10
10
  import { n as O, r as Ee } from "./dialectDriver-czCHYpeH.js";
@@ -1,3 +1,3 @@
1
- import { a as e, d as t, f as n, l as r, m as i, p as a, u as o } from "./dev-Ce2gEziv.js";
1
+ import { a as e, d as t, f as n, l as r, m as i, p as a, u as o } from "./dev-dSH-Pkb2.js";
2
2
  import "./dialectDriver-czCHYpeH.js";
3
3
  export { e as buildStore, r as loadApiConfig, o as loadApiConfigDiagnosed, t as loadDiscovered, n as mergePluginRoutesInto, a as runDev, i as walk };
@@ -0,0 +1,2 @@
1
+ import { b as e, y as t } from "./doctorCommand-ClB7Ucz5.js";
2
+ export { t as runDoctorCommand, e as runServePreflight };
@@ -1,6 +1,6 @@
1
- import { Xt as e, Yt as t, Zt as n } from "./dev-Ce2gEziv.js";
2
- import { Bt as r, Ht as i, T as a, Ut as o, V as s, Vt as c, t as l, u } from "./webDev-CBN9KkyQ.js";
3
- import { r as d, u as f } from "./apiBuild-BU5cd-Fn.js";
1
+ import { Xt as e, Yt as t, Zt as n } from "./dev-dSH-Pkb2.js";
2
+ import { Bt as r, Ht as i, T as a, Ut as o, V as s, Vt as c, t as l, u } from "./webDev-CYjhmOTZ.js";
3
+ import { r as d, u as f } from "./apiBuild-C5HhMAEm.js";
4
4
  import { S as p } from "./frameworkTableAssembly-vfkzuzEo.js";
5
5
  import { n as m } from "./pageConvention-CMpfDN6r.js";
6
6
  import { n as h, r as g, t as ee } from "./cliOutput-D1tSBoRM.js";
@@ -1856,7 +1856,7 @@ var le = {
1856
1856
  let t = xn.get(e);
1857
1857
  if (t !== void 0) return t;
1858
1858
  let n = (async () => {
1859
- let { walk: t, loadDiscovered: n } = await import("./dev-Dff_pdik.js"), r = await t(e);
1859
+ let { walk: t, loadDiscovered: n } = await import("./dev-kn9-7RXZ.js"), r = await t(e);
1860
1860
  return {
1861
1861
  files: r,
1862
1862
  discovered: await n(r, { root: e })
@@ -1981,7 +1981,7 @@ var le = {
1981
1981
  }
1982
1982
  }, J = async (r) => {
1983
1983
  try {
1984
- let { loadApiConfig: i } = await import("./dev-Dff_pdik.js"), { discovered: a } = await U(r), o = e(await i(r)), s = {
1984
+ let { loadApiConfig: i } = await import("./dev-kn9-7RXZ.js"), { discovered: a } = await U(r), o = e(await i(r)), s = {
1985
1985
  queries: a.queries,
1986
1986
  mutations: a.mutations,
1987
1987
  actions: a.actions,
@@ -2065,7 +2065,7 @@ var le = {
2065
2065
  }, Nn = async (e) => pt({
2066
2066
  hasWorkflows: async () => (await U(e)).discovered.workflows.length > 0,
2067
2067
  openStore: async () => {
2068
- let { loadApiConfig: t, buildStore: n } = await import("./dev-Dff_pdik.js"), r = await t(e);
2068
+ let { loadApiConfig: t, buildStore: n } = await import("./dev-kn9-7RXZ.js"), r = await t(e);
2069
2069
  if (r === null) throw Error("no app.config.ts in this directory");
2070
2070
  let i = await n(r, void 0);
2071
2071
  return {
@@ -2145,7 +2145,7 @@ var le = {
2145
2145
  }
2146
2146
  }, zn = async (e) => {
2147
2147
  try {
2148
- let { loadApiConfig: t } = await import("./dev-Dff_pdik.js"), n = (await t(e))?.doctor?.scopeVocabulary;
2148
+ let { loadApiConfig: t } = await import("./dev-kn9-7RXZ.js"), n = (await t(e))?.doctor?.scopeVocabulary;
2149
2149
  if (typeof n != "string") return [];
2150
2150
  let [r, i] = n.split("#");
2151
2151
  if (r === void 0 || i === void 0) return [];
@@ -2162,7 +2162,7 @@ var le = {
2162
2162
  findings: []
2163
2163
  });
2164
2164
  try {
2165
- let { offlineManifest: n, toInput: r } = await import("./checkCommand-C1CQc8lD.js"), { buildAppGraph: i, checkAppGraph: a } = await import("./appGraph-CFmFKHb2.js"), o = await n(e), s = r(o.manifest, o.tables), c = await zn(e), l = [.../* @__PURE__ */ new Set([...s.scopes ?? [], ...c])];
2165
+ let { offlineManifest: n, toInput: r } = await import("./checkCommand-ByaOhdc8.js"), { buildAppGraph: i, checkAppGraph: a } = await import("./appGraph-CFmFKHb2.js"), o = await n(e), s = r(o.manifest, o.tables), c = await zn(e), l = [.../* @__PURE__ */ new Set([...s.scopes ?? [], ...c])];
2166
2166
  if (l.length === 0) {
2167
2167
  try {
2168
2168
  let { loadAppSchemaInputs: t } = await import("./frameworkTableAssembly-B96WCNJA.js");
@@ -2252,7 +2252,7 @@ var le = {
2252
2252
  if (n === void 0 || r.length === 0) return;
2253
2253
  let i = [];
2254
2254
  try {
2255
- let { loadApiConfig: t } = await import("./dev-Dff_pdik.js");
2255
+ let { loadApiConfig: t } = await import("./dev-kn9-7RXZ.js");
2256
2256
  i = (await t(e))?.locales ?? [];
2257
2257
  } catch {
2258
2258
  return;
@@ -2286,7 +2286,7 @@ var le = {
2286
2286
  a()?.reason === "binary-missing" ? (console.log("image pipeline: sharp is INSTALLED but its platform binary is missing —"), console.log(" an install that omitted optional dependencies drops the @img/* prebuilds."), console.log(" Fix: reinstall without omitting optional deps, or `pnpm add -D sharp` in this app.")) : (console.log("image pipeline: sharp is NOT installed — ?image imports serve originals (no srcSet, no blur)."), console.log(" Fix: `pnpm add -D sharp` in this app (it is an optional dependency of @voltro/cli;"), console.log(" your installer skipped optional dependencies)."));
2287
2287
  }, Wn = async (e) => {
2288
2288
  try {
2289
- let { loadConfig: t } = await import("./webDev-Bzb8ZFus.js"), n = (await t(e, { preferSource: !0 }))?.fonts;
2289
+ let { loadConfig: t } = await import("./webDev-CuG3Ged-.js"), n = (await t(e, { preferSource: !0 }))?.fonts;
2290
2290
  if (n === void 0 || n.length === 0) return;
2291
2291
  let { loadFontkit: r, loadSubsetFont: i } = await import("./fontPipeline-LxIHa1vo.js"), a = [];
2292
2292
  if (await r() === null && a.push("fontkit (size-adjust fallback metrics — the CLS guard — are skipped)"), await i() === null && a.push("subset-font (declared `subsets:` ship the full files)"), console.log(""), a.length === 0) {
@@ -2301,7 +2301,7 @@ var le = {
2301
2301
  if (!S(t)) return !1;
2302
2302
  let n = [];
2303
2303
  try {
2304
- let { walkPagesTree: e } = await import("./webDev-Bzb8ZFus.js");
2304
+ let { walkPagesTree: e } = await import("./webDev-CuG3Ged-.js");
2305
2305
  n = (await e(t)).pages.map((e) => e.pattern);
2306
2306
  } catch {
2307
2307
  return !1;
@@ -2314,7 +2314,7 @@ var le = {
2314
2314
  }, Kn = async (e) => {
2315
2315
  let { discovered: t } = await U(e), n = [];
2316
2316
  try {
2317
- let { loadApiConfig: t } = await import("./dev-Dff_pdik.js");
2317
+ let { loadApiConfig: t } = await import("./dev-kn9-7RXZ.js");
2318
2318
  n = ((await t(e))?.plugins ?? []).map((e) => {
2319
2319
  let t = (e.extendSchema?.tables ?? []).map((e) => {
2320
2320
  let t = e;
@@ -2460,7 +2460,7 @@ var le = {
2460
2460
  return n.unchecked.length > $ && console.log(` … and ${n.unchecked.length - $} more — \`voltro doctor --json\` prints every one (\`authz.unchecked\`).`), i === void 0 ? (console.log(`\nNo ${X} yet, so this run is advisory. To start the ratchet:`), console.log("\n voltro doctor --write-authz-allowlist\n"), console.log("That records today's unchecked handlers as DEBT and fails every run after on"), console.log("anything NEW. Fix a handler and its line stops mattering — the scan reports it as"), console.log("guarded whether or not the line is still there."), !1) : (console.log(`\n${n.unchecked.length} executor(s) with no access check are not in ${X}.`), console.log("Add a guard, or add the tag to that file if it is genuinely open."), console.log("\nBefore hand-rolling another check: `guards: [{ action, resourceType, resource }]`"), console.log("answers \"may this subject act on THIS row\" declaratively, and an app whose"), console.log("relationships live in its own tables registers its own tuple source rather than"), console.log("copying data into a framework table. See the authorization docs."), !0);
2461
2461
  }, Qn = async (e) => {
2462
2462
  try {
2463
- let { loadApiConfig: t } = await import("./dev-Dff_pdik.js"), { decidedSchemaReport: n } = await import("./doctorDecidedSchema-BlbWgCD_.js"), r = await t(e);
2463
+ let { loadApiConfig: t } = await import("./dev-kn9-7RXZ.js"), { decidedSchemaReport: n } = await import("./doctorDecidedSchema-BlbWgCD_.js"), r = await t(e);
2464
2464
  return r == null ? null : n({
2465
2465
  ...r.schema ? { declared: r.schema } : {},
2466
2466
  ...r.store === void 0 ? {} : { store: r.store },
@@ -1,4 +1,4 @@
1
- import { a as e, l as t } from "./dev-Ce2gEziv.js";
1
+ import { a as e, l as t } from "./dev-dSH-Pkb2.js";
2
2
  import { n, t as r } from "./cliArgs-D4p8n7EE.js";
3
3
  import { r as i } from "./appPort-B_HpJ_ck.js";
4
4
  import { resolve as a } from "node:path";
@@ -1,4 +1,4 @@
1
- import { a as e, l as t } from "./dev-Ce2gEziv.js";
1
+ import { a as e, l as t } from "./dev-dSH-Pkb2.js";
2
2
  import { Effect as n } from "effect";
3
3
  import { embedMany as r } from "@voltro/ai";
4
4
  //#region src/embeddingsBackfill.ts
@@ -1,5 +1,5 @@
1
- import { l as e } from "./dev-Ce2gEziv.js";
2
- import { Jt as t, Xt as n, Zt as r, qt as i } from "./webDev-CBN9KkyQ.js";
1
+ import { l as e } from "./dev-dSH-Pkb2.js";
2
+ import { Jt as t, Xt as n, Zt as r, qt as i } from "./webDev-CYjhmOTZ.js";
3
3
  import { join as a } from "node:path";
4
4
  import { promises as o } from "node:fs";
5
5
  import { createLogger as s } from "@voltro/logger";
@@ -1,6 +1,6 @@
1
1
  import { n as e } from "./cliOutput-D1tSBoRM.js";
2
- import { i as t } from "./checkCommand-DC7k1_hP.js";
3
- import { i as n, n as r } from "./codemodRunner-kNnh1I7_.js";
2
+ import { i as t } from "./checkCommand-CvSheSdb.js";
3
+ import { i as n, n as r } from "./codemodRunner-Drb-H-jr.js";
4
4
  import { basename as i, join as a, resolve as o } from "node:path";
5
5
  import { branchNamespaceName as s, planBranchProvision as c } from "@voltro/database";
6
6
  import { readFile as l } from "node:fs/promises";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-cu34ENUT.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-pCItjdHG.js";
2
2
  import { r as o } from "./templates-BTWZkJJT.js";
3
3
  //#region src/index.ts
4
4
  var s = "framework";
@@ -1,5 +1,5 @@
1
1
  import { n as e, r as t, t as n } from "./cliOutput-D1tSBoRM.js";
2
- import { o as r } from "./updateCommand-Bw3mCUDT.js";
2
+ import { o as r } from "./updateCommand-B18ZQNFg.js";
3
3
  import { join as i, resolve as a } from "node:path";
4
4
  import { readFileSync as o, readdirSync as s, statSync as c } from "node:fs";
5
5
  //#region src/infoCommand.ts
@@ -108,7 +108,7 @@ server and in this shell.`);
108
108
  }, m = async (e) => {
109
109
  let t = /* @__PURE__ */ new Map();
110
110
  try {
111
- let { walk: n, loadDiscovered: r } = await import("./dev-Dff_pdik.js"), i = await r(await n(e), { root: e }), a = [
111
+ let { walk: n, loadDiscovered: r } = await import("./dev-kn9-7RXZ.js"), i = await r(await n(e), { root: e }), a = [
112
112
  ...i.queries,
113
113
  ...i.mutations,
114
114
  ...i.actions,
@@ -1,4 +1,4 @@
1
- import { n as e } from "./apiBuild-BU5cd-Fn.js";
1
+ import { n as e } from "./apiBuild-C5HhMAEm.js";
2
2
  import { join as t, resolve as n, sep as r } from "node:path";
3
3
  import { existsSync as i, promises as a } from "node:fs";
4
4
  import { createLogger as o } from "@voltro/logger";
@@ -422,7 +422,7 @@ let package = Package(
422
422
  await l.mkdir(o(e), { recursive: !0 }), await l.writeFile(e, n.content, "utf8");
423
423
  }
424
424
  }, X = async (e) => {
425
- let { offlineManifest: t } = await import("./checkCommand-C1CQc8lD.js"), { manifest: n } = await t(e);
425
+ let { offlineManifest: t } = await import("./checkCommand-ByaOhdc8.js"), { manifest: n } = await t(e);
426
426
  return n;
427
427
  }, Z = async (e) => {
428
428
  let t = J(await (e.manifestProvider ?? X)(e.root), {
@@ -0,0 +1,2 @@
1
+ import { n as e } from "./serveCommand-DnxqCQ16.js";
2
+ export { e as runServeDispatch };
@@ -4,12 +4,12 @@ import { r as n, t as r } from "./appModuleLoader-C9r9mxZt.js";
4
4
  import { t as i } from "./bootRefusal-pgvDxlrU.js";
5
5
  import { n as a, r as o } from "./startupRunner-CEqQq7ax.js";
6
6
  import { n as s, t as c } from "./interruptedReplace-CwnkBb2X.js";
7
- import { $ as l, $t as u, A as d, At as f, B as ee, Bn as te, Bt as p, C as ne, Cn as m, Ct as re, D as ie, Dn as h, Dt as ae, E as oe, En as se, Et as g, F as _, Fn as ce, Ft as le, G as ue, Gt as de, H as fe, Hn as pe, Ht as me, I as he, In as v, It as ge, Jt as y, K as _e, Kt as ve, L as ye, Lt as b, M as be, Mn as xe, Mt as Se, N as Ce, Nn as we, Nt as Te, O as Ee, On as De, Ot as Oe, P as ke, Pn as Ae, Pt as x, Q as S, Qt as je, R as Me, Rn as Ne, Rt as Pe, S as Fe, Sn as Ie, St as Le, T as Re, Tn as ze, Tt as Be, U as Ve, Un as He, Ut as Ue, Vn as We, Vt as Ge, W as Ke, Wt as qe, X as Je, Xt as Ye, Y as Xe, Z as Ze, _ as Qe, _n as $e, _t as et, a as tt, an as nt, at as C, b as rt, bn as it, bt as at, cn as ot, ct as w, d as st, dn as T, dt as E, en as ct, et as lt, f as ut, fn as dt, ft, g as pt, gn as D, gt as mt, h as ht, hn as gt, ht as _t, i as vt, in as yt, it as bt, j as xt, jn as St, jt as Ct, k as O, kn as k, kt as wt, l as Tt, ln as Et, lt as Dt, m as Ot, mn as kt, mt as At, nn as jt, nt as Mt, on as Nt, ot as Pt, pn as Ft, pt as It, qt as Lt, rn as Rt, rt as zt, s as A, sn as Bt, st as Vt, t as j, tn as Ht, tt as Ut, un as Wt, ut as Gt, v as Kt, vn as qt, vt as Jt, w as Yt, wn as Xt, wt as Zt, x as Qt, xn as $t, xt as M, y as en, yn as tn, yt as nn, z as rn, zn as an, zt as on } from "./dev-Ce2gEziv.js";
8
- import { Yt as sn, en as cn, ft as ln, ht as un, lt as dn, mt as fn, pt as pn, qt as mn } from "./webDev-CBN9KkyQ.js";
7
+ import { $ as l, $t as u, A as d, At as f, B as ee, Bn as te, Bt as p, C as ne, Cn as m, Ct as re, D as ie, Dn as h, Dt as ae, E as oe, En as se, Et as g, F as _, Fn as ce, Ft as le, G as ue, Gt as de, H as fe, Hn as pe, Ht as me, I as he, In as v, It as ge, Jt as y, K as _e, Kt as ve, L as ye, Lt as b, M as be, Mn as xe, Mt as Se, N as Ce, Nn as we, Nt as Te, O as Ee, On as De, Ot as Oe, P as ke, Pn as Ae, Pt as x, Q as S, Qt as je, R as Me, Rn as Ne, Rt as Pe, S as Fe, Sn as Ie, St as Le, T as Re, Tn as ze, Tt as Be, U as Ve, Un as He, Ut as Ue, Vn as We, Vt as Ge, W as Ke, Wt as qe, X as Je, Xt as Ye, Y as Xe, Z as Ze, _ as Qe, _n as $e, _t as et, a as tt, an as nt, at as C, b as rt, bn as it, bt as at, cn as ot, ct as w, d as st, dn as T, dt as E, en as ct, et as lt, f as ut, fn as dt, ft, g as pt, gn as D, gt as mt, h as ht, hn as gt, ht as _t, i as vt, in as yt, it as bt, j as xt, jn as St, jt as Ct, k as O, kn as k, kt as wt, l as Tt, ln as Et, lt as Dt, m as Ot, mn as kt, mt as At, nn as jt, nt as Mt, on as Nt, ot as Pt, pn as Ft, pt as It, qt as Lt, rn as Rt, rt as zt, s as A, sn as Bt, st as Vt, t as j, tn as Ht, tt as Ut, un as Wt, ut as Gt, v as Kt, vn as qt, vt as Jt, w as Yt, wn as Xt, wt as Zt, x as Qt, xn as $t, xt as M, y as en, yn as tn, yt as nn, z as rn, zn as an, zt as on } from "./dev-dSH-Pkb2.js";
8
+ import { Yt as sn, en as cn, ft as ln, ht as un, lt as dn, mt as fn, pt as pn, qt as mn } from "./webDev-CYjhmOTZ.js";
9
9
  import { g as hn, s as gn } from "./inspect-PcC5J-Dl.js";
10
10
  import { n as _n } from "./cliArgs-D4p8n7EE.js";
11
11
  import { r as vn } from "./appPort-B_HpJ_ck.js";
12
- import { r as yn, u as bn } from "./apiBuild-BU5cd-Fn.js";
12
+ import { r as yn, u as bn } from "./apiBuild-C5HhMAEm.js";
13
13
  import { r as xn } from "./dialectDriver-czCHYpeH.js";
14
14
  import { i as Sn, n as Cn } from "./connectionConfig-Bk9IC7D0.js";
15
15
  import { c as wn, n as Tn, o as En } from "./seedRunner-DISBKow-.js";
@@ -1,4 +1,4 @@
1
- import { t as e } from "./serveCommand-Dr4KXmTS.js";
1
+ import { t as e } from "./serveCommand-DnxqCQ16.js";
2
2
  import { t } from "./loadEnv-D9nEOClM.js";
3
3
  import { r as n } from "./appModuleLoader-C9r9mxZt.js";
4
4
  import { i as r } from "./dialectDriver-czCHYpeH.js";
@@ -1,3 +1,3 @@
1
1
  import "./renderModeScan-43yQ2opo.js";
2
- import { t as e } from "./start-DNtIlBcn.js";
2
+ import { t as e } from "./start-bqT4GRH0.js";
3
3
  export { e as runStartCommand };