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 +3 -22
- package/bin/dev.js +7 -0
- package/bin/run.js +7 -0
- package/dist/index.js +9 -8
- package/package.json +1 -1
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
|
|
60
|
+
## AI agent skills
|
|
61
61
|
|
|
62
|
-
When creating a project,
|
|
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
|
-
*
|
|
31478
|
+
g * Throws CLIExitError(0) for graceful exit when the user cancels.
|
|
31478
31479
|
*/
|
|
31479
31480
|
const onPromptCancel = () => {
|
|
31480
31481
|
xe("Operation cancelled.");
|
|
31481
|
-
|
|
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
|
|
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
|
|
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", "
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
39228
|
+
var version = "0.0.24";
|
|
39228
39229
|
|
|
39229
39230
|
//#endregion
|
|
39230
39231
|
//#region src/cli/program.ts
|