@voltro/cli 0.55.0 → 0.57.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 (175) hide show
  1. package/CHANGELOG.md +691 -0
  2. package/bin/voltro.mjs +24 -0
  3. package/dist/apiBuild-B83Cb2Rv.js +2 -0
  4. package/dist/{apiBuild-CMvLJM_K.js → apiBuild-DDr2aNFd.js} +119 -88
  5. package/dist/bin.js +1 -1
  6. package/dist/{build-S0QOzqPT.js → build-QKP6Bm0J.js} +308 -279
  7. package/dist/buildReport-52gHKgfO.js +64 -0
  8. package/dist/{checkCommand-DNkY5kwF.js → checkCommand-BISqx1OJ.js} +1 -1
  9. package/dist/{checkCommand-fbj9GDjN.js → checkCommand-DUtMWjcR.js} +6 -6
  10. package/dist/{clusterCmd-DrVFCzSj.js → clusterCmd-CdLB1GkT.js} +1 -1
  11. package/dist/{codegen-SIepQtUl.js → codegen-Bth5lUTU.js} +2 -1
  12. package/dist/codegen-DbH7NbCR.js +2 -0
  13. package/dist/{codegenCommand-3TDJezom.js → codegenCommand-DnVuDxwT.js} +11 -11
  14. package/dist/{codemodRunner-C2zxZUIw.js → codemodRunner-BlQPfjzA.js} +222 -0
  15. package/dist/{commands-BBYJ7Q3B.js → commands-CRbxgxv0.js} +35 -35
  16. package/dist/{dashboardCommand-D2kmyCLL.js → dashboardCommand-Bf_-Ne3P.js} +5 -5
  17. package/dist/{dataCommand-BEPPQiTl.js → dataCommand-BoBJJ-Gb.js} +3 -3
  18. package/dist/{dbCommand-DZTmOFT4.js → dbCommand-CMAIz-Bf.js} +457 -441
  19. package/dist/dbCommand-DHi_RuDl.js +2 -0
  20. package/dist/dev-Bl9HqtV7.js +3 -0
  21. package/dist/{dev-Ca_A_S9v.js → dev-DOEJXicj.js} +2623 -2485
  22. package/dist/{doctorCommand-CGZJK_4o.js → doctorCommand-BrWu67JZ.js} +524 -280
  23. package/dist/doctorCommand-DrQv9SL3.js +2 -0
  24. package/dist/{dormancyCommand-DY2rYpTa.js → dormancyCommand-xn2y-pJm.js} +1 -1
  25. package/dist/{embeddingsCommand-BoCqZsgp.js → embeddingsCommand-Cn5MbRDM.js} +1 -1
  26. package/dist/emptyResultHeadline-Csa5fZOF.js +18 -0
  27. package/dist/{envCommand-Bxy2fOjc.js → envCommand-UJmJIbs9.js} +8 -8
  28. package/dist/{evolveCommand-BsbZ-XDg.js → evolveCommand-Db30twUy.js} +2 -2
  29. package/dist/frameworkTableAssembly-B96WCNJA.js +2 -0
  30. package/dist/{frameworkTableAssembly-Do-cf6RJ.js → frameworkTableAssembly-vfkzuzEo.js} +131 -104
  31. package/dist/index.js +1 -1
  32. package/dist/{infoCommand-EmM3jPKD.js → infoCommand-BjVXpMlP.js} +1 -1
  33. package/dist/inspect-B0hL41s0.js +2 -0
  34. package/dist/inspect-DZnan87F.js +1500 -0
  35. package/dist/{inspectCmd-niF97fAq.js → inspectCmd-CP-G0sVK.js} +1 -1
  36. package/dist/{inspectFetch-EMuhTG_9.js → inspectFetch-BU1NyzxV.js} +36 -24
  37. package/dist/{inspectMetrics-CGF94puw.js → inspectMetrics-BY0Sjb2F.js} +19 -19
  38. package/dist/{logsCmd-B6oNsfaZ.js → logsCmd-C5y9HyrG.js} +59 -54
  39. package/dist/{manifestBuild-DjX5MoXy.js → manifestBuild-DnbFKF6w.js} +1 -1
  40. package/dist/manifestBuild-UXrnUcXP.js +2 -0
  41. package/dist/{migrate-CGFZS-1a.js → migrate-DtC3lu7H.js} +4 -4
  42. package/dist/precompressAssets-YhTi1aWp.js +40 -0
  43. package/dist/{probeCommand-Bs3iVBSL.js → probeCommand-C5fuN6Z2.js} +2 -2
  44. package/dist/{runtimeTrace-C1BTpHGQ.js → runtimeTrace-BQL_lfz6.js} +1 -1
  45. package/dist/{scheduleCmd-DQRu6BZC.js → scheduleCmd-DYBUfo_T.js} +1 -1
  46. package/dist/{sdkgen-CXMwLg9n.js → sdkgen-CMUPrDjH.js} +1 -1
  47. package/dist/{seedRunner-Dgsiwk_e.js → seedRunner-DISBKow-.js} +16 -16
  48. package/dist/serveCommand-B_w-Mpb_.js +2544 -0
  49. package/dist/serveCommand-Dtb48ffg.js +2 -0
  50. package/dist/serveEntry.js +1 -1
  51. package/dist/{start-EOV7s1NZ.js → start-YaUehtDV.js} +580 -558
  52. package/dist/{start-DH7cat4-.js → start-s25GAIgn.js} +1 -1
  53. package/dist/startEntry.js +1 -1
  54. package/dist/staticCachePolicy-CIyj6DbS.js +15 -0
  55. package/dist/{test-DO27-x2P.js → test-jipIQ5Mx.js} +1 -1
  56. package/dist/{tracesCmd-DgtgOUdi.js → tracesCmd-C1qKa94g.js} +69 -64
  57. package/dist/{updateCommand-C_jN1w18.js → updateCommand-C9n_Z_oG.js} +8 -2
  58. package/dist/updateCommand-DsXEAHbd.js +2 -0
  59. package/dist/webDev-B6ZMX42w.js +2 -0
  60. package/dist/{webDev-B7vNj4Bq.js → webDev-BgdkyjP6.js} +1379 -1303
  61. package/dist/{webhooksCommand-B1LVcyO3.js → webhooksCommand-CYXTNvXq.js} +2 -2
  62. package/dist/{workflowsCmd-BGF-mRZ5.js → workflowsCmd-g-DNpaUc.js} +1 -1
  63. package/package.json +55 -19
  64. package/templates/AGENTS.core.md +20 -1
  65. package/templates/AGENTS.md +21 -2
  66. package/templates/agent-docs/_index.md +1 -1
  67. package/templates/agent-docs/_manifest.json +2 -2
  68. package/templates/agent-docs/ai.md +1 -1
  69. package/templates/agent-docs/authentication.md +34 -19
  70. package/templates/agent-docs/cli.md +170 -0
  71. package/templates/agent-docs/configuration.md +29 -4
  72. package/templates/agent-docs/data.md +145 -5
  73. package/templates/agent-docs/database/scaling.md +50 -2
  74. package/templates/agent-docs/deployment.md +75 -1
  75. package/templates/agent-docs/internationalization.md +32 -0
  76. package/templates/agent-docs/local-first-mobile.md +9 -2
  77. package/templates/agent-docs/observability.md +227 -0
  78. package/templates/agent-docs/plugins/audit.md +21 -5
  79. package/templates/agent-docs/plugins/billing.md +17 -0
  80. package/templates/agent-docs/plugins/broadcast.md +2 -1
  81. package/templates/agent-docs/plugins/ratelimit.md +6 -1
  82. package/templates/agent-docs/plugins/row-history.md +11 -0
  83. package/templates/agent-docs/plugins.md +19 -0
  84. package/templates/agent-docs/reference.md +1 -0
  85. package/templates/agent-docs/scheduling.md +23 -0
  86. package/templates/agent-docs/schema-driven-ui.md +81 -0
  87. package/templates/agent-docs/templates/appshells.md +3 -3
  88. package/templates/agent-docs/whats-new.md +133 -77
  89. package/templates/apps/api-ai/package.json +6 -6
  90. package/templates/apps/api-auth/package.json +8 -8
  91. package/templates/apps/api-backend/package.json +7 -7
  92. package/templates/apps/api-backend-deactivation/package.json +7 -7
  93. package/templates/apps/api-backend-mail/package.json +8 -8
  94. package/templates/apps/api-backend-mariadb/package.json +9 -9
  95. package/templates/apps/api-backend-sqlite/package.json +8 -8
  96. package/templates/apps/api-backend-storage/package.json +8 -8
  97. package/templates/apps/api-cms/package.json +9 -9
  98. package/templates/apps/api-collab/package.json +8 -8
  99. package/templates/apps/api-data-advanced/package.json +8 -8
  100. package/templates/apps/api-durable/package.json +8 -8
  101. package/templates/apps/api-feature-flags/package.json +9 -9
  102. package/templates/apps/api-governance/package.json +8 -8
  103. package/templates/apps/api-kv/package.json +8 -8
  104. package/templates/apps/api-moderation/package.json +8 -8
  105. package/templates/apps/api-observability/package.json +8 -8
  106. package/templates/apps/api-ratelimit/package.json +8 -8
  107. package/templates/apps/api-rbac/package.json +8 -8
  108. package/templates/apps/api-rest/package.json +7 -7
  109. package/templates/apps/api-row-history/package.json +8 -8
  110. package/templates/apps/api-saas/package.json +11 -11
  111. package/templates/apps/api-saas-starter/package.json +10 -10
  112. package/templates/apps/api-search/package.json +8 -8
  113. package/templates/apps/api-status/package.json +8 -8
  114. package/templates/apps/api-webhooks/package.json +9 -9
  115. package/templates/apps/changelog/package.json +7 -7
  116. package/templates/apps/changelog/src/pages/[locale]/page.tsx +7 -1
  117. package/templates/apps/edge-functions/package.json +2 -2
  118. package/templates/apps/frontend-admin/package.json +7 -8
  119. package/templates/apps/frontend-admin/src/pages/(marketing)/layout.tsx +1 -2
  120. package/templates/apps/frontend-admin/src/pages/admin/layout.tsx +1 -2
  121. package/templates/apps/frontend-app/package.json +8 -9
  122. package/templates/apps/frontend-app/src/pages/layout.tsx +1 -2
  123. package/templates/apps/frontend-auth/package.json +7 -8
  124. package/templates/apps/frontend-auth/src/components/AuthShell.tsx +1 -2
  125. package/templates/apps/frontend-blank/package.json +6 -7
  126. package/templates/apps/frontend-blank/src/pages/layout.tsx +1 -2
  127. package/templates/apps/frontend-cms/package.json +8 -9
  128. package/templates/apps/frontend-cms/src/pages/(app)/layout.tsx +1 -2
  129. package/templates/apps/frontend-collab/README.md +7 -2
  130. package/templates/apps/frontend-collab/package.json +9 -10
  131. package/templates/apps/frontend-collab/src/pages/layout.tsx +1 -2
  132. package/templates/apps/frontend-collab/src/pages/page.test.tsx +8 -4
  133. package/templates/apps/frontend-collab/src/pages/page.tsx +10 -5
  134. package/templates/apps/frontend-contact/package.json +7 -7
  135. package/templates/apps/frontend-contact/src/components/ContactForm.island.tsx +1 -1
  136. package/templates/apps/frontend-dashboard/package.json +6 -7
  137. package/templates/apps/frontend-dashboard/src/pages/(marketing)/layout.tsx +1 -2
  138. package/templates/apps/frontend-dashboard/src/pages/dashboard/layout.tsx +1 -2
  139. package/templates/apps/frontend-docs/package.json +8 -8
  140. package/templates/apps/frontend-i18n/package.json +6 -6
  141. package/templates/apps/frontend-landing/package.json +7 -7
  142. package/templates/apps/frontend-portal/package.json +7 -8
  143. package/templates/apps/frontend-portal/src/pages/(portal)/layout.tsx +1 -2
  144. package/templates/apps/frontend-saas/package.json +7 -8
  145. package/templates/apps/frontend-saas/src/pages/(marketing)/layout.tsx +1 -2
  146. package/templates/apps/frontend-saas/src/pages/dashboard/layout.tsx +1 -2
  147. package/templates/apps/frontend-spa/package.json +6 -7
  148. package/templates/apps/frontend-spa/src/pages/layout.tsx +1 -2
  149. package/templates/apps/frontend-ssr/package.json +6 -7
  150. package/templates/apps/frontend-ssr/src/pages/layout.tsx +1 -2
  151. package/templates/apps/frontend-ssr-api/package.json +7 -8
  152. package/templates/apps/frontend-ssr-api/src/pages/layout.tsx +1 -2
  153. package/templates/apps/frontend-static-blog/package.json +8 -8
  154. package/templates/apps/frontend-static-blog/src/components/ReadingProgress.island.tsx +1 -1
  155. package/templates/apps/frontend-static-blog/src/pages/[locale]/page.tsx +7 -1
  156. package/templates/apps/frontend-status/package.json +7 -8
  157. package/templates/apps/frontend-status/src/pages/layout.tsx +1 -2
  158. package/templates/apps/mobile-app/package.json +4 -4
  159. package/templates/baselines/compose/docker/api.Dockerfile +61 -5
  160. package/templates/baselines/compose/docker/web.Dockerfile +55 -10
  161. package/templates/baselines/compose-mariadb/docker/api.Dockerfile +61 -5
  162. package/templates/baselines/compose-mariadb/docker/web.Dockerfile +55 -10
  163. package/dist/apiBuild-Cl0IDx8c.js +0 -2
  164. package/dist/codegen-CN6vMM4J.js +0 -2
  165. package/dist/dbCommand-BTyBGhIA.js +0 -2
  166. package/dist/dev-DfVZaoys.js +0 -3
  167. package/dist/doctorCommand-djmqEcDC.js +0 -2
  168. package/dist/frameworkTableAssembly-Df2Ymp2f.js +0 -2
  169. package/dist/inspect-DCqILJ1G.js +0 -1197
  170. package/dist/inspect-DGJwpOAb.js +0 -2
  171. package/dist/manifestBuild-CJ2zvPvT.js +0 -2
  172. package/dist/serveCommand-C7IrCD58.js +0 -2445
  173. package/dist/serveCommand-Cjt5S9hD.js +0 -2
  174. package/dist/updateCommand-nnFjDbl4.js +0 -2
  175. package/dist/webDev-1XpVnYkW.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-DfVZaoys.js").then((t) => t.runDev(e)),
94
+ run: (e) => import("./dev-Bl9HqtV7.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-D2kmyCLL.js").then((t) => t.runDashboardCommand(e)),
112
+ run: (e) => import("./dashboardCommand-Bf_-Ne3P.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-DNkY5kwF.js").then((t) => t.runCheckCommand(e)),
124
+ run: (e) => import("./checkCommand-BISqx1OJ.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-B1LVcyO3.js").then((t) => t.runWebhooksCommand(e)),
158
+ run: (e) => import("./webhooksCommand-CYXTNvXq.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-BsbZ-XDg.js").then((t) => t.runEvolveCommand(e)),
174
+ run: (e) => import("./evolveCommand-Db30twUy.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-3TDJezom.js").then((t) => t.runCodegenCommand(e)),
191
+ run: (e) => import("./codegenCommand-DnVuDxwT.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"]],
@@ -221,7 +221,7 @@ var u = () => {
221
221
  name: "migrate",
222
222
  summary: "Apply the declared schema to the database (alias of `db apply` — diffs declared vs live and emits the ALTERs). `--create-only` for the bootstrap-only CREATE TABLE IF NOT EXISTS path.",
223
223
  status: "wired",
224
- run: (e) => import("./migrate-CGFZS-1a.js").then((t) => t.runMigrateCommand(e)),
224
+ run: (e) => import("./migrate-DtC3lu7H.js").then((t) => t.runMigrateCommand(e)),
225
225
  help: {
226
226
  usage: "[app] [--create-only]",
227
227
  flags: [["--create-only", "only CREATE TABLE IF NOT EXISTS — never ALTER (bootstrap)"]],
@@ -233,7 +233,7 @@ var u = () => {
233
233
  name: "test",
234
234
  summary: "Run vitest against the app at the cwd (auto-discovers *.test.ts/tsx).",
235
235
  status: "wired",
236
- run: (e) => import("./test-DO27-x2P.js").then((t) => t.runTestCommand(e)),
236
+ run: (e) => import("./test-jipIQ5Mx.js").then((t) => t.runTestCommand(e)),
237
237
  help: {
238
238
  usage: "[dir] [filter…] [--watch] [-t <pattern>]",
239
239
  flags: [
@@ -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-EmM3jPKD.js").then((t) => t.runInfoCommand(e)),
284
+ run: (e) => import("./infoCommand-BjVXpMlP.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-Bxy2fOjc.js").then((t) => t.runEnvCommand(e)),
305
+ run: (e) => import("./envCommand-UJmJIbs9.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"]],
@@ -326,17 +326,17 @@ var u = () => {
326
326
  },
327
327
  {
328
328
  name: "serve",
329
- summary: "Production server: web app (vite preview) OR API (rpc + tenant scope + audit atomicity), auto-detected.",
329
+ summary: "Production server for an API app (rpc + tenant scope + audit atomicity). A WEB app is served by `voltro start`.",
330
330
  status: "wired",
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-djmqEcDC.js");
334
+ let { runServePreflight: e } = await import("./doctorCommand-DrQv9SL3.js");
335
335
  return e(s(t), !0);
336
336
  }
337
- let { tryRunWebServe: n } = await import("./webDev-1XpVnYkW.js"), r = await n(s(t));
337
+ let { tryRunWebServe: n } = await import("./webDev-B6ZMX42w.js"), r = await n(s(t));
338
338
  if (!r.ran) {
339
- let { runServeDispatch: t } = await import("./serveCommand-Cjt5S9hD.js");
339
+ let { runServeDispatch: t } = await import("./serveCommand-Dtb48ffg.js");
340
340
  return t(e);
341
341
  }
342
342
  return r.exitCode;
@@ -344,8 +344,8 @@ var u = () => {
344
344
  help: {
345
345
  usage: "[app] [--preflight]",
346
346
  flags: [["--preflight", "check serve-bundle readiness and exit 1 if it is missing — never boots"]],
347
- examples: [["voltro serve", "production server for the app in the cwd (api or web, auto-detected)"], ["voltro serve . --preflight", "a Dockerfile/CI gate that catches \"prod serve, no build\""]],
348
- notes: ["In production a precompiled bundle is MANDATORY — run `voltro build` first."]
347
+ examples: [["voltro serve", "production API server for the app in the cwd"], ["voltro serve . --preflight", "a Dockerfile/CI gate that catches \"prod serve, no build\""]],
348
+ notes: ["In production a precompiled bundle is MANDATORY — run `voltro build` first.", "A WEB app is refused here and pointed at `voltro start` (production) / `voltro dev`."]
349
349
  }
350
350
  },
351
351
  {
@@ -364,17 +364,17 @@ 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-djmqEcDC.js").then((t) => t.runDoctorCommand(e))
367
+ run: (e) => import("./doctorCommand-DrQv9SL3.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-S0QOzqPT.js").then((t) => t.runBuildCommand(e)),
373
+ run: (e) => import("./build-QKP6Bm0J.js").then((t) => t.runBuildCommand(e)),
374
374
  help: {
375
375
  usage: "[app] [--target <t>]",
376
- flags: [["--target <t>", "build target"]],
377
- examples: [["voltro build", "production build for the app in the cwd"]],
376
+ flags: [["--target <t>", "build target"], ["--report", "print what a visitor downloads: first load, chunks, server artefacts"]],
377
+ examples: [["voltro build", "production build for the app in the cwd"], ["voltro build --report", "the same build, then its first-load size in bytes"]],
378
378
  notes: [
379
379
  "A web app gets the vite build + per-page SSG prerender + the start bundle; an api gets",
380
380
  "the precompiled serve bundle. Both regenerate their generated files first, so a clean",
@@ -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-C1BTpHGQ.js").then((t) => t.runPruneRuntimeCommand(e)),
389
+ run: (e) => import("./runtimeTrace-BQL_lfz6.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-DY2rYpTa.js").then((t) => t.runDormancyCommand(e)),
407
+ run: (e) => import("./dormancyCommand-xn2y-pJm.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-DH7cat4-.js").then((t) => t.runStartCommand(e)),
424
+ run: (e) => import("./start-s25GAIgn.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)"]],
@@ -475,7 +475,7 @@ var u = () => {
475
475
  name: "db",
476
476
  summary: "Database subcommands. Declarative flow: plan, apply, branch, plans, drift [--accept], squash, restore-snapshot. File migrations: generate [name], migrate, rollback, status, files, rollback-file. Data + housekeeping: seed, gc-snapshots, adopt. Credentials at rest: scan-credentials (find plaintext), encrypt-column (migrate a populated column onto .encrypted()).",
477
477
  status: "wired",
478
- run: (e) => import("./dbCommand-BTyBGhIA.js").then((t) => t.runDbCommand(e)),
478
+ run: (e) => import("./dbCommand-DHi_RuDl.js").then((t) => t.runDbCommand(e)),
479
479
  help: {
480
480
  usage: e(n),
481
481
  examples: [
@@ -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-BEPPQiTl.js").then((t) => t.runDataCommand(e)),
494
+ run: (e) => import("./dataCommand-BoBJJ-Gb.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-nnFjDbl4.js").then((t) => t.runUpdateCommand(e))
558
+ run: (e) => import("./updateCommand-DsXEAHbd.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-nnFjDbl4.js").then((t) => t.runApplyCodemods(e))
565
+ run: (e) => import("./updateCommand-DsXEAHbd.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-BoCqZsgp.js").then((t) => t.runEmbeddingsCommand(e)),
571
+ run: (e) => import("./embeddingsCommand-Cn5MbRDM.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,14 +614,14 @@ 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-Bs3iVBSL.js").then((t) => t.runProbeCommand(e))
617
+ run: (e) => import("./probeCommand-C5fuN6Z2.js").then((t) => t.runProbeCommand(e))
618
618
  },
619
619
  {
620
620
  name: "schedule",
621
621
  summary: "Operate on registered schedules. `run <name>` fires one on demand (--process, --trigger manual|external, --url).",
622
622
  status: "wired",
623
623
  handlesHelp: !0,
624
- run: (e) => import("./scheduleCmd-DQRu6BZC.js").then((t) => t.runScheduleCommand(e))
624
+ run: (e) => import("./scheduleCmd-DYBUfo_T.js").then((t) => t.runScheduleCommand(e))
625
625
  },
626
626
  {
627
627
  name: "schedule-manifest",
@@ -643,35 +643,35 @@ var u = () => {
643
643
  handlesHelp: !0,
644
644
  summary: "Tail recent log records from every running voltro process. --tail N --since 30s --level error --filter PAT --format json|pretty|text.",
645
645
  status: "wired",
646
- run: (e) => import("./logsCmd-B6oNsfaZ.js").then((t) => t.runLogsCommand(e))
646
+ run: (e) => import("./logsCmd-C5y9HyrG.js").then((t) => t.runLogsCommand(e))
647
647
  },
648
648
  {
649
649
  name: "traces",
650
650
  handlesHelp: !0,
651
651
  summary: "Distributed traces from every running api. --tail N --errors --since 30s --process NAME --format json|pretty. Use --id <traceId> for the waterfall of one trace.",
652
652
  status: "wired",
653
- run: (e) => import("./tracesCmd-DgtgOUdi.js").then((t) => t.runTracesCommand(e))
653
+ run: (e) => import("./tracesCmd-C1qKa94g.js").then((t) => t.runTracesCommand(e))
654
654
  },
655
655
  {
656
656
  name: "inspect",
657
657
  handlesHelp: !0,
658
658
  summary: "Query the live /_voltro/inspect/* surface. Subcommands: app, routes, rpc, metrics, cache, schedules, aggregates, invoke. --process NAME --format json|pretty. `schedules --failing` reports only broken crons and exits 1 if any (usable as a post-deploy gate).",
659
659
  status: "wired",
660
- run: (e) => import("./inspectCmd-niF97fAq.js").then((t) => t.runInspectCommand(e))
660
+ run: (e) => import("./inspectCmd-CP-G0sVK.js").then((t) => t.runInspectCommand(e))
661
661
  },
662
662
  {
663
663
  name: "workflows",
664
664
  handlesHelp: !0,
665
665
  summary: "Inspect + operate workflow runs. Subcommands: list, show <runId>, start <name>, retry|cancel|suspend|resume <runId>, signal|update <runId> --name, children <parentExecutionId>, flow (declarative flow-control queue + ledger), pause|unpause <workflowName>.",
666
666
  status: "wired",
667
- run: (e) => import("./workflowsCmd-BGF-mRZ5.js").then((t) => t.runWorkflowsCommand(e))
667
+ run: (e) => import("./workflowsCmd-g-DNpaUc.js").then((t) => t.runWorkflowsCommand(e))
668
668
  },
669
669
  {
670
670
  name: "cluster",
671
671
  handlesHelp: !0,
672
672
  summary: "Clustering snapshot of every running api. Subcommand: status — per-instance replicaId, runner address, dialect, CDC flavor, coordination, server_id, + a flag for SQL runners stuck on localhost. --process NAME --format json|pretty.",
673
673
  status: "wired",
674
- run: (e) => import("./clusterCmd-DrVFCzSj.js").then((t) => t.runClusterCommand(e))
674
+ run: (e) => import("./clusterCmd-CdLB1GkT.js").then((t) => t.runClusterCommand(e))
675
675
  },
676
676
  {
677
677
  name: "login",
@@ -1,6 +1,6 @@
1
- import { f as e } from "./dev-Ca_A_S9v.js";
2
- import { Z as t, et as n } from "./webDev-B7vNj4Bq.js";
3
- import { t as r } from "./start-EOV7s1NZ.js";
1
+ import { f as e } from "./dev-DOEJXicj.js";
2
+ import { it as t, tt as n } from "./webDev-BgdkyjP6.js";
3
+ import { t as r } from "./start-YaUehtDV.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";
@@ -9,10 +9,10 @@ var s = o({ scope: "voltro:dashboard" }), c = (e, t) => {
9
9
  let n = e.indexOf(t);
10
10
  return n >= 0 ? e[n + 1] : void 0;
11
11
  }, l = async (o) => {
12
- process.env[t] = "1";
12
+ process.env[n] = "1";
13
13
  let l = c(o, "--port") ?? process.env.VOLTRO_DASHBOARD_PORT ?? "5179";
14
14
  process.env.VOLTRO_DASHBOARD_PORT = l;
15
- let u = n(process.cwd());
15
+ let u = t(process.cwd());
16
16
  if (!u) return s.error("dashboard app not found. Install it with `pnpm add @voltro/dashboard`, or set VOLTRO_DASHBOARD_PATH to a dashboard app directory."), 1;
17
17
  let d = a(i(u, ".framework", "dist", "index.html"));
18
18
  return s.info(`serving the Voltro dashboard on :${l}`, {
@@ -1,11 +1,11 @@
1
1
  import { a as e, t } from "./subcommandNames-CDzfEtKV.js";
2
2
  import { t as n } from "./cliError-BmdYnghb.js";
3
- import { B as r, c as i, i as a, o } from "./dev-Ca_A_S9v.js";
3
+ import { K as r, c as i, i as a, o } from "./dev-DOEJXicj.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";
7
- import { o as m, t as h } from "./inspectFetch-EMuhTG_9.js";
8
- import { r as g } from "./dbCommand-DZTmOFT4.js";
7
+ import { o as m, t as h } from "./inspectFetch-BU1NyzxV.js";
8
+ import { r as g } from "./dbCommand-CMAIz-Bf.js";
9
9
  import { resolve as _ } from "node:path";
10
10
  import { createLogger as v } from "@voltro/logger";
11
11
  import { DATA_TRANSFERS_TABLE as y, REPLACE_IN_PROGRESS_TABLE as b, _voltroDataTransfersTable as x, _voltroReplaceInProgressTable as S, connectionIdentity as C, derivedRowId as w, ensureTableRegistered as T, normaliseTarget as ee, sameDatabase as te, streamTable as ne } from "@voltro/database";