base44 0.0.22 → 0.0.24

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/README.md CHANGED
@@ -57,30 +57,11 @@ The CLI will guide you through project setup. For step-by-step tutorials, see th
57
57
 
58
58
  <!--| [`eject`](https://docs.base44.com/developers/references/cli/commands/eject) | Create a Base44 backend project from an existing Base44 app | -->
59
59
 
60
- ## AI Agent Skills
60
+ ## AI agent skills
61
61
 
62
- When creating a project, you'll be prompted to install AI agent skills for your preferred coding assistants:
62
+ When creating a project, [base44/skills](https://github.com/base44/skills) are automatically installed. These help AI agents understand how to work with Base44 projects.
63
63
 
64
- ```
65
- ◆ Add AI agent skills? (Select agents to configure)
66
- │ ◼ Cursor
67
- │ ◼ Claude Code
68
-
69
- ```
70
-
71
- This installs [base44/skills](https://github.com/base44/skills) which helps AI agents understand how to work with Base44 projects.
72
-
73
- **Non-interactive mode:**
74
-
75
- ```bash
76
- # Install skills for all supported agents
77
- base44 create --name my-app --path ./my-app --skills
78
-
79
- # Skip skills installation
80
- base44 create --name my-app --path ./my-app
81
- ```
82
-
83
- **Manual installation:**
64
+ If you need to install skills manually, use the following command:
84
65
 
85
66
  ```bash
86
67
  npx add-skill base44/skills
package/bin/dev.js CHANGED
@@ -1,4 +1,11 @@
1
1
  #!/usr/bin/env tsx
2
+
3
+ // Disable Clack spinners and animations in non-interactive environments.
4
+ // Clack only checks the CI env var, so we set it when stdin/stdout aren't TTYs.
5
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
6
+ process.env.CI = 'true';
7
+ }
8
+
2
9
  import { program, CLIExitError } from "../src/cli/index.ts";
3
10
 
4
11
  try {
package/bin/run.js CHANGED
@@ -1,4 +1,11 @@
1
1
  #!/usr/bin/env node
2
+
3
+ // Disable Clack spinners and animations in non-interactive environments.
4
+ // Clack only checks the CI env var, so we set it when stdin/stdout aren't TTYs.
5
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
6
+ process.env.CI = 'true';
7
+ }
8
+
2
9
  import { program, CLIExitError } from "../dist/index.js";
3
10
 
4
11
  try {
package/dist/index.js CHANGED
@@ -31410,6 +31410,7 @@ async function runCommand(commandFn, options) {
31410
31410
  const { outroMessage } = await commandFn();
31411
31411
  Se(outroMessage || "");
31412
31412
  } catch (e$1) {
31413
+ if (e$1 instanceof CLIExitError) throw e$1;
31413
31414
  if (e$1 instanceof Error) M.error(e$1.stack ?? e$1.message);
31414
31415
  else M.error(String(e$1));
31415
31416
  throw new CLIExitError(1);
@@ -31474,11 +31475,11 @@ async function runTask(startMessage, operation, options) {
31474
31475
  //#region src/cli/utils/prompts.ts
31475
31476
  /**
31476
31477
  * Standard onCancel handler for prompt groups.
31477
- * Exits the process gracefully when the user cancels.
31478
+ g * Throws CLIExitError(0) for graceful exit when the user cancels.
31478
31479
  */
31479
31480
  const onPromptCancel = () => {
31480
31481
  xe("Operation cancelled.");
31481
- process.exit(0);
31482
+ throw new CLIExitError(0);
31482
31483
  };
31483
31484
 
31484
31485
  //#endregion
@@ -38373,7 +38374,7 @@ async function createInteractive(options) {
38373
38374
  }));
38374
38375
  const result = await Ce({
38375
38376
  template: () => ve({
38376
- message: "Pick a template",
38377
+ message: "Pick an option",
38377
38378
  options: templateOptions
38378
38379
  }),
38379
38380
  name: () => {
@@ -38474,7 +38475,7 @@ async function executeCreate({ template, name: rawName, description, projectPath
38474
38475
  finalAppUrl = appUrl;
38475
38476
  }
38476
38477
  }
38477
- if (skills ?? true) try {
38478
+ if (skills) try {
38478
38479
  await runTask("Installing AI agent skills...", async () => {
38479
38480
  await execa("npx", [
38480
38481
  "-y",
@@ -38495,7 +38496,7 @@ async function executeCreate({ template, name: rawName, description, projectPath
38495
38496
  if (finalAppUrl) M.message(`${theme.styles.header("Site")}: ${theme.colors.links(finalAppUrl)}`);
38496
38497
  return { outroMessage: "Your project is set up and ready to use" };
38497
38498
  }
38498
- const createCommand = new Command("create").description("Create a new Base44 project").addArgument(new Argument("name", "Project name").argOptional()).option("-p, --path <path>", "Path where to create the project").option("-t, --template <id>", "Template ID (e.g., backend-only, backend-and-client)").option("--deploy", "Build and deploy the site").option("--skills", "Add AI agent skills").hook("preAction", validateNonInteractiveFlags$1).action(async (name$1, options) => {
38499
+ const createCommand = new Command("create").description("Create a new Base44 project").addArgument(new Argument("name", "Project name").argOptional()).option("-p, --path <path>", "Path where to create the project").option("-t, --template <id>", "Template ID (e.g., backend-only, backend-and-client)").option("--deploy", "Build and deploy the site").option("--no-skills", "Skip AI agent skills installation").hook("preAction", validateNonInteractiveFlags$1).action(async (name$1, options) => {
38499
38500
  await chooseCreate({
38500
38501
  name: name$1,
38501
38502
  ...options
@@ -39105,7 +39106,7 @@ async function promptForLinkAction() {
39105
39106
  });
39106
39107
  if (pD(action)) {
39107
39108
  xe("Operation cancelled.");
39108
- process.exit(0);
39109
+ throw new CLIExitError(0);
39109
39110
  }
39110
39111
  return action;
39111
39112
  }
@@ -39140,7 +39141,7 @@ async function promptForExistingProject(linkableProjects) {
39140
39141
  });
39141
39142
  if (pD(selectedProject)) {
39142
39143
  xe("Operation cancelled.");
39143
- process.exit(0);
39144
+ throw new CLIExitError(0);
39144
39145
  }
39145
39146
  return selectedProject;
39146
39147
  }
@@ -39224,7 +39225,7 @@ const siteDeployCommand = new Command("site").description("Manage site deploymen
39224
39225
 
39225
39226
  //#endregion
39226
39227
  //#region package.json
39227
- var version = "0.0.22";
39228
+ var version = "0.0.24";
39228
39229
 
39229
39230
  //#endregion
39230
39231
  //#region src/cli/program.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "base44",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "description": "Base44 CLI - Unified interface for managing Base44 applications",
5
5
  "type": "module",
6
6
  "bin": {