@revealui/cli 0.6.3 → 0.6.4

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.
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/cli.ts
4
+ import { createRequire } from "module";
4
5
  import { createLogger as createLogger14 } from "@revealui/setup/utils";
5
6
  import { Command } from "commander";
6
7
 
@@ -15,9 +16,7 @@ async function runAgentStatusCommand() {
15
16
  logger.info(`Project root: ${projectRoot}`);
16
17
  logger.info(`Available: ${available ? "yes" : "no"}`);
17
18
  if (!available) {
18
- logger.warn(
19
- "No LLM provider detected. Start BitNet, Ollama, or install an Ubuntu inference snap."
20
- );
19
+ logger.warn("No LLM provider detected. Install an Ubuntu inference snap or start Ollama.");
21
20
  }
22
21
  }
23
22
  async function runAgentHeadlessCommand(prompt) {
@@ -181,13 +180,13 @@ async function loadProDeps() {
181
180
  }
182
181
  async function detectProvider() {
183
182
  const projectRoot = process.cwd();
184
- if (process.env.BITNET_BASE_URL) {
183
+ if (process.env.INFERENCE_SNAPS_BASE_URL) {
185
184
  try {
186
- const res = await fetch(`${process.env.BITNET_BASE_URL}/v1/models`, {
185
+ const res = await fetch(`${process.env.INFERENCE_SNAPS_BASE_URL}/v1/models`, {
187
186
  signal: AbortSignal.timeout(2e3)
188
187
  });
189
188
  if (res.ok) {
190
- return { available: true, provider: "bitnet", model: "bitnet-b1.58-2B-4T", projectRoot };
189
+ return { available: true, provider: "inference-snaps", model: "gemma3", projectRoot };
191
190
  }
192
191
  } catch {
193
192
  }
@@ -198,7 +197,7 @@ async function detectProvider() {
198
197
  signal: AbortSignal.timeout(2e3)
199
198
  });
200
199
  if (res.ok) {
201
- return { available: true, provider: "ollama", model: "llama3.2:3b", projectRoot };
200
+ return { available: true, provider: "ollama", model: "gemma4:e2b", projectRoot };
202
201
  }
203
202
  } catch {
204
203
  }
@@ -360,7 +359,7 @@ async function runAuthStatusCommand(options) {
360
359
  if (npmUser) {
361
360
  logger2.success(`Authenticated as: ${npmUser}`);
362
361
  } else {
363
- logger2.error("Not authenticated \u2014 npm whoami failed");
362
+ logger2.error("Not authenticated - npm whoami failed");
364
363
  }
365
364
  write("\n");
366
365
  logger2.info(
@@ -376,7 +375,7 @@ async function runAuthStatusCommand(options) {
376
375
  logger2.info(`Project .npmrc uses NPM_TOKEN: ${projectUsesEnvVar ? "yes" : "no"}`);
377
376
  if (!projectUsesEnvVar && paths.project) {
378
377
  logger2.warn(
379
- "Project .npmrc does not reference NPM_TOKEN \u2014 direnv/RevVault tokens won't be used for publishing"
378
+ "Project .npmrc does not reference NPM_TOKEN - direnv/RevVault tokens won't be used for publishing"
380
379
  );
381
380
  }
382
381
  if (!vaultValue && hasVault && effectiveToken) {
@@ -391,12 +390,12 @@ async function runAuthSetTokenCommand(options) {
391
390
  logger2.info("Create a Granular Access Token at: https://www.npmjs.com/settings/<user>/tokens");
392
391
  logger2.info(" Type: Granular Access Token");
393
392
  logger2.info(" Packages: All packages (read and write)");
394
- logger2.info(" This bypasses 2FA \u2014 no OTP needed for publish");
393
+ logger2.info(" This bypasses 2FA - no OTP needed for publish");
395
394
  process.exitCode = 1;
396
395
  return;
397
396
  }
398
397
  if (!token.startsWith("npm_")) {
399
- logger2.warn('Token does not start with "npm_" \u2014 this may not be a valid npm token');
398
+ logger2.warn('Token does not start with "npm_" - this may not be a valid npm token');
400
399
  }
401
400
  if (!options.skipVault) {
402
401
  const hasVault = await hasRevvault();
@@ -408,7 +407,7 @@ async function runAuthSetTokenCommand(options) {
408
407
  logger2.error("Failed to store in RevVault");
409
408
  }
410
409
  } else {
411
- logger2.warn("RevVault not installed \u2014 skipping vault storage");
410
+ logger2.warn("RevVault not installed - skipping vault storage");
412
411
  }
413
412
  }
414
413
  if (!options.skipNpmrc) {
@@ -448,7 +447,7 @@ ${NPMRC_AUTH_LINE}
448
447
  const { stdout } = await execa2("npm", ["whoami"], { stdio: "pipe" });
449
448
  logger2.success(`Authenticated as: ${stdout.trim()}`);
450
449
  } catch {
451
- logger2.error("npm whoami failed \u2014 token may be invalid or expired");
450
+ logger2.error("npm whoami failed - token may be invalid or expired");
452
451
  process.exitCode = 1;
453
452
  return;
454
453
  }
@@ -475,7 +474,7 @@ async function runAuthVerifyCommand(options) {
475
474
  checks.push({
476
475
  name: "Token source",
477
476
  pass: !!envToken,
478
- detail: source + (npmrcToken && !envToken ? " \u2014 consider migrating to RevVault" : "")
477
+ detail: source + (npmrcToken && !envToken ? " - consider migrating to RevVault" : "")
479
478
  });
480
479
  const hasVault = await hasRevvault();
481
480
  if (hasVault) {
@@ -492,7 +491,7 @@ async function runAuthVerifyCommand(options) {
492
491
  checks.push({
493
492
  name: ".npmrc NPM_TOKEN",
494
493
  pass: usesEnvVar,
495
- detail: usesEnvVar ? "Project .npmrc uses env var" : "Missing \u2014 direnv token won't reach npm"
494
+ detail: usesEnvVar ? "Project .npmrc uses env var" : "Missing - direnv token won't reach npm"
496
495
  });
497
496
  }
498
497
  const envrcPath = path.join(process.cwd(), ".envrc");
@@ -500,7 +499,7 @@ async function runAuthVerifyCommand(options) {
500
499
  checks.push({
501
500
  name: ".envrc loads npm",
502
501
  pass: loadsNpm,
503
- detail: loadsNpm ? "revealui/env/npm in .envrc" : "Missing \u2014 direnv won't export NPM_TOKEN"
502
+ detail: loadsNpm ? "revealui/env/npm in .envrc" : "Missing - direnv won't export NPM_TOKEN"
504
503
  });
505
504
  const hardcodedToken = await getTokenFromNpmrc();
506
505
  checks.push({
@@ -524,7 +523,7 @@ async function runAuthVerifyCommand(options) {
524
523
  const allPass = checks.every((c) => c.pass);
525
524
  write("\n");
526
525
  if (allPass) {
527
- logger2.success("All checks passed \u2014 ready to publish");
526
+ logger2.success("All checks passed - ready to publish");
528
527
  } else {
529
528
  logger2.warn("Some checks failed. Run `revealui auth set-token` to fix.");
530
529
  process.exitCode = 1;
@@ -944,7 +943,7 @@ async function generateDevContainer(projectPath) {
944
943
  onAutoForward: "notify"
945
944
  },
946
945
  "4000": {
947
- label: "CMS",
946
+ label: "Admin",
948
947
  onAutoForward: "notify"
949
948
  },
950
949
  "5432": {
@@ -1053,7 +1052,7 @@ For GitHub Codespaces, set secrets in your repository settings.
1053
1052
  ## Ports
1054
1053
 
1055
1054
  - 3000: Web application
1056
- - 4000: CMS
1055
+ - 4000: Admin
1057
1056
  - 5432: PostgreSQL database
1058
1057
  `;
1059
1058
  await fs4.writeFile(path4.join(devcontainerDir, "README.md"), readme, "utf-8");
@@ -1203,7 +1202,7 @@ var __dirname2 = path6.dirname(__filename2);
1203
1202
  var TEMPLATES_DIR = existsSync(path6.resolve(__dirname2, "../../templates")) ? path6.resolve(__dirname2, "../../templates") : path6.resolve(__dirname2, "../templates");
1204
1203
  function buildEnvLocal(cfg) {
1205
1204
  const lines = [
1206
- "# Generated by @revealui/cli \u2014 fill in the remaining placeholders before running `pnpm dev`",
1205
+ "# Generated by @revealui/cli - fill in the remaining placeholders before running `pnpm dev`",
1207
1206
  "",
1208
1207
  "# Core",
1209
1208
  `REVEALUI_SECRET=${generateSecret()}`,
@@ -1303,7 +1302,7 @@ async function pullContentRules(projectPath) {
1303
1302
  signal: AbortSignal.timeout(1e4)
1304
1303
  });
1305
1304
  if (!manifestRes.ok) {
1306
- spinner.info("AI rules not available \u2014 skipping");
1305
+ spinner.info("AI rules not available - skipping");
1307
1306
  return;
1308
1307
  }
1309
1308
  const manifest = await manifestRes.json();
@@ -1342,7 +1341,7 @@ async function pullContentRules(projectPath) {
1342
1341
  spinner.info("No AI rules pulled");
1343
1342
  }
1344
1343
  } catch {
1345
- spinner.info("AI rules not available \u2014 skipping");
1344
+ spinner.info("AI rules not available - skipping");
1346
1345
  }
1347
1346
  }
1348
1347
  async function createProject(cfg) {
@@ -1385,7 +1384,7 @@ async function createProject(cfg) {
1385
1384
  const pnpmOk = await isPnpmInstalled();
1386
1385
  if (!pnpmOk) {
1387
1386
  logger7.warn(
1388
- "pnpm not found \u2014 skipping dependency installation. Run `pnpm install` manually."
1387
+ "pnpm not found - skipping dependency installation. Run `pnpm install` manually."
1389
1388
  );
1390
1389
  } else {
1391
1390
  await installDependencies(projectPath);
@@ -1396,7 +1395,7 @@ async function createProject(cfg) {
1396
1395
  if (!skipGit) {
1397
1396
  const gitOk = await isGitInstalled();
1398
1397
  if (!gitOk) {
1399
- logger7.warn("git not found \u2014 skipping repository initialisation.");
1398
+ logger7.warn("git not found - skipping repository initialisation.");
1400
1399
  } else {
1401
1400
  await initializeGitRepo(projectPath);
1402
1401
  await createInitialCommit(projectPath);
@@ -1446,7 +1445,7 @@ async function checkProLicense() {
1446
1445
  }
1447
1446
  function printBanner() {
1448
1447
  logger8.divider();
1449
- logger8.info(" RevealUI \u2014 Agentic Business Runtime");
1448
+ logger8.info(" RevealUI - Agentic Business Runtime");
1450
1449
  logger8.info(" Build your business, not your boilerplate.");
1451
1450
  logger8.divider();
1452
1451
  logger8.info("");
@@ -1466,9 +1465,9 @@ function printPostCreateSummary(projectName) {
1466
1465
  logger8.info(` ./${projectName}/README.md \u2014 getting started guide`);
1467
1466
  logger8.info("");
1468
1467
  logger8.info(" RevealUI ecosystem:");
1469
- logger8.info(" Studio: Native AI experience \u2014 agent hub, local inference, dev environment");
1470
- logger8.info(" Terminal: TUI client \u2014 run `revealui terminal install`");
1471
- logger8.info(" CMS: Admin dashboard at your-domain.com/admin");
1468
+ logger8.info(" Studio: Native AI experience - agent hub, local inference, dev environment");
1469
+ logger8.info(" Terminal: TUI client - run `revealui terminal install`");
1470
+ logger8.info(" admin: Admin dashboard at your-domain.com/admin");
1472
1471
  logger8.info("");
1473
1472
  logger8.info(" Helpful links:");
1474
1473
  logger8.info(" Docs: https://docs.revealui.com");
@@ -1498,9 +1497,9 @@ function formatCreateError(err) {
1498
1497
  }
1499
1498
  logger8.info("");
1500
1499
  logger8.info(" Troubleshooting:");
1501
- logger8.info(" revealui doctor \u2014 diagnose your environment");
1500
+ logger8.info(" revealui doctor - diagnose your environment");
1502
1501
  logger8.info(" https://docs.revealui.com/docs/TROUBLESHOOTING");
1503
- logger8.info(" support@revealui.com \u2014 we are here to help");
1502
+ logger8.info(" support@revealui.com - we are here to help");
1504
1503
  logger8.divider();
1505
1504
  }
1506
1505
  async function runCreateFlow(projectName, options) {
@@ -1748,7 +1747,11 @@ async function runDbStatusCommand() {
1748
1747
  const root = getWorkspaceRootOrThrow();
1749
1748
  const env = buildDbEnv(root);
1750
1749
  const pgdata = getPgDataOrThrow(env);
1751
- await requireCommand("pg_ctl");
1750
+ if (!await commandExists("pg_ctl")) {
1751
+ logger9.warn("pg_ctl is not available in PATH. Install PostgreSQL or enter the Nix devshell.");
1752
+ logger9.info("Run `revealui doctor` for a full environment check.");
1753
+ return;
1754
+ }
1752
1755
  try {
1753
1756
  await execa5("pg_ctl", ["status", "-D", pgdata], {
1754
1757
  env,
@@ -1880,16 +1883,6 @@ var ENV_VAR_SPECS = [
1880
1883
  message: "Must be a JWT (starts with eyJ)"
1881
1884
  })
1882
1885
  },
1883
- // Services
1884
- {
1885
- key: "RESEND_API_KEY",
1886
- label: "Resend API key",
1887
- required: false,
1888
- validate: (v) => ({
1889
- valid: v.startsWith("re_"),
1890
- message: "Must start with re_"
1891
- })
1892
- },
1893
1886
  // npm
1894
1887
  {
1895
1888
  key: "NPM_TOKEN",
@@ -1911,8 +1904,8 @@ var ENV_VAR_SPECS = [
1911
1904
  },
1912
1905
  // AI (open-model inference)
1913
1906
  {
1914
- key: "BITNET_BASE_URL",
1915
- label: "BitNet base URL",
1907
+ key: "INFERENCE_SNAPS_BASE_URL",
1908
+ label: "Inference snaps base URL",
1916
1909
  required: false
1917
1910
  },
1918
1911
  {
@@ -2206,8 +2199,8 @@ var DEV_PROFILES = {
2206
2199
  agent: {
2207
2200
  include: ["mcp"]
2208
2201
  },
2209
- cms: {
2210
- script: "dev:cms"
2202
+ admin: {
2203
+ script: "dev:admin"
2211
2204
  },
2212
2205
  fullstack: {
2213
2206
  include: ["mcp"],
@@ -2634,18 +2627,20 @@ async function runTerminalListCommand(options) {
2634
2627
  }
2635
2628
 
2636
2629
  // src/cli.ts
2630
+ var cliRequire = createRequire(import.meta.url);
2631
+ var CLI_VERSION = cliRequire("../package.json").version;
2637
2632
  var logger14 = createLogger14({ prefix: "CLI" });
2638
- function configureCreateCommand(command, legacyName) {
2633
+ function configureCreateCommand(command) {
2639
2634
  command.description("Create a new RevealUI project").argument("[project-name]", "Name of the project").option("-t, --template <name>", "Template to use (basic-blog, e-commerce, portfolio)").option("--skip-git", "Skip git initialization", false).option("--skip-install", "Skip dependency installation", false).option("-y, --yes", "Skip all prompts and use defaults", false).action(async (projectName, options) => {
2640
- logger14.header(legacyName ? "Create RevealUI Project" : "RevealUI Create");
2635
+ logger14.header("RevealUI Create");
2641
2636
  await runCreateFlow(projectName, options);
2642
2637
  });
2643
2638
  return command;
2644
2639
  }
2645
2640
  function createCli() {
2646
2641
  const program = new Command();
2647
- program.name("revealui").description("RevealUI operational CLI").version("0.2.0");
2648
- configureCreateCommand(program.command("create"), void 0);
2642
+ program.name("revealui").description("RevealUI operational CLI").version(CLI_VERSION);
2643
+ configureCreateCommand(program.command("create"));
2649
2644
  program.command("doctor").description("Check RevealUI workspace and developer environment health").option("--json", "Output machine-readable JSON", false).option("--fix", "Apply safe automatic fixes when possible", false).option("--strict", "Exit nonzero when checks fail", false).action(async (options) => {
2650
2645
  await runDoctorCommand(options);
2651
2646
  });
@@ -2690,7 +2685,7 @@ function createCli() {
2690
2685
  const dev = program.command("dev").description("Prepare and manage the RevealUI development workspace");
2691
2686
  dev.command("up").description(
2692
2687
  "Ensure the local dev environment is ready, migrate the DB, optionally validate MCP, and start a dev script"
2693
- ).option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent, cms, fullstack").option(
2688
+ ).option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent, admin, fullstack").option(
2694
2689
  "--include <service...>",
2695
2690
  "Additional development services to prepare (currently supports: mcp)"
2696
2691
  ).option("--script <name>", "Optional pnpm script to run after environment bootstrap").option("--inside", "Internal flag used after re-entering nix develop", false).action(
@@ -2698,7 +2693,7 @@ function createCli() {
2698
2693
  await runDevUpCommand(options);
2699
2694
  }
2700
2695
  );
2701
- dev.command("status").description("Show current RevealUI development environment status").option("--json", "Output machine-readable JSON", false).option("--profile <name>", "Named dev profile: local, agent, cms, fullstack").option(
2696
+ dev.command("status").description("Show current RevealUI development environment status").option("--json", "Output machine-readable JSON", false).option("--profile <name>", "Named dev profile: local, agent, admin, fullstack").option(
2702
2697
  "--include <service...>",
2703
2698
  "Additional development services to preview in the effective plan"
2704
2699
  ).option("--script <name>", "Optional pnpm script to preview in the effective plan").option("--inside", "Internal flag used after re-entering nix develop", false).action(
@@ -2709,7 +2704,7 @@ function createCli() {
2709
2704
  dev.command("down").description("Stop local RevealUI development services that are managed by the CLI").action(async () => {
2710
2705
  await runDevDownCommand();
2711
2706
  });
2712
- dev.command("shell").description("Alias for `revealui dev up` without starting an app script").option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent, cms, fullstack").option(
2707
+ dev.command("shell").description("Alias for `revealui dev up` without starting an app script").option("--json", "Output machine-readable JSON", false).option("--dry-run", "Print the effective plan and actions without executing them", false).option("--fix", "Apply safe automatic fixes before bootstrapping when possible", false).option("--no-ensure", "Skip automatic local DB initialization/start").option("--profile <name>", "Named dev profile: local, agent, admin, fullstack").option(
2713
2708
  "--include <service...>",
2714
2709
  "Additional development services to prepare (currently supports: mcp)"
2715
2710
  ).option("--inside", "Internal flag used after re-entering nix develop", false).action(
@@ -2726,7 +2721,7 @@ function createCli() {
2726
2721
  }
2727
2722
  );
2728
2723
  const devProfile = dev.command("profile").description("Persist or inspect the default dev profile");
2729
- devProfile.command("set").description("Set the default profile used by `revealui dev up` and `revealui dev status`").argument("<name>", "Profile name: local, agent, cms, fullstack").action(async (name) => {
2724
+ devProfile.command("set").description("Set the default profile used by `revealui dev up` and `revealui dev status`").argument("<name>", "Profile name: local, agent, admin, fullstack").action(async (name) => {
2730
2725
  await runDevProfileSetCommand(name);
2731
2726
  });
2732
2727
  devProfile.command("show").description("Show the configured default dev profile").option("--json", "Output machine-readable JSON", false).action(async (options) => {
@@ -2764,4 +2759,3 @@ if (import.meta.url === `file://${process.argv[1]}`) {
2764
2759
  const cli = createCli();
2765
2760
  cli.parse(process.argv);
2766
2761
  }
2767
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revealui/cli",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "Create RevealUI projects with a single command",
5
5
  "keywords": [
6
6
  "cli",
@@ -21,16 +21,16 @@
21
21
  "revealui": "./bin/revealui.js"
22
22
  },
23
23
  "dependencies": {
24
+ "@clack/prompts": "^1.2.0",
24
25
  "commander": "^14.0.3",
25
- "execa": "^9.0.0",
26
- "@clack/prompts": "^0.10.0",
27
- "jose": "^6.1.3",
26
+ "execa": "^9.6.1",
27
+ "jose": "^6.2.2",
28
28
  "ora": "^9.3.0",
29
- "@revealui/config": "0.3.3",
30
- "@revealui/setup": "0.3.4"
29
+ "@revealui/config": "0.3.4",
30
+ "@revealui/setup": "0.3.5"
31
31
  },
32
32
  "peerDependencies": {
33
- "@revealui/ai": "^0.2.8"
33
+ "@revealui/ai": "^0.2.9"
34
34
  },
35
35
  "peerDependenciesMeta": {
36
36
  "@revealui/ai": {
@@ -38,8 +38,8 @@
38
38
  }
39
39
  },
40
40
  "devDependencies": {
41
- "@types/node": "^25.5.0",
42
- "tsup": "^8.0.0",
41
+ "@types/node": "^25.5.2",
42
+ "tsup": "^8.5.1",
43
43
  "typescript": "^6.0.2"
44
44
  },
45
45
  "engines": {
@@ -61,6 +61,10 @@
61
61
  "registry": "https://registry.npmjs.org"
62
62
  },
63
63
  "type": "module",
64
+ "homepage": "https://revealui.com",
65
+ "bugs": {
66
+ "url": "https://github.com/RevealUIStudio/revealui/issues"
67
+ },
64
68
  "scripts": {
65
69
  "build": "tsup",
66
70
  "dev": "tsup --watch",
@@ -36,7 +36,7 @@ export default function HomePage() {
36
36
  <h2 className="text-sm font-semibold uppercase tracking-wide text-gray-500">Quick start</h2>
37
37
  <ol className="mt-3 space-y-2 text-sm text-gray-700">
38
38
  <li>
39
- <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> add
39
+ <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> - add
40
40
  sample blog posts
41
41
  </li>
42
42
  <li>
@@ -44,11 +44,11 @@ export default function HomePage() {
44
44
  <a href="/admin" className="text-accent hover:text-accent-hover">
45
45
  /admin
46
46
  </a>{' '}
47
- manage your content
47
+ - manage your content
48
48
  </li>
49
49
  <li>
50
50
  Edit <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">src/app/page.tsx</code>{' '}
51
- customize this page
51
+ - customize this page
52
52
  </li>
53
53
  </ol>
54
54
  </div>
@@ -61,7 +61,7 @@ export default function HomePage() {
61
61
  <h2 className="text-sm font-semibold uppercase tracking-wide text-gray-500">Quick start</h2>
62
62
  <ol className="mt-3 space-y-2 text-sm text-gray-700">
63
63
  <li>
64
- <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> add
64
+ <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> - add
65
65
  sample products
66
66
  </li>
67
67
  <li>
@@ -73,7 +73,7 @@ export default function HomePage() {
73
73
  <a href="/admin" className="text-accent hover:text-accent-hover">
74
74
  /admin
75
75
  </a>{' '}
76
- manage products and orders
76
+ - manage products and orders
77
77
  </li>
78
78
  </ol>
79
79
  </div>
@@ -17,7 +17,7 @@ export default function HomePage() {
17
17
  >
18
18
  RevealUI
19
19
  </a>{' '}
20
- edit your projects from the admin panel, no code changes needed.
20
+ - edit your projects from the admin panel, no code changes needed.
21
21
  </p>
22
22
 
23
23
  <div className="mt-8 flex gap-3">
@@ -43,7 +43,7 @@ export default function HomePage() {
43
43
  above with your name
44
44
  </li>
45
45
  <li>
46
- <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> add
46
+ <code className="rounded bg-gray-200 px-1.5 py-0.5 text-xs">pnpm db:seed</code> - add
47
47
  sample projects
48
48
  </li>
49
49
  <li>
@@ -51,7 +51,7 @@ export default function HomePage() {
51
51
  <a href="/admin" className="text-accent hover:text-accent-hover">
52
52
  /admin
53
53
  </a>{' '}
54
- add your own projects, links, and tags
54
+ - add your own projects, links, and tags
55
55
  </li>
56
56
  </ol>
57
57
  </div>
@@ -4,7 +4,7 @@
4
4
  * Run with: pnpm db:seed
5
5
  *
6
6
  * Customize this file to populate your database with initial data.
7
- * The examples below show common patternsuncomment and adapt as needed.
7
+ * The examples below show common patterns - uncomment and adapt as needed.
8
8
  */
9
9
 
10
10
  // import { getClient } from '@revealui/db/client';