@voltro/cli 0.56.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 (115) hide show
  1. package/CHANGELOG.md +194 -0
  2. package/dist/apiBuild-B83Cb2Rv.js +2 -0
  3. package/dist/{apiBuild-Bdaetr37.js → apiBuild-DDr2aNFd.js} +2 -2
  4. package/dist/bin.js +1 -1
  5. package/dist/{build-CI36wL4R.js → build-QKP6Bm0J.js} +191 -187
  6. package/dist/{checkCommand-D0QV_zM_.js → checkCommand-BISqx1OJ.js} +1 -1
  7. package/dist/{checkCommand-CAwFXrxA.js → checkCommand-DUtMWjcR.js} +4 -4
  8. package/dist/{codegenCommand-CidbQzbv.js → codegenCommand-DnVuDxwT.js} +10 -10
  9. package/dist/{commands-CWjfThXv.js → commands-CRbxgxv0.js} +22 -22
  10. package/dist/{dashboardCommand-BekcY5Ls.js → dashboardCommand-Bf_-Ne3P.js} +5 -5
  11. package/dist/{dataCommand-2pccgbIy.js → dataCommand-BoBJJ-Gb.js} +2 -2
  12. package/dist/{dbCommand-DpK_vQET.js → dbCommand-CMAIz-Bf.js} +3 -3
  13. package/dist/dbCommand-DHi_RuDl.js +2 -0
  14. package/dist/dev-Bl9HqtV7.js +3 -0
  15. package/dist/{dev-Dw263KPu.js → dev-DOEJXicj.js} +2109 -2092
  16. package/dist/{doctorCommand-aR_bFmIi.js → doctorCommand-BrWu67JZ.js} +331 -189
  17. package/dist/doctorCommand-DrQv9SL3.js +2 -0
  18. package/dist/{dormancyCommand-eXTQMbHU.js → dormancyCommand-xn2y-pJm.js} +1 -1
  19. package/dist/{embeddingsCommand-CTmiQvwa.js → embeddingsCommand-Cn5MbRDM.js} +1 -1
  20. package/dist/emptyResultHeadline-Csa5fZOF.js +18 -0
  21. package/dist/{envCommand-BDUgV7EM.js → envCommand-UJmJIbs9.js} +8 -8
  22. package/dist/{evolveCommand-YV8qW1LU.js → evolveCommand-Db30twUy.js} +1 -1
  23. package/dist/frameworkTableAssembly-B96WCNJA.js +2 -0
  24. package/dist/{frameworkTableAssembly-DNOFXfEQ.js → frameworkTableAssembly-vfkzuzEo.js} +104 -85
  25. package/dist/index.js +1 -1
  26. package/dist/inspect-B0hL41s0.js +2 -0
  27. package/dist/{inspect-CNYvNXPU.js → inspect-DZnan87F.js} +68 -52
  28. package/dist/{logsCmd-BU8uCdys.js → logsCmd-C5y9HyrG.js} +58 -53
  29. package/dist/{manifestBuild-CEkjfpwc.js → manifestBuild-DnbFKF6w.js} +1 -1
  30. package/dist/manifestBuild-UXrnUcXP.js +2 -0
  31. package/dist/{migrate-SICulyz1.js → migrate-DtC3lu7H.js} +4 -4
  32. package/dist/{probeCommand-6HxEkNDG.js → probeCommand-C5fuN6Z2.js} +1 -1
  33. package/dist/{runtimeTrace-DgYMc09E.js → runtimeTrace-BQL_lfz6.js} +1 -1
  34. package/dist/{sdkgen-PY-umd6O.js → sdkgen-CMUPrDjH.js} +1 -1
  35. package/dist/{serveCommand-DIJ3ma76.js → serveCommand-B_w-Mpb_.js} +1013 -954
  36. package/dist/serveCommand-Dtb48ffg.js +2 -0
  37. package/dist/serveEntry.js +1 -1
  38. package/dist/{start-B9NGB8gn.js → start-YaUehtDV.js} +564 -571
  39. package/dist/{start-BFQQkL1i.js → start-s25GAIgn.js} +1 -1
  40. package/dist/startEntry.js +1 -1
  41. package/dist/{tracesCmd-BWYDqMy6.js → tracesCmd-C1qKa94g.js} +68 -63
  42. package/dist/{webDev-C2dRz9s5.js → webDev-B6ZMX42w.js} +1 -1
  43. package/dist/{webDev-C53hJdcL.js → webDev-BgdkyjP6.js} +881 -774
  44. package/dist/{webhooksCommand-uuPu8qQX.js → webhooksCommand-CYXTNvXq.js} +2 -2
  45. package/package.json +19 -19
  46. package/templates/AGENTS.md +1 -1
  47. package/templates/agent-docs/_index.md +1 -1
  48. package/templates/agent-docs/_manifest.json +1 -1
  49. package/templates/agent-docs/ai.md +1 -1
  50. package/templates/agent-docs/authentication.md +34 -19
  51. package/templates/agent-docs/cli.md +48 -0
  52. package/templates/agent-docs/configuration.md +29 -4
  53. package/templates/agent-docs/database/scaling.md +10 -1
  54. package/templates/agent-docs/deployment.md +22 -0
  55. package/templates/agent-docs/plugins/audit.md +21 -5
  56. package/templates/agent-docs/plugins/billing.md +2 -0
  57. package/templates/agent-docs/reference.md +1 -0
  58. package/templates/agent-docs/scheduling.md +23 -0
  59. package/templates/agent-docs/schema-driven-ui.md +81 -0
  60. package/templates/agent-docs/whats-new.md +100 -403
  61. package/templates/apps/api-ai/package.json +6 -6
  62. package/templates/apps/api-auth/package.json +8 -8
  63. package/templates/apps/api-backend/package.json +7 -7
  64. package/templates/apps/api-backend-deactivation/package.json +7 -7
  65. package/templates/apps/api-backend-mail/package.json +8 -8
  66. package/templates/apps/api-backend-mariadb/package.json +9 -9
  67. package/templates/apps/api-backend-sqlite/package.json +8 -8
  68. package/templates/apps/api-backend-storage/package.json +8 -8
  69. package/templates/apps/api-cms/package.json +9 -9
  70. package/templates/apps/api-collab/package.json +8 -8
  71. package/templates/apps/api-data-advanced/package.json +8 -8
  72. package/templates/apps/api-durable/package.json +8 -8
  73. package/templates/apps/api-feature-flags/package.json +9 -9
  74. package/templates/apps/api-governance/package.json +8 -8
  75. package/templates/apps/api-kv/package.json +8 -8
  76. package/templates/apps/api-moderation/package.json +8 -8
  77. package/templates/apps/api-observability/package.json +8 -8
  78. package/templates/apps/api-ratelimit/package.json +8 -8
  79. package/templates/apps/api-rbac/package.json +8 -8
  80. package/templates/apps/api-rest/package.json +7 -7
  81. package/templates/apps/api-row-history/package.json +8 -8
  82. package/templates/apps/api-saas/package.json +11 -11
  83. package/templates/apps/api-saas-starter/package.json +10 -10
  84. package/templates/apps/api-search/package.json +8 -8
  85. package/templates/apps/api-status/package.json +8 -8
  86. package/templates/apps/api-webhooks/package.json +9 -9
  87. package/templates/apps/changelog/package.json +7 -7
  88. package/templates/apps/edge-functions/package.json +2 -2
  89. package/templates/apps/frontend-admin/package.json +7 -7
  90. package/templates/apps/frontend-app/package.json +8 -8
  91. package/templates/apps/frontend-auth/package.json +7 -7
  92. package/templates/apps/frontend-blank/package.json +6 -6
  93. package/templates/apps/frontend-cms/package.json +8 -8
  94. package/templates/apps/frontend-collab/package.json +9 -9
  95. package/templates/apps/frontend-contact/package.json +7 -7
  96. package/templates/apps/frontend-dashboard/package.json +6 -6
  97. package/templates/apps/frontend-docs/package.json +8 -8
  98. package/templates/apps/frontend-i18n/package.json +6 -6
  99. package/templates/apps/frontend-landing/package.json +7 -7
  100. package/templates/apps/frontend-portal/package.json +7 -7
  101. package/templates/apps/frontend-saas/package.json +7 -7
  102. package/templates/apps/frontend-spa/package.json +6 -6
  103. package/templates/apps/frontend-ssr/package.json +6 -6
  104. package/templates/apps/frontend-ssr-api/package.json +7 -7
  105. package/templates/apps/frontend-static-blog/package.json +8 -8
  106. package/templates/apps/frontend-status/package.json +7 -7
  107. package/templates/apps/mobile-app/package.json +4 -4
  108. package/dist/apiBuild-Vw1figjO.js +0 -2
  109. package/dist/dbCommand-DrycGWWt.js +0 -2
  110. package/dist/dev-B9Gz0k85.js +0 -3
  111. package/dist/doctorCommand-BMWs6aVm.js +0 -2
  112. package/dist/frameworkTableAssembly-CGNC0qr7.js +0 -2
  113. package/dist/inspect-S2rWy1Ys.js +0 -2
  114. package/dist/manifestBuild-DIa_s6u0.js +0 -2
  115. package/dist/serveCommand-BITS8Hpj.js +0 -2
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, o as n } from "./checkCommand-CAwFXrxA.js";
1
+ import { a as e, i as t, o as n } from "./checkCommand-DUtMWjcR.js";
2
2
  export { t as offlineManifest, e as runCheckCommand, n as toInput };
@@ -4,7 +4,7 @@ import { r } from "./appGraph-yRuKjOba.js";
4
4
  import { n as i } from "./cliOutput-D1tSBoRM.js";
5
5
  import { n as a, o, r as s, t as c } from "./inspectFetch-BU1NyzxV.js";
6
6
  import { r as l } from "./fileTaxonomy-CbyMQYx_.js";
7
- import { S as u } from "./doctorCommand-aR_bFmIi.js";
7
+ import { S as u } from "./doctorCommand-BrWu67JZ.js";
8
8
  import { resolve as d } from "node:path";
9
9
  import { readdirSync as f, statSync as p } from "node:fs";
10
10
  import { isReactivityChannelKey as m } from "@voltro/protocol";
@@ -170,9 +170,9 @@ var h = (e) => (e === void 0 ? [] : typeof e == "string" ? [e] : e).filter((e) =
170
170
  let t = e.severity === "error" ? "✗ error" : "⚠ warn", n = e.file ? ` (${e.file})` : "";
171
171
  return `${t} ${e.rule} ${e.node}${n}\n ${e.breaks.join("; ")}\n fix: ${e.fix}`;
172
172
  }).join("\n"), O = async (e) => {
173
- let { walk: t, loadDiscovered: n, loadApiConfig: r } = await import("./dev-B9Gz0k85.js"), { buildRpcEntry: i } = await import("./manifestBuild-DIa_s6u0.js"), { buildCapabilityManifest: a } = await import("./inspect-S2rWy1Ys.js"), { relative: o } = await import("node:path"), s = await n(await t(e)), c = await r(e).then((e) => e?.plugins ?? []).catch(() => []);
173
+ let { walk: t, loadDiscovered: n, loadApiConfig: r } = await import("./dev-Bl9HqtV7.js"), { buildRpcEntry: i } = await import("./manifestBuild-UXrnUcXP.js"), { buildCapabilityManifest: a } = await import("./inspect-B0hL41s0.js"), { relative: o } = await import("node:path"), s = await n(await t(e), { root: e }), c = await r(e).then((e) => e?.plugins ?? []).catch(() => []);
174
174
  try {
175
- let { mergePluginRoutesInto: e } = await import("./dev-B9Gz0k85.js");
175
+ let { mergePluginRoutesInto: e } = await import("./dev-Bl9HqtV7.js");
176
176
  e({
177
177
  plugins: c,
178
178
  queries: s.queries,
@@ -189,7 +189,7 @@ var h = (e) => (e === void 0 ? [] : typeof e == "string" ? [e] : e).filter((e) =
189
189
  ...s.mutations.map((e) => l(e.descriptor, "mutation", e.file)),
190
190
  ...s.actions.map((e) => l(e.descriptor, "action", e.file)),
191
191
  ...s.streams.map((e) => l(e.descriptor, "stream", e.file))
192
- ], { assembleFrameworkTables: d } = await import("./frameworkTableAssembly-CGNC0qr7.js"), f = await d({ root: e }).catch((e) => (console.warn(`\n⚠ plugin tables could not be collected — this report is INCOMPLETE.\n ${e instanceof Error ? e.message.split("\n")[0] : String(e)}\n`), [])), p = new Set(s.tables.map((e) => e.tableName)), m = [...[...p].map((e) => ({ name: e })), ...f.map((e) => e.tableName).filter((e) => !p.has(e)).map((e) => ({
192
+ ], { assembleFrameworkTables: d } = await import("./frameworkTableAssembly-B96WCNJA.js"), f = await d({ root: e }).catch((e) => (console.warn(`\n⚠ plugin tables could not be collected — this report is INCOMPLETE.\n ${e instanceof Error ? e.message.split("\n")[0] : String(e)}\n`), [])), p = new Set(s.tables.map((e) => e.tableName)), m = [...[...p].map((e) => ({ name: e })), ...f.map((e) => e.tableName).filter((e) => !p.has(e)).map((e) => ({
193
193
  name: e,
194
194
  framework: !0
195
195
  }))], h = c;
@@ -1,17 +1,17 @@
1
- import { An as e, V as t, kn as n, l as r, u as i } from "./dev-Dw263KPu.js";
2
- import { n as a } from "./frameworkTableAssembly-DNOFXfEQ.js";
1
+ import { Fn as e, In as t, l as n, q as r, u as i } from "./dev-DOEJXicj.js";
2
+ import { n as a } from "./frameworkTableAssembly-vfkzuzEo.js";
3
3
  import { i as o, r as s } from "./codegen-Bth5lUTU.js";
4
4
  import { n as c, r as l } from "./mobileCommand-D9O6iq3D.js";
5
5
  import { basename as u, relative as d, resolve as f } from "node:path";
6
6
  //#region src/codegenCommand.ts
7
- var p = async (n) => {
8
- let { config: i, present: a, error: o } = await r(n);
7
+ var p = async (e) => {
8
+ let { config: i, present: a, error: o } = await n(e);
9
9
  if (a && i === null) return {
10
10
  kind: "refused",
11
11
  reason: "app.config.ts exists but could not be loaded" + (o === void 0 ? "" : ` — ${o instanceof Error ? o.message : String(o)}`)
12
12
  };
13
- let c = i?.plugins ?? [], { pluginContributions: l, pluginErrorImports: d, pluginRpcImports: f, pluginAliases: p } = await t(c, i?.name ?? u(n), n), h = await s({
14
- root: n,
13
+ let c = i?.plugins ?? [], { pluginContributions: l, pluginErrorImports: d, pluginRpcImports: f, pluginAliases: p } = await r(c, i?.name ?? u(e), e), h = await s({
14
+ root: e,
15
15
  ...l.length > 0 ? { pluginContributions: l } : {},
16
16
  ...d.length > 0 ? { pluginErrorImports: d } : {},
17
17
  ...f.length > 0 ? { pluginRpcImports: f } : {},
@@ -19,7 +19,7 @@ var p = async (n) => {
19
19
  ...i?.name === void 0 ? {} : { apiName: i.name }
20
20
  });
21
21
  if (!h) return { kind: "nothing-to-write" };
22
- let g = await m(n, i), _ = await e(h, g);
22
+ let g = await m(e, i), _ = await t(h, g);
23
23
  return {
24
24
  kind: "wrote",
25
25
  file: h,
@@ -29,9 +29,9 @@ var p = async (n) => {
29
29
  tables: g.size,
30
30
  dts: _
31
31
  };
32
- }, m = async (e, t) => {
33
- let r = await o(e), { tables: s } = await i(r), c = await a({ root: e });
34
- return n(s, c, t?.analytics?.tables ?? []);
32
+ }, m = async (t, n) => {
33
+ let r = await o(t), { tables: s } = await i(r, { root: t }), c = await a({ root: t });
34
+ return e(s, c, n?.analytics?.tables ?? []);
35
35
  }, h = async (e) => {
36
36
  let t = f(e.find((e) => !e.startsWith("-")) ?? process.cwd()), n = await l(t);
37
37
  if (n.apis.kind !== "not-a-mobile-app") return c(t, n);
@@ -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-B9Gz0k85.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-BekcY5Ls.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-D0QV_zM_.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-uuPu8qQX.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-YV8qW1LU.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-CidbQzbv.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-SICulyz1.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)"]],
@@ -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-BDUgV7EM.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"]],
@@ -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-BMWs6aVm.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-C2dRz9s5.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-BITS8Hpj.js");
339
+ let { runServeDispatch: t } = await import("./serveCommand-Dtb48ffg.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-BMWs6aVm.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-CI36wL4R.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
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-DgYMc09E.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-eXTQMbHU.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-BFQQkL1i.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-DrycGWWt.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-2pccgbIy.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: [
@@ -568,7 +568,7 @@ var u = () => {
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-CTmiQvwa.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,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-6HxEkNDG.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",
@@ -643,14 +643,14 @@ 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-BU8uCdys.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-BWYDqMy6.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",
@@ -1,6 +1,6 @@
1
- import { f as e } from "./dev-Dw263KPu.js";
2
- import { Q as t, tt as n } from "./webDev-C53hJdcL.js";
3
- import { t as r } from "./start-B9NGB8gn.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-Dw263KPu.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
7
  import { o as m, t as h } from "./inspectFetch-BU1NyzxV.js";
8
- import { r as g } from "./dbCommand-DpK_vQET.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";
@@ -7,7 +7,7 @@ import { a as s, i as c, n as l, t as u } from "./cliArgs-D4p8n7EE.js";
7
7
  import { r as d } from "./dialectDriver-czCHYpeH.js";
8
8
  import { a as f } from "./connectionConfig-Bk9IC7D0.js";
9
9
  import { i as p, n as m, r as h, s as g, t as _ } from "./seedRunner-DISBKow-.js";
10
- import { g as v, n as y, s as b } from "./frameworkTableAssembly-DNOFXfEQ.js";
10
+ import { _ as v, c as y, n as b } from "./frameworkTableAssembly-vfkzuzEo.js";
11
11
  import { C as x, S } from "./fileConventions-l-RIXbx8.js";
12
12
  import { basename as ee, join as C, relative as w, resolve as T } from "node:path";
13
13
  import { promises as E, writeSync as te } from "node:fs";
@@ -1004,7 +1004,7 @@ var Ie = (e) => {
1004
1004
  }, X = async (e) => {
1005
1005
  let t = await Bt(e);
1006
1006
  if (t.length === 0) return;
1007
- let n = await y({ root: e });
1007
+ let n = await b({ root: e });
1008
1008
  return Vt(Ht([
1009
1009
  ...t,
1010
1010
  ...se,
@@ -1013,7 +1013,7 @@ var Ie = (e) => {
1013
1013
  }, Z = async (e, t, n) => {
1014
1014
  let r;
1015
1015
  try {
1016
- let t = await b(e);
1016
+ let t = await y(e);
1017
1017
  await q(n, v(t, (e, t) => {
1018
1018
  z.info(`db apply: ${e}`, t ?? {});
1019
1019
  }));
@@ -0,0 +1,2 @@
1
+ import { c as e } from "./dbCommand-CMAIz-Bf.js";
2
+ export { e as runDbCommand };
@@ -0,0 +1,3 @@
1
+ import { c as e, d as t, f as n, i as r, l as i, p as a, u as o } from "./dev-DOEJXicj.js";
2
+ import "./dialectDriver-czCHYpeH.js";
3
+ export { r as buildStore, e as loadApiConfig, i as loadApiConfigDiagnosed, o as loadDiscovered, t as mergePluginRoutesInto, n as runDev, a as walk };