@voltro/cli 0.38.0 → 0.39.1

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 (173) hide show
  1. package/CHANGELOG.md +276 -0
  2. package/THIRD-PARTY-NOTICES.md +80 -45
  3. package/dist/{addCommand-BNeoeSxe.js → addCommand-C05L9tZh.js} +2 -2
  4. package/dist/addCommand-C3MdJG-a.js +2 -0
  5. package/dist/{agentsMd-mhQMF1bx.js → agentsMd-7zI2h5l9.js} +3 -3
  6. package/dist/agentsMd-BFCXh2gl.js +2 -0
  7. package/dist/apiBuild-BmR_bIxN.js +2 -0
  8. package/dist/{apiBuild-CvacV4zA.js → apiBuild-D9FB13_2.js} +3 -3
  9. package/dist/baselineCommand-CXv680Dc.js +2 -0
  10. package/dist/{baselineCommand-C6NMt-oa.js → baselineCommand-Ck2Xm8M7.js} +18 -18
  11. package/dist/bin.js +1 -1
  12. package/dist/{build-_LoTC1s0.js → build-DORV5mLM.js} +107 -100
  13. package/dist/{capabilitiesCommand-nq_pz5xd.js → capabilitiesCommand-D5gucwYa.js} +8 -8
  14. package/dist/{checkCommand-Pjk5sBl2.js → checkCommand-Bf6oMao4.js} +35 -35
  15. package/dist/{checkCommand-wibtQx-N.js → checkCommand-D9qK_gtA.js} +1 -1
  16. package/dist/{cloudCmd-NQSwe_Qk.js → cloudCmd-C42gaO8s.js} +16 -16
  17. package/dist/{clusterCmd-D5wsCmA_.js → clusterCmd-DrVFCzSj.js} +8 -4
  18. package/dist/{codegen-GYYcdpCg.js → codegen-CbpGCWLG.js} +1 -1
  19. package/dist/codegen-i8QGcHsi.js +2 -0
  20. package/dist/codegenCommand-CxOyKmc1.js +129 -0
  21. package/dist/{codemodRunner-CXgQ-ecJ.js → codemodRunner-D-jTyvWo.js} +622 -551
  22. package/dist/{commands-DaZVi9wi.js → commands-D6aW_6AR.js} +48 -48
  23. package/dist/{connectionConfig-UFlIEiys.js → connectionConfig-Bk9IC7D0.js} +1 -1
  24. package/dist/{dashboardCommand-Dxy_kmoW.js → dashboardCommand-CwTZh-XZ.js} +3 -3
  25. package/dist/{dataCommand-D6-Ha2lf.js → dataCommand-Cc9RiLQZ.js} +14 -11
  26. package/dist/{dbCommand-C4UW8cVN.js → dbCommand-DSwGv9wS.js} +50 -49
  27. package/dist/dbCommand-DcqEyxju.js +2 -0
  28. package/dist/{dev-E7Eo5GHc.js → dev-3mgc8c-H.js} +2260 -2184
  29. package/dist/dev-CjJAasDs.js +3 -0
  30. package/dist/{dialectDriver-CgXnDfec.js → dialectDriver-czCHYpeH.js} +2 -1
  31. package/dist/doctorCommand-Cghssndo.js +2 -0
  32. package/dist/{doctorCommand-gmDyALFL.js → doctorCommand-oLuzc-aC.js} +261 -244
  33. package/dist/{dormancyCommand-CE6wG8lj.js → dormancyCommand-Bxe4WtHU.js} +1 -1
  34. package/dist/{e2eCmd-BRabZww-.js → e2eCmd-uFHig1hV.js} +8 -2
  35. package/dist/{embeddingsCommand-C3uAuf6N.js → embeddingsCommand-CyNQkFIc.js} +6 -6
  36. package/dist/{envCommand-DzuWh8ya.js → envCommand-CAkSgBbh.js} +19 -19
  37. package/dist/{evolveCommand-DPLqcYb2.js → evolveCommand-CWhBoe_P.js} +6 -8
  38. package/dist/frameworkTableAssembly-DgylYh9_.js +2 -0
  39. package/dist/{generateCommand-DbgcUpGw.js → generateCommand-CcyvH2ve.js} +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/{infoCommand-CmczGj_l.js → infoCommand-CTo8Jnhq.js} +7 -7
  42. package/dist/inspect-B7U7Cl_Z.js +1192 -0
  43. package/dist/inspect-DUze25t0.js +2 -0
  44. package/dist/{inspectCmd-EHFZ9yYu.js → inspectCmd-niF97fAq.js} +5 -5
  45. package/dist/inspectGateHint-BjnFubmH.js +7 -0
  46. package/dist/{logFileSink-C_D2wRN1.js → logFileSink-B4uP8pvf.js} +1 -1
  47. package/dist/{logsCmd-D36xK7Zu.js → logsCmd-B6oNsfaZ.js} +10 -7
  48. package/dist/{manifestBuild-hpPLaGxV.js → manifestBuild-BK42hu0k.js} +1 -1
  49. package/dist/manifestBuild-j0n109tt.js +2 -0
  50. package/dist/{metaCommands-CIoQNlaQ.js → metaCommands-DUYR--Ts.js} +1 -1
  51. package/dist/{migrate-RwgUWXfc.js → migrate-BnPw2zC8.js} +7 -4
  52. package/dist/{packageCommand-Cug_3Ogl.js → packageCommand-9SVyvsSo.js} +3 -2
  53. package/dist/{probeCommand-BPEpwT32.js → probeCommand-C9gazU0H.js} +35 -24
  54. package/dist/{projectScaffold-CxgtJvlb.js → projectScaffold-BEhhHjPr.js} +1 -1
  55. package/dist/{projectScaffold-DDgWbNLe.js → projectScaffold-BvhLOrLq.js} +17 -15
  56. package/dist/{runtimeTrace-6jfznSzr.js → runtimeTrace-gNXeLf6H.js} +1 -1
  57. package/dist/{scheduleManifestCmd-D2x0CTTY.js → scheduleManifestCmd-kmWzrO_w.js} +6 -9
  58. package/dist/{sdkgen-CEJZZQUA.js → sdkgen-C8zz10-X.js} +4 -4
  59. package/dist/{seedRunner-ZmLSqNe2.js → seedRunner-IdHEprqf.js} +1 -4
  60. package/dist/serveCommand-BpK8-m1N.js +1770 -0
  61. package/dist/serveCommand-CW-goXvh.js +2 -0
  62. package/dist/serveEntry.js +2 -2
  63. package/dist/{serverlessCommand-CfJZy6dS.js → serverlessCommand-DbJ7Plg9.js} +3 -3
  64. package/dist/{start-CidwCcjl.js → start-BNuTWdRd.js} +1 -1
  65. package/dist/{start-RCh6qKFe.js → start-ft_KzFTd.js} +257 -254
  66. package/dist/startEntry.js +1 -1
  67. package/dist/{test-DIQ0jlkQ.js → test-CLYXrZ2F.js} +1 -1
  68. package/dist/{tracesCmd-DStmCJPi.js → tracesCmd-DgtgOUdi.js} +7 -4
  69. package/dist/{typecheckCommand-BlsWiCNq.js → typecheckCommand-BuCtT92o.js} +7 -7
  70. package/dist/updateCommand-6FMU2klq.js +2 -0
  71. package/dist/{updateCommand-CmksX7m_.js → updateCommand-CHBmCB17.js} +5 -3
  72. package/dist/{webDev-BKdD7c_a.js → webDev-CTpSY-e_.js} +813 -775
  73. package/dist/webDev-id3I5PvG.js +2 -0
  74. package/dist/{webhookDiscovery-D7VaeMlz.js → webhookDiscovery-CphsQe59.js} +4 -6
  75. package/dist/{webhookDiscovery-CrGAfhIG.js → webhookDiscovery-il9ti-HE.js} +1 -1
  76. package/dist/{webhooksCommand-BHeaF1ZJ.js → webhooksCommand-EccPZQZ4.js} +1 -1
  77. package/package.json +27 -21
  78. package/templates/AGENTS.md +2 -2
  79. package/templates/agent-docs/_index.md +2 -2
  80. package/templates/agent-docs/_manifest.json +2 -2
  81. package/templates/agent-docs/authentication.md +43 -4
  82. package/templates/agent-docs/cli.md +17 -13
  83. package/templates/agent-docs/data.md +44 -1
  84. package/templates/agent-docs/database/migrations.md +2 -2
  85. package/templates/agent-docs/database/seedsdialects.md +2 -2
  86. package/templates/agent-docs/deployment.md +21 -7
  87. package/templates/agent-docs/internationalization.md +10 -3
  88. package/templates/agent-docs/local-first-mobile.md +141 -20
  89. package/templates/agent-docs/plugins/mail.md +1 -1
  90. package/templates/agent-docs/plugins/ratelimit.md +1 -1
  91. package/templates/agent-docs/plugins.md +3 -1
  92. package/templates/agent-docs/releases.md +130 -1
  93. package/templates/agent-docs/routing.md +34 -2
  94. package/templates/agent-docs/templates/apibackends.md +1 -1
  95. package/templates/agent-docs/templates/mobile.md +1 -1
  96. package/templates/agent-docs/whats-new.md +26 -66
  97. package/templates/apps/api-ai/package.json +7 -7
  98. package/templates/apps/api-auth/package.json +8 -8
  99. package/templates/apps/api-backend/package.json +7 -7
  100. package/templates/apps/api-backend-deactivation/package.json +7 -7
  101. package/templates/apps/api-backend-mail/package.json +8 -8
  102. package/templates/apps/api-backend-mariadb/package.json +9 -9
  103. package/templates/apps/api-backend-sqlite/package.json +8 -8
  104. package/templates/apps/api-backend-storage/package.json +8 -8
  105. package/templates/apps/api-cms/package.json +10 -10
  106. package/templates/apps/api-collab/package.json +8 -8
  107. package/templates/apps/api-data-advanced/package.json +8 -8
  108. package/templates/apps/api-durable/package.json +8 -8
  109. package/templates/apps/api-durable/startup/warm.startup.tsx +16 -2
  110. package/templates/apps/api-feature-flags/package.json +9 -9
  111. package/templates/apps/api-governance/package.json +8 -8
  112. package/templates/apps/api-kv/package.json +8 -8
  113. package/templates/apps/api-moderation/package.json +8 -8
  114. package/templates/apps/api-observability/package.json +8 -8
  115. package/templates/apps/api-ratelimit/package.json +8 -8
  116. package/templates/apps/api-rbac/authz.ts +16 -1
  117. package/templates/apps/api-rbac/package.json +8 -8
  118. package/templates/apps/api-rest/package.json +7 -7
  119. package/templates/apps/api-saas/package.json +11 -11
  120. package/templates/apps/api-saas-starter/package.json +10 -10
  121. package/templates/apps/api-search/package.json +8 -8
  122. package/templates/apps/api-status/package.json +8 -8
  123. package/templates/apps/api-versioning/package.json +8 -8
  124. package/templates/apps/api-webhooks/package.json +9 -9
  125. package/templates/apps/changelog/package.json +6 -6
  126. package/templates/apps/edge-functions/package.json +2 -2
  127. package/templates/apps/frontend-admin/package.json +8 -8
  128. package/templates/apps/frontend-app/package.json +9 -9
  129. package/templates/apps/frontend-auth/package.json +8 -8
  130. package/templates/apps/frontend-blank/package.json +7 -7
  131. package/templates/apps/frontend-cms/package.json +9 -9
  132. package/templates/apps/frontend-collab/package.json +10 -10
  133. package/templates/apps/frontend-contact/package.json +7 -7
  134. package/templates/apps/frontend-dashboard/package.json +7 -7
  135. package/templates/apps/frontend-docs/package.json +7 -7
  136. package/templates/apps/frontend-i18n/package.json +6 -6
  137. package/templates/apps/frontend-landing/package.json +7 -7
  138. package/templates/apps/frontend-portal/package.json +8 -8
  139. package/templates/apps/frontend-saas/package.json +8 -8
  140. package/templates/apps/frontend-spa/package.json +7 -7
  141. package/templates/apps/frontend-ssr/package.json +7 -7
  142. package/templates/apps/frontend-ssr-api/package.json +8 -8
  143. package/templates/apps/frontend-static-blog/package.json +6 -6
  144. package/templates/apps/frontend-status/package.json +8 -8
  145. package/templates/apps/mobile-app/README.md +41 -17
  146. package/templates/apps/mobile-app/app.config.ts +1 -1
  147. package/templates/apps/mobile-app/package.json +15 -11
  148. package/templates/apps/mobile-app/src/app/_layout.tsx +44 -13
  149. package/templates/apps/mobile-app/src/app/index.tsx +1 -1
  150. package/templates/apps/mobile-app/src/app/settings.tsx +4 -1
  151. package/templates/apps/mobile-app/src/client.ts +74 -57
  152. package/templates/apps/mobile-app/src/lib/api.ts +4 -4
  153. package/templates/apps/mobile-app/src/lib/deeplinks.ts +6 -6
  154. package/templates/apps/mobile-app/src/persistence.ts +24 -3
  155. package/templates/apps/mobile-app/tsconfig.json +17 -3
  156. package/dist/addCommand-aXSQveak.js +0 -2
  157. package/dist/agentsMd-BTchIZku.js +0 -2
  158. package/dist/apiBuild-ttSDDOGp.js +0 -2
  159. package/dist/baselineCommand-Cfw2Afwm.js +0 -2
  160. package/dist/codegen-uYrrDzQv.js +0 -2
  161. package/dist/codegenCommand-C60m_LCp.js +0 -30
  162. package/dist/dbCommand-CC-qNzpz.js +0 -2
  163. package/dist/dev-CAOoXOkc.js +0 -3
  164. package/dist/doctorCommand-Cjl8Yii8.js +0 -2
  165. package/dist/frameworkTableAssembly-YyVe32Cb.js +0 -2
  166. package/dist/inspect-CjTYzAs_.js +0 -1190
  167. package/dist/inspect-P4pxoMaV.js +0 -2
  168. package/dist/inspectGateHint-BF6608UT.js +0 -4
  169. package/dist/manifestBuild-COkJoyAr.js +0 -2
  170. package/dist/serveCommand-DNRF2nDI.js +0 -2
  171. package/dist/serveCommand-DnY4VS3D.js +0 -1767
  172. package/dist/updateCommand-B0J_T9Vs.js +0 -2
  173. package/dist/webDev-CcJfdSjl2.js +0 -2
@@ -1,4 +1,4 @@
1
- import { c as e, i as t } from "./dev-E7Eo5GHc.js";
1
+ import { c as e, i as t } from "./dev-3mgc8c-H.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";
@@ -67,7 +67,10 @@ var p = l({ scope: "voltro:e2e" }), m = async (e) => {
67
67
  for (let t of s) t.isDirectory() && l(t.name, r) && await u(i(e, t.name), a);
68
68
  };
69
69
  return await u(s, a), c.sort();
70
- }, _ = () => a(r(s(import.meta.url)), "..", "bin", "voltro.mjs"), v = async (e) => {
70
+ }, _ = () => {
71
+ let e = r(s(import.meta.url));
72
+ return a(e, "..", "bin", "voltro.mjs");
73
+ }, v = async (e) => {
71
74
  p.info("starting e2e run", { webRoot: e });
72
75
  let r = await m(e);
73
76
  if (!r) return p.error("no app.config.ts (or type:'web') at this path", { webRoot: e }), 1;
@@ -142,6 +145,9 @@ var p = l({ scope: "voltro:e2e" }), m = async (e) => {
142
145
  }, y = (e) => u.tryPromise({
143
146
  try: () => v(e),
144
147
  catch: (e) => e
145
- }).pipe(u.orDie), b = async (t) => e(y(a(t.find((e) => !e.startsWith("-")) ?? process.cwd())), { scope: "voltro:e2e" });
148
+ }).pipe(u.orDie), b = async (t) => {
149
+ let n = a(t.find((e) => !e.startsWith("-")) ?? process.cwd());
150
+ return e(y(n), { scope: "voltro:e2e" });
151
+ };
146
152
  //#endregion
147
153
  export { b as runE2eCommand };
@@ -1,4 +1,4 @@
1
- import { c as e, i as t } from "./dev-E7Eo5GHc.js";
1
+ import { c as e, i as t } from "./dev-3mgc8c-H.js";
2
2
  import { Effect as n } from "effect";
3
3
  import { embedMany as r } from "@voltro/ai";
4
4
  //#region src/embeddingsBackfill.ts
@@ -58,16 +58,16 @@ var i = (e, t) => e.filter((e) => {
58
58
  }, c = async (i) => {
59
59
  let a = s(i);
60
60
  if ("error" in a) return console.error(a.error), 1;
61
- let c = await t(await e(process.cwd()), void 0), l = {
62
- all: (e) => c.query({ table: e }).then((e) => e.map((e) => ({
61
+ let c = process.cwd(), l = await e(c), u = await t(l, void 0), d = {
62
+ all: (e) => u.query({ table: e }).then((e) => e.map((e) => ({
63
63
  ...e,
64
64
  id: String(e.id)
65
65
  }))),
66
66
  update: async (e, t, n) => {
67
- await c.update(e, t, n);
67
+ await u.update(e, t, n);
68
68
  }
69
- }, u = (e) => n.runPromise(r(e)), { sub: d, ...f } = a, p = await o(l, u, f);
70
- return console.log(`embeddings backfill — table=${p.table} scanned=${p.scanned} embedded=${p.embedded}${p.dryRun ? " (dry-run)" : ""}`), 0;
69
+ }, f = (e) => n.runPromise(r(e)), { sub: p, ...m } = a, h = await o(d, f, m);
70
+ return console.log(`embeddings backfill — table=${h.table} scanned=${h.scanned} embedded=${h.embedded}${h.dryRun ? " (dry-run)" : ""}`), 0;
71
71
  };
72
72
  //#endregion
73
73
  export { c as runEmbeddingsCommand };
@@ -1,5 +1,5 @@
1
- import { c as e } from "./dev-E7Eo5GHc.js";
2
- import { at as t, ct as n, it as r, st as i } from "./webDev-BKdD7c_a.js";
1
+ import { c as e } from "./dev-3mgc8c-H.js";
2
+ import { at as t, ct as n, lt as r, ot as i } from "./webDev-CTpSY-e_.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";
@@ -19,29 +19,29 @@ var u = s({ scope: "voltro:env" }), d = "# Environment for this app", f = async
19
19
  }, p = (e, t) => e.length >= t ? e : e + " ".repeat(t - e.length), m = (e) => {
20
20
  process.stdout.write(`${e}\n`);
21
21
  }, h = async (e) => {
22
- let t = await f(e);
23
- if (!t) return u.error("no app.config.ts found in the current directory"), 1;
24
- let n = r(t.name, t.input), i = `${p("KEY", 32)} ${p("OWNER", 16)} ${p("ACCESS", 8)} ${p("REQ", 4)} SET`;
25
- u.info(`env manifest — ${n.app} (${n.summary.total} vars, ${n.summary.set} set)`), m(i);
26
- for (let e of n.entries) {
22
+ let n = await f(e);
23
+ if (!n) return u.error("no app.config.ts found in the current directory"), 1;
24
+ let r = t(n.name, n.input), i = `${p("KEY", 32)} ${p("OWNER", 16)} ${p("ACCESS", 8)} ${p("REQ", 4)} SET`;
25
+ u.info(`env manifest — ${r.app} (${r.summary.total} vars, ${r.summary.set} set)`), m(i);
26
+ for (let e of r.entries) {
27
27
  let t = e.isSet ? "✓" : e.satisfied ? "·" : "✗";
28
28
  m(`${p(e.key, 32)} ${p(e.owner, 16)} ${p(e.access, 8)} ${p(e.required ? "yes" : "", 4)} ${t}`);
29
29
  }
30
- return n.summary.missingRequired > 0 ? (u.error(`${n.summary.missingRequired} required var(s) are unset`), 1) : 0;
31
- }, g = async (e, n) => {
32
- let r = await f(e);
33
- if (!r) return u.error("no app.config.ts found in the current directory"), 1;
34
- let i = t(r.input, ["Environment for this app — generated from app.config.ts `env` + plugin declarations.", "Regenerate with `voltro env sync`. Copy to `.env` and fill in the blanks."]), s = a(e, ".env.example"), c = await o.readFile(s, "utf8").catch(() => null);
35
- if (c !== null && !c.startsWith(d) && !n) {
30
+ return r.summary.missingRequired > 0 ? (u.error(`${r.summary.missingRequired} required var(s) are unset`), 1) : 0;
31
+ }, g = async (e, t) => {
32
+ let n = await f(e);
33
+ if (!n) return u.error("no app.config.ts found in the current directory"), 1;
34
+ let r = i(n.input, ["Environment for this app — generated from app.config.ts `env` + plugin declarations.", "Regenerate with `voltro env sync`. Copy to `.env` and fill in the blanks."]), s = a(e, ".env.example"), c = await o.readFile(s, "utf8").catch(() => null);
35
+ if (c !== null && !c.startsWith(d) && !t) {
36
36
  let t = a(e, ".env.example.generated");
37
- return await o.writeFile(t, i, "utf8"), u.warn(".env.example exists and is not framework-generated — wrote .env.example.generated instead", { hint: "merge it by hand, or pass --force to overwrite .env.example" }), 0;
37
+ return await o.writeFile(t, r, "utf8"), u.warn(".env.example exists and is not framework-generated — wrote .env.example.generated instead", { hint: "merge it by hand, or pass --force to overwrite .env.example" }), 0;
38
38
  }
39
- return await o.writeFile(s, i, "utf8"), u.info("wrote .env.example", { app: r.name }), 0;
39
+ return await o.writeFile(s, r, "utf8"), u.info("wrote .env.example", { app: n.name }), 0;
40
40
  }, _ = async (t) => {
41
- let r = await e(t).catch(() => null);
42
- if (!r) return u.error("no app.config.ts found in the current directory"), 1;
43
- let a = l(r.env) ? r.env : void 0;
44
- return a ? (r.type === "web" ? (await i(t, a), u.info("wrote src/voltro-env.d.ts (publicEnv augmentation)", { app: r.name ?? "app" })) : (await n(t, a), u.info("wrote env.generated.d.ts (serverEnv augmentation)", { app: r.name ?? "app" })), 0) : (u.warn("no `defineEnv` declared in app.config.ts — nothing to generate", { hint: "add `env: defineEnv({ ... })` to app.config.ts (see @voltro/env)" }), 0);
41
+ let i = await e(t).catch(() => null);
42
+ if (!i) return u.error("no app.config.ts found in the current directory"), 1;
43
+ let a = l(i.env) ? i.env : void 0;
44
+ return a ? (i.type === "web" ? (await n(t, a), u.info("wrote src/voltro-env.d.ts (publicEnv augmentation)", { app: i.name ?? "app" })) : (await r(t, a), u.info("wrote env.generated.d.ts (serverEnv augmentation)", { app: i.name ?? "app" })), 0) : (u.warn("no `defineEnv` declared in app.config.ts — nothing to generate", { hint: "add `env: defineEnv({ ... })` to app.config.ts (see @voltro/env)" }), 0);
45
45
  }, v = () => {
46
46
  let e = c();
47
47
  return u.info(`${e.length} framework env vars for turbo.json globalPassThroughEnv:`), m(JSON.stringify([...e].sort(), null, 2)), u.info("merge these into the workspace turbo.json `globalPassThroughEnv` array (+ your own app vars)."), 0;
@@ -1,6 +1,6 @@
1
1
  import { n as e } from "./cliOutput-D1tSBoRM.js";
2
- import { t } from "./checkCommand-Pjk5sBl2.js";
3
- import { i as n, n as r } from "./codemodRunner-CXgQ-ecJ.js";
2
+ import { t } from "./checkCommand-Bf6oMao4.js";
3
+ import { i as n, n as r } from "./codemodRunner-D-jTyvWo.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";
@@ -148,12 +148,10 @@ var f = (e) => e === void 0 ? [] : typeof e == "string" ? [e] : e, p = (e, t, n)
148
148
  safety: "manual"
149
149
  });
150
150
  break;
151
- case "drop-column":
152
- a.push({
153
- detail: `no backfill — verify the blast radius first, then drop '${e.column}'`,
154
- safety: "safe"
155
- });
156
- break;
151
+ case "drop-column": a.push({
152
+ detail: `no backfill — verify the blast radius first, then drop '${e.column}'`,
153
+ safety: "safe"
154
+ });
157
155
  }
158
156
  return {
159
157
  steps: a,
@@ -0,0 +1,2 @@
1
+ import { c as e, n as t } from "./frameworkTableAssembly-oMPBKqlE.js";
2
+ export { t as assembleFrameworkTables, e as loadAppSchemaInputs };
@@ -5,7 +5,7 @@ import { createLogger as i } from "@voltro/logger";
5
5
  import { Effect as a, Schema as o } from "effect";
6
6
  import { generateObject as s } from "@voltro/ai";
7
7
  //#region src/appBuilder.ts
8
- var c = 3, l = 50, u = 256 * 1024, d = (e) => e.reduce((e, t) => e + Buffer.byteLength(t.content, "utf8"), 0), f = async (t, n) => {
8
+ var c = 3, l = 50, u = 262144, d = (e) => e.reduce((e, t) => e + Buffer.byteLength(t.content, "utf8"), 0), f = async (t, n) => {
9
9
  let r = Math.max(1, n.maxAttempts ?? c), i = n.maxArtifacts ?? l, a = n.maxTotalBytes ?? u, o = [];
10
10
  for (let s = 1; s <= r; s++) {
11
11
  let r = await n.generate({
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-DaZVi9wi.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-D6aW_6AR.js";
2
2
  import { r as o } from "./templates-BR-fb4SP.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-CmksX7m_.js";
2
+ import { o as r } from "./updateCommand-CHBmCB17.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
@@ -49,12 +49,12 @@ var l = () => {
49
49
  }, f = async (r) => {
50
50
  let i = t(r);
51
51
  i && n();
52
- let o = a(r.find((e) => !e.startsWith("-")) ?? process.cwd()), s = d(o);
53
- if (i) return e(s), +(s.versionSkew.length > 0);
54
- if (console.log(`voltro v${s.cliVersion}`), console.log(` node ${s.node} (${s.platform})`), console.log(` package manager ${s.packageManager}`), console.log(` dialect ${s.dialect}${s.dbUrlConfigured ? "" : " (DB_URL not set)"}`), s.voltroPackages.length === 0) return console.log(`\n No @voltro packages found under ${o}/node_modules — run from an app root with deps installed.`), 0;
55
- console.log(`\n @voltro packages (${s.voltroPackages.length}):`);
56
- for (let e of s.voltroPackages) console.log(` ${e.name.padEnd(28)} ${e.version}`);
57
- return s.versionSkew.length > 0 ? (console.log(""), console.log(` ⚠ version skew — @voltro/* are released in lockstep but ${s.versionSkew.length} versions are installed:`), console.log(` ${s.versionSkew.join(", ")}`), console.log(" Run `voltro update` to realign every @voltro/* package."), 1) : 0;
52
+ let o = r.find((e) => !e.startsWith("-")), s = a(o ?? process.cwd()), c = d(s);
53
+ if (i) return e(c), +(c.versionSkew.length > 0);
54
+ if (console.log(`voltro v${c.cliVersion}`), console.log(` node ${c.node} (${c.platform})`), console.log(` package manager ${c.packageManager}`), console.log(` dialect ${c.dialect}${c.dbUrlConfigured ? "" : " (DB_URL not set)"}`), c.voltroPackages.length === 0) return console.log(`\n No @voltro packages found under ${s}/node_modules — run from an app root with deps installed.`), 0;
55
+ console.log(`\n @voltro packages (${c.voltroPackages.length}):`);
56
+ for (let e of c.voltroPackages) console.log(` ${e.name.padEnd(28)} ${e.version}`);
57
+ return c.versionSkew.length > 0 ? (console.log(""), console.log(` ⚠ version skew — @voltro/* are released in lockstep but ${c.versionSkew.length} versions are installed:`), console.log(` ${c.versionSkew.join(", ")}`), console.log(" Run `voltro update` to realign every @voltro/* package."), 1) : 0;
58
58
  };
59
59
  //#endregion
60
60
  export { f as runInfoCommand };