@base44-preview/cli 0.0.19-pr.112.3ef73f2 → 0.0.19-pr.112.6a4374a

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
@@ -3,14 +3,14 @@ import { EventEmitter, addAbortListener, on, once, setMaxListeners } from "node:
3
3
  import childProcess, { ChildProcess, execFile, spawn, spawnSync } from "node:child_process";
4
4
  import path, { basename, dirname, join, posix, resolve, win32 } from "node:path";
5
5
  import fs, { appendFileSync, createReadStream, createWriteStream, readFileSync, statSync, writeFileSync } from "node:fs";
6
- import process$1, { execArgv, execPath, hrtime, platform, stdin, stdout } from "node:process";
6
+ import y, { execArgv, execPath, hrtime, platform, stdin, stdout } from "node:process";
7
7
  import { aborted, callbackify, debuglog, inspect, promisify, stripVTControlCharacters } from "node:util";
8
8
  import * as g from "node:readline";
9
9
  import O from "node:readline";
10
10
  import Stream, { Duplex, PassThrough, Readable, Transform, Writable, getDefaultHighWaterMark } from "node:stream";
11
11
  import os, { constants, homedir, tmpdir } from "node:os";
12
12
  import { fileURLToPath } from "node:url";
13
- import fs$1, { access, constants as constants$1, copyFile, mkdir, readFile, unlink, writeFile } from "node:fs/promises";
13
+ import fs$1, { access, constants as constants$1, copyFile, mkdir, readFile, readdir, unlink, writeFile } from "node:fs/promises";
14
14
  import { finished } from "node:stream/promises";
15
15
  import path$1, { dirname as dirname$1, parse } from "path";
16
16
  import EE, { EventEmitter as EventEmitter$1 } from "events";
@@ -893,7 +893,7 @@ var require_command = /* @__PURE__ */ __commonJSMin(((exports) => {
893
893
  const childProcess$1 = __require("node:child_process");
894
894
  const path$15 = __require("node:path");
895
895
  const fs$10 = __require("node:fs");
896
- const process$4 = __require("node:process");
896
+ const process$3 = __require("node:process");
897
897
  const { Argument, humanReadableArgName } = require_argument();
898
898
  const { CommanderError } = require_error$1();
899
899
  const { Help } = require_help();
@@ -944,10 +944,10 @@ var require_command = /* @__PURE__ */ __commonJSMin(((exports) => {
944
944
  this._showHelpAfterError = false;
945
945
  this._showSuggestionAfterError = true;
946
946
  this._outputConfiguration = {
947
- writeOut: (str) => process$4.stdout.write(str),
948
- writeErr: (str) => process$4.stderr.write(str),
949
- getOutHelpWidth: () => process$4.stdout.isTTY ? process$4.stdout.columns : void 0,
950
- getErrHelpWidth: () => process$4.stderr.isTTY ? process$4.stderr.columns : void 0,
947
+ writeOut: (str) => process$3.stdout.write(str),
948
+ writeErr: (str) => process$3.stderr.write(str),
949
+ getOutHelpWidth: () => process$3.stdout.isTTY ? process$3.stdout.columns : void 0,
950
+ getErrHelpWidth: () => process$3.stderr.isTTY ? process$3.stderr.columns : void 0,
951
951
  outputError: (str, write) => write(str)
952
952
  };
953
953
  this._hidden = false;
@@ -1301,7 +1301,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1301
1301
  */
1302
1302
  _exit(exitCode, code$1, message) {
1303
1303
  if (this._exitCallback) this._exitCallback(new CommanderError(exitCode, code$1, message));
1304
- process$4.exit(exitCode);
1304
+ process$3.exit(exitCode);
1305
1305
  }
1306
1306
  /**
1307
1307
  * Register callback `fn` for the command.
@@ -1640,11 +1640,11 @@ Expecting one of '${allowedValues.join("', '")}'`);
1640
1640
  if (argv !== void 0 && !Array.isArray(argv)) throw new Error("first parameter to parse must be array or undefined");
1641
1641
  parseOptions = parseOptions || {};
1642
1642
  if (argv === void 0 && parseOptions.from === void 0) {
1643
- if (process$4.versions?.electron) parseOptions.from = "electron";
1644
- const execArgv$1 = process$4.execArgv ?? [];
1643
+ if (process$3.versions?.electron) parseOptions.from = "electron";
1644
+ const execArgv$1 = process$3.execArgv ?? [];
1645
1645
  if (execArgv$1.includes("-e") || execArgv$1.includes("--eval") || execArgv$1.includes("-p") || execArgv$1.includes("--print")) parseOptions.from = "eval";
1646
1646
  }
1647
- if (argv === void 0) argv = process$4.argv;
1647
+ if (argv === void 0) argv = process$3.argv;
1648
1648
  this.rawArgs = argv.slice();
1649
1649
  let userArgs;
1650
1650
  switch (parseOptions.from) {
@@ -1654,7 +1654,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1654
1654
  userArgs = argv.slice(2);
1655
1655
  break;
1656
1656
  case "electron":
1657
- if (process$4.defaultApp) {
1657
+ if (process$3.defaultApp) {
1658
1658
  this._scriptPath = argv[1];
1659
1659
  userArgs = argv.slice(2);
1660
1660
  } else userArgs = argv.slice(1);
@@ -1768,15 +1768,15 @@ Expecting one of '${allowedValues.join("', '")}'`);
1768
1768
  }
1769
1769
  launchWithNode = sourceExt.includes(path$15.extname(executableFile));
1770
1770
  let proc$1;
1771
- if (process$4.platform !== "win32") if (launchWithNode) {
1771
+ if (process$3.platform !== "win32") if (launchWithNode) {
1772
1772
  args.unshift(executableFile);
1773
- args = incrementNodeInspectorPort(process$4.execArgv).concat(args);
1774
- proc$1 = childProcess$1.spawn(process$4.argv[0], args, { stdio: "inherit" });
1773
+ args = incrementNodeInspectorPort(process$3.execArgv).concat(args);
1774
+ proc$1 = childProcess$1.spawn(process$3.argv[0], args, { stdio: "inherit" });
1775
1775
  } else proc$1 = childProcess$1.spawn(executableFile, args, { stdio: "inherit" });
1776
1776
  else {
1777
1777
  args.unshift(executableFile);
1778
- args = incrementNodeInspectorPort(process$4.execArgv).concat(args);
1779
- proc$1 = childProcess$1.spawn(process$4.execPath, args, { stdio: "inherit" });
1778
+ args = incrementNodeInspectorPort(process$3.execArgv).concat(args);
1779
+ proc$1 = childProcess$1.spawn(process$3.execPath, args, { stdio: "inherit" });
1780
1780
  }
1781
1781
  if (!proc$1.killed) [
1782
1782
  "SIGUSR1",
@@ -1785,14 +1785,14 @@ Expecting one of '${allowedValues.join("', '")}'`);
1785
1785
  "SIGINT",
1786
1786
  "SIGHUP"
1787
1787
  ].forEach((signal) => {
1788
- process$4.on(signal, () => {
1788
+ process$3.on(signal, () => {
1789
1789
  if (proc$1.killed === false && proc$1.exitCode === null) proc$1.kill(signal);
1790
1790
  });
1791
1791
  });
1792
1792
  const exitCallback = this._exitCallback;
1793
1793
  proc$1.on("close", (code$1) => {
1794
1794
  code$1 = code$1 ?? 1;
1795
- if (!exitCallback) process$4.exit(code$1);
1795
+ if (!exitCallback) process$3.exit(code$1);
1796
1796
  else exitCallback(new CommanderError(code$1, "commander.executeSubCommandAsync", "(close)"));
1797
1797
  });
1798
1798
  proc$1.on("error", (err) => {
@@ -1804,7 +1804,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
1804
1804
  - ${executableDirMessage}`;
1805
1805
  throw new Error(executableMissing);
1806
1806
  } else if (err.code === "EACCES") throw new Error(`'${executableFile}' not executable`);
1807
- if (!exitCallback) process$4.exit(1);
1807
+ if (!exitCallback) process$3.exit(1);
1808
1808
  else {
1809
1809
  const wrappedError = new CommanderError(1, "commander.executeSubCommandAsync", "(error)");
1810
1810
  wrappedError.nestedError = err;
@@ -2210,13 +2210,13 @@ Expecting one of '${allowedValues.join("', '")}'`);
2210
2210
  */
2211
2211
  _parseOptionsEnv() {
2212
2212
  this.options.forEach((option) => {
2213
- if (option.envVar && option.envVar in process$4.env) {
2213
+ if (option.envVar && option.envVar in process$3.env) {
2214
2214
  const optionKey = option.attributeName();
2215
2215
  if (this.getOptionValue(optionKey) === void 0 || [
2216
2216
  "default",
2217
2217
  "config",
2218
2218
  "env"
2219
- ].includes(this.getOptionValueSource(optionKey))) if (option.required || option.optional) this.emit(`optionEnv:${option.name()}`, process$4.env[option.envVar]);
2219
+ ].includes(this.getOptionValueSource(optionKey))) if (option.required || option.optional) this.emit(`optionEnv:${option.name()}`, process$3.env[option.envVar]);
2220
2220
  else this.emit(`optionEnv:${option.name()}`);
2221
2221
  }
2222
2222
  });
@@ -2595,7 +2595,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
2595
2595
  */
2596
2596
  help(contextOptions) {
2597
2597
  this.outputHelp(contextOptions);
2598
- let exitCode = process$4.exitCode || 0;
2598
+ let exitCode = process$3.exitCode || 0;
2599
2599
  if (exitCode === 0 && contextOptions && typeof contextOptions !== "function" && contextOptions.error) exitCode = 1;
2600
2600
  this._exit(exitCode, "commander.help", "(outputHelp)");
2601
2601
  }
@@ -2711,16 +2711,16 @@ var require_src = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2711
2711
  const CSI = `${ESC}[`;
2712
2712
  const beep = "\x07";
2713
2713
  const cursor = {
2714
- to(x$2, y$1) {
2715
- if (!y$1) return `${CSI}${x$2 + 1}G`;
2716
- return `${CSI}${y$1 + 1};${x$2 + 1}H`;
2714
+ to(x$2, y$2) {
2715
+ if (!y$2) return `${CSI}${x$2 + 1}G`;
2716
+ return `${CSI}${y$2 + 1};${x$2 + 1}H`;
2717
2717
  },
2718
- move(x$2, y$1) {
2718
+ move(x$2, y$2) {
2719
2719
  let ret = "";
2720
2720
  if (x$2 < 0) ret += `${CSI}${-x$2}D`;
2721
2721
  else if (x$2 > 0) ret += `${CSI}${x$2}C`;
2722
- if (y$1 < 0) ret += `${CSI}${-y$1}A`;
2723
- else if (y$1 > 0) ret += `${CSI}${y$1}B`;
2722
+ if (y$2 < 0) ret += `${CSI}${-y$2}A`;
2723
+ else if (y$2 > 0) ret += `${CSI}${y$2}B`;
2724
2724
  return ret;
2725
2725
  },
2726
2726
  up: (count$1 = 1) => `${CSI}${count$1}A`,
@@ -3030,13 +3030,13 @@ function rD() {
3030
3030
  }
3031
3031
  }), r;
3032
3032
  }
3033
- const ED = rD(), d$1 = new Set(["\x1B", "›"]), oD = 39, y = "\x07", V$1 = "[", nD = "]", G$1 = "m", _$1 = `${nD}8;;`, z = (e$1) => `${d$1.values().next().value}${V$1}${e$1}${G$1}`, K$1 = (e$1) => `${d$1.values().next().value}${_$1}${e$1}${y}`, aD = (e$1) => e$1.split(" ").map((u$2) => p(u$2)), k$1 = (e$1, u$2, t) => {
3033
+ const ED = rD(), d$1 = new Set(["\x1B", "›"]), oD = 39, y$1 = "\x07", V$1 = "[", nD = "]", G$1 = "m", _$1 = `${nD}8;;`, z = (e$1) => `${d$1.values().next().value}${V$1}${e$1}${G$1}`, K$1 = (e$1) => `${d$1.values().next().value}${_$1}${e$1}${y$1}`, aD = (e$1) => e$1.split(" ").map((u$2) => p(u$2)), k$1 = (e$1, u$2, t) => {
3034
3034
  const F$1 = [...u$2];
3035
3035
  let s = !1, i$1 = !1, D$1 = p(P$1(e$1[e$1.length - 1]));
3036
3036
  for (const [C$1, n$1] of F$1.entries()) {
3037
3037
  const E = p(n$1);
3038
3038
  if (D$1 + E <= t ? e$1[e$1.length - 1] += n$1 : (e$1.push(n$1), D$1 = 0), d$1.has(n$1) && (s = !0, i$1 = F$1.slice(C$1 + 1).join("").startsWith(_$1)), s) {
3039
- i$1 ? n$1 === y && (s = !1, i$1 = !1) : n$1 === G$1 && (s = !1);
3039
+ i$1 ? n$1 === y$1 && (s = !1, i$1 = !1) : n$1 === G$1 && (s = !1);
3040
3040
  continue;
3041
3041
  }
3042
3042
  D$1 += E, D$1 === t && C$1 < F$1.length - 1 && (e$1.push(""), D$1 = 0);
@@ -3078,7 +3078,7 @@ const ED = rD(), d$1 = new Set(["\x1B", "›"]), oD = 39, y = "\x07", V$1 = "[",
3078
3078
  `)];
3079
3079
  for (const [E, a$1] of n$1.entries()) {
3080
3080
  if (F$1 += a$1, d$1.has(a$1)) {
3081
- const { groups: c$1 } = (/* @__PURE__ */ new RegExp(`(?:\\${V$1}(?<code>\\d+)m|\\${_$1}(?<uri>.*)${y})`)).exec(n$1.slice(E).join("")) || { groups: {} };
3081
+ const { groups: c$1 } = (/* @__PURE__ */ new RegExp(`(?:\\${V$1}(?<code>\\d+)m|\\${_$1}(?<uri>.*)${y$1})`)).exec(n$1.slice(E).join("")) || { groups: {} };
3082
3082
  if (c$1.code !== void 0) {
3083
3083
  const f = Number.parseFloat(c$1.code);
3084
3084
  s = f === oD ? void 0 : f;
@@ -3479,7 +3479,7 @@ var RD = class extends x$1 {
3479
3479
  //#endregion
3480
3480
  //#region node_modules/@clack/prompts/dist/index.mjs
3481
3481
  function ce() {
3482
- return process$1.platform !== "win32" ? process$1.env.TERM !== "linux" : !!process$1.env.CI || !!process$1.env.WT_SESSION || !!process$1.env.TERMINUS_SUBLIME || process$1.env.ConEmuTask === "{cmd::Cmder}" || process$1.env.TERM_PROGRAM === "Terminus-Sublime" || process$1.env.TERM_PROGRAM === "vscode" || process$1.env.TERM === "xterm-256color" || process$1.env.TERM === "alacritty" || process$1.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
3482
+ return y.platform !== "win32" ? y.env.TERM !== "linux" : !!y.env.CI || !!y.env.WT_SESSION || !!y.env.TERMINUS_SUBLIME || y.env.ConEmuTask === "{cmd::Cmder}" || y.env.TERM_PROGRAM === "Terminus-Sublime" || y.env.TERM_PROGRAM === "vscode" || y.env.TERM === "xterm-256color" || y.env.TERM === "alacritty" || y.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
3483
3483
  }
3484
3484
  const V = ce(), u$1 = (t, n$1) => V ? t : n$1, le = u$1("◆", "*"), L = u$1("■", "x"), W = u$1("▲", "x"), C = u$1("◇", "o"), ue = u$1("┌", "T"), o$1 = u$1("│", "|"), d = u$1("└", "—"), k = u$1("●", ">"), P = u$1("○", " "), A = u$1("◻", "[•]"), T = u$1("◼", "[+]"), F = u$1("◻", "[ ]"), $e = u$1("▪", "•"), _ = u$1("─", "-"), me = u$1("╮", "+"), de = u$1("├", "+"), pe = u$1("╯", "+"), q = u$1("●", "•"), D = u$1("◆", "*"), U = u$1("▲", "!"), K = u$1("■", "x"), b = (t) => {
3485
3485
  switch (t) {
@@ -6653,7 +6653,7 @@ function initializeContext(params) {
6653
6653
  external: params?.external ?? void 0
6654
6654
  };
6655
6655
  }
6656
- function process$3(schema, ctx, _params = {
6656
+ function process$2(schema, ctx, _params = {
6657
6657
  path: [],
6658
6658
  schemaPath: []
6659
6659
  }) {
@@ -6690,7 +6690,7 @@ function process$3(schema, ctx, _params = {
6690
6690
  const parent = schema._zod.parent;
6691
6691
  if (parent) {
6692
6692
  if (!result.ref) result.ref = parent;
6693
- process$3(parent, ctx, params);
6693
+ process$2(parent, ctx, params);
6694
6694
  ctx.seen.get(parent).isParent = true;
6695
6695
  }
6696
6696
  }
@@ -6902,7 +6902,7 @@ const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {
6902
6902
  ...params,
6903
6903
  processors
6904
6904
  });
6905
- process$3(schema, ctx);
6905
+ process$2(schema, ctx);
6906
6906
  extractDefs(ctx, schema);
6907
6907
  return finalize(ctx, schema);
6908
6908
  };
@@ -6914,7 +6914,7 @@ const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params)
6914
6914
  io,
6915
6915
  processors
6916
6916
  });
6917
- process$3(schema, ctx);
6917
+ process$2(schema, ctx);
6918
6918
  extractDefs(ctx, schema);
6919
6919
  return finalize(ctx, schema);
6920
6920
  };
@@ -7001,7 +7001,7 @@ const arrayProcessor = (schema, ctx, _json, params) => {
7001
7001
  if (typeof minimum === "number") json.minItems = minimum;
7002
7002
  if (typeof maximum === "number") json.maxItems = maximum;
7003
7003
  json.type = "array";
7004
- json.items = process$3(def.element, ctx, {
7004
+ json.items = process$2(def.element, ctx, {
7005
7005
  ...params,
7006
7006
  path: [...params.path, "items"]
7007
7007
  });
@@ -7012,7 +7012,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
7012
7012
  json.type = "object";
7013
7013
  json.properties = {};
7014
7014
  const shape = def.shape;
7015
- for (const key in shape) json.properties[key] = process$3(shape[key], ctx, {
7015
+ for (const key in shape) json.properties[key] = process$2(shape[key], ctx, {
7016
7016
  ...params,
7017
7017
  path: [
7018
7018
  ...params.path,
@@ -7030,7 +7030,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
7030
7030
  if (def.catchall?._zod.def.type === "never") json.additionalProperties = false;
7031
7031
  else if (!def.catchall) {
7032
7032
  if (ctx.io === "output") json.additionalProperties = false;
7033
- } else if (def.catchall) json.additionalProperties = process$3(def.catchall, ctx, {
7033
+ } else if (def.catchall) json.additionalProperties = process$2(def.catchall, ctx, {
7034
7034
  ...params,
7035
7035
  path: [...params.path, "additionalProperties"]
7036
7036
  });
@@ -7038,7 +7038,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
7038
7038
  const unionProcessor = (schema, ctx, json, params) => {
7039
7039
  const def = schema._zod.def;
7040
7040
  const isExclusive = def.inclusive === false;
7041
- const options = def.options.map((x$2, i$1) => process$3(x$2, ctx, {
7041
+ const options = def.options.map((x$2, i$1) => process$2(x$2, ctx, {
7042
7042
  ...params,
7043
7043
  path: [
7044
7044
  ...params.path,
@@ -7051,7 +7051,7 @@ const unionProcessor = (schema, ctx, json, params) => {
7051
7051
  };
7052
7052
  const intersectionProcessor = (schema, ctx, json, params) => {
7053
7053
  const def = schema._zod.def;
7054
- const a$1 = process$3(def.left, ctx, {
7054
+ const a$1 = process$2(def.left, ctx, {
7055
7055
  ...params,
7056
7056
  path: [
7057
7057
  ...params.path,
@@ -7059,7 +7059,7 @@ const intersectionProcessor = (schema, ctx, json, params) => {
7059
7059
  0
7060
7060
  ]
7061
7061
  });
7062
- const b$2 = process$3(def.right, ctx, {
7062
+ const b$2 = process$2(def.right, ctx, {
7063
7063
  ...params,
7064
7064
  path: [
7065
7065
  ...params.path,
@@ -7076,7 +7076,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
7076
7076
  json.type = "array";
7077
7077
  const prefixPath$1 = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
7078
7078
  const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
7079
- const prefixItems = def.items.map((x$2, i$1) => process$3(x$2, ctx, {
7079
+ const prefixItems = def.items.map((x$2, i$1) => process$2(x$2, ctx, {
7080
7080
  ...params,
7081
7081
  path: [
7082
7082
  ...params.path,
@@ -7084,7 +7084,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
7084
7084
  i$1
7085
7085
  ]
7086
7086
  }));
7087
- const rest = def.rest ? process$3(def.rest, ctx, {
7087
+ const rest = def.rest ? process$2(def.rest, ctx, {
7088
7088
  ...params,
7089
7089
  path: [
7090
7090
  ...params.path,
@@ -7110,7 +7110,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
7110
7110
  };
7111
7111
  const nullableProcessor = (schema, ctx, json, params) => {
7112
7112
  const def = schema._zod.def;
7113
- const inner = process$3(def.innerType, ctx, params);
7113
+ const inner = process$2(def.innerType, ctx, params);
7114
7114
  const seen = ctx.seen.get(schema);
7115
7115
  if (ctx.target === "openapi-3.0") {
7116
7116
  seen.ref = def.innerType;
@@ -7119,27 +7119,27 @@ const nullableProcessor = (schema, ctx, json, params) => {
7119
7119
  };
7120
7120
  const nonoptionalProcessor = (schema, ctx, _json, params) => {
7121
7121
  const def = schema._zod.def;
7122
- process$3(def.innerType, ctx, params);
7122
+ process$2(def.innerType, ctx, params);
7123
7123
  const seen = ctx.seen.get(schema);
7124
7124
  seen.ref = def.innerType;
7125
7125
  };
7126
7126
  const defaultProcessor = (schema, ctx, json, params) => {
7127
7127
  const def = schema._zod.def;
7128
- process$3(def.innerType, ctx, params);
7128
+ process$2(def.innerType, ctx, params);
7129
7129
  const seen = ctx.seen.get(schema);
7130
7130
  seen.ref = def.innerType;
7131
7131
  json.default = JSON.parse(JSON.stringify(def.defaultValue));
7132
7132
  };
7133
7133
  const prefaultProcessor = (schema, ctx, json, params) => {
7134
7134
  const def = schema._zod.def;
7135
- process$3(def.innerType, ctx, params);
7135
+ process$2(def.innerType, ctx, params);
7136
7136
  const seen = ctx.seen.get(schema);
7137
7137
  seen.ref = def.innerType;
7138
7138
  if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue));
7139
7139
  };
7140
7140
  const catchProcessor = (schema, ctx, json, params) => {
7141
7141
  const def = schema._zod.def;
7142
- process$3(def.innerType, ctx, params);
7142
+ process$2(def.innerType, ctx, params);
7143
7143
  const seen = ctx.seen.get(schema);
7144
7144
  seen.ref = def.innerType;
7145
7145
  let catchValue;
@@ -7153,20 +7153,20 @@ const catchProcessor = (schema, ctx, json, params) => {
7153
7153
  const pipeProcessor = (schema, ctx, _json, params) => {
7154
7154
  const def = schema._zod.def;
7155
7155
  const innerType = ctx.io === "input" ? def.in._zod.def.type === "transform" ? def.out : def.in : def.out;
7156
- process$3(innerType, ctx, params);
7156
+ process$2(innerType, ctx, params);
7157
7157
  const seen = ctx.seen.get(schema);
7158
7158
  seen.ref = innerType;
7159
7159
  };
7160
7160
  const readonlyProcessor = (schema, ctx, json, params) => {
7161
7161
  const def = schema._zod.def;
7162
- process$3(def.innerType, ctx, params);
7162
+ process$2(def.innerType, ctx, params);
7163
7163
  const seen = ctx.seen.get(schema);
7164
7164
  seen.ref = def.innerType;
7165
7165
  json.readOnly = true;
7166
7166
  };
7167
7167
  const optionalProcessor = (schema, ctx, _json, params) => {
7168
7168
  const def = schema._zod.def;
7169
- process$3(def.innerType, ctx, params);
7169
+ process$2(def.innerType, ctx, params);
7170
7170
  const seen = ctx.seen.get(schema);
7171
7171
  seen.ref = def.innerType;
7172
7172
  };
@@ -7899,11 +7899,20 @@ var AuthValidationError = class extends Error {
7899
7899
  this.name = "AuthValidationError";
7900
7900
  }
7901
7901
  };
7902
+ /**
7903
+ * Formats an API error response into a human-readable string.
7904
+ * Prefers `message` (human-readable) over `detail`.
7905
+ */
7906
+ function formatApiError(errorJson) {
7907
+ const error = errorJson;
7908
+ const content = error?.message ?? error?.detail ?? errorJson;
7909
+ return typeof content === "string" ? content : JSON.stringify(content, null, 2);
7910
+ }
7902
7911
 
7903
7912
  //#endregion
7904
7913
  //#region src/core/consts.ts
7905
7914
  const PROJECT_SUBDIR = "base44";
7906
- const CONFIG_FILE_EXTENSION = "json";
7915
+ const CONFIG_FILE_EXTENSION = "jsonc";
7907
7916
  const CONFIG_FILE_EXTENSION_GLOB = "{json,jsonc}";
7908
7917
  const FUNCTION_CONFIG_FILE = `function.${CONFIG_FILE_EXTENSION_GLOB}`;
7909
7918
  const APP_CONFIG_PATTERN = `**/.app.${CONFIG_FILE_EXTENSION_GLOB}`;
@@ -9782,6 +9791,9 @@ async function deleteFile(filePath) {
9782
9791
  if (!await pathExists(filePath)) return;
9783
9792
  await unlink(filePath);
9784
9793
  }
9794
+ async function isDirEmpty(dir = process.cwd()) {
9795
+ return (await readdir(dir)).length === 0;
9796
+ }
9785
9797
 
9786
9798
  //#endregion
9787
9799
  //#region src/core/auth/config.ts
@@ -16193,7 +16205,7 @@ const createIgnorePredicate = (patterns, cwd, baseDir) => {
16193
16205
  };
16194
16206
  const normalizeOptions$2 = (options = {}) => {
16195
16207
  const ignoreOption = options.ignore ? Array.isArray(options.ignore) ? options.ignore : [options.ignore] : [];
16196
- const cwd = toPath$1(options.cwd) ?? process$1.cwd();
16208
+ const cwd = toPath$1(options.cwd) ?? y.cwd();
16197
16209
  const deep = typeof options.deep === "number" ? Math.max(0, options.deep) + 1 : Number.POSITIVE_INFINITY;
16198
16210
  return {
16199
16211
  cwd,
@@ -16290,7 +16302,7 @@ const getDirectoryGlob = ({ directoryPath, files, extensions }) => {
16290
16302
  const extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(",")}}` : extensions[0]}` : "";
16291
16303
  return files ? files.map((file) => path.posix.join(directoryPath, `**/${path.extname(file) ? file : `${file}${extensionGlob}`}`)) : [path.posix.join(directoryPath, `**${extensionGlob ? `/*${extensionGlob}` : ""}`)];
16292
16304
  };
16293
- const directoryToGlob = async (directoryPaths, { cwd = process$1.cwd(), files, extensions, fs: fsImplementation } = {}) => {
16305
+ const directoryToGlob = async (directoryPaths, { cwd = y.cwd(), files, extensions, fs: fsImplementation } = {}) => {
16294
16306
  return (await Promise.all(directoryPaths.map(async (directoryPath) => {
16295
16307
  if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
16296
16308
  directoryPath,
@@ -16304,7 +16316,7 @@ const directoryToGlob = async (directoryPaths, { cwd = process$1.cwd(), files, e
16304
16316
  }) : directoryPath;
16305
16317
  }))).flat();
16306
16318
  };
16307
- const directoryToGlobSync = (directoryPaths, { cwd = process$1.cwd(), files, extensions, fs: fsImplementation } = {}) => directoryPaths.flatMap((directoryPath) => {
16319
+ const directoryToGlobSync = (directoryPaths, { cwd = y.cwd(), files, extensions, fs: fsImplementation } = {}) => directoryPaths.flatMap((directoryPath) => {
16308
16320
  if (shouldExpandGlobstarDirectory(isNegativePattern(directoryPath) ? directoryPath.slice(1) : directoryPath)) return getDirectoryGlob({
16309
16321
  directoryPath,
16310
16322
  files,
@@ -16400,7 +16412,7 @@ const applyIgnoreFilesAndGetFilterSync = (options) => {
16400
16412
  };
16401
16413
  const createFilterFunction = (isIgnored, cwd) => {
16402
16414
  const seen = /* @__PURE__ */ new Set();
16403
- const basePath = cwd || process$1.cwd();
16415
+ const basePath = cwd || y.cwd();
16404
16416
  const pathCache = /* @__PURE__ */ new Map();
16405
16417
  return (fastGlobResult) => {
16406
16418
  const pathKey$1 = path.normalize(fastGlobResult.path ?? fastGlobResult);
@@ -16559,8 +16571,8 @@ async function syncEntities(entities) {
16559
16571
  });
16560
16572
  if (!response.ok) {
16561
16573
  const errorJson = await response.json();
16562
- if (response.status === 428) throw new Error(`Failed to delete entity: ${errorJson.message}`);
16563
- throw new Error(`Error occurred while syncing entities ${errorJson.message}`);
16574
+ if (response.status === 428) throw new Error(`Failed to delete entity: ${formatApiError(errorJson)}`);
16575
+ throw new Error(`Error occurred while syncing entities: ${formatApiError(errorJson)}`);
16564
16576
  }
16565
16577
  return SyncEntitiesResponseSchema.parse(await response.json());
16566
16578
  }
@@ -16766,21 +16778,20 @@ async function writeAgents(agentsDir, agents) {
16766
16778
  //#region src/core/resources/agent/api.ts
16767
16779
  async function pushAgents(agents) {
16768
16780
  const appClient = getAppClient();
16769
- const payload = { configs: agents.map((agent) => ({
16781
+ const payload = agents.map((agent) => ({
16770
16782
  name: agent.name,
16771
16783
  description: agent.description,
16772
16784
  instructions: agent.instructions,
16773
16785
  tool_configs: agent.tool_configs,
16774
16786
  whatsapp_greeting: agent.whatsapp_greeting ?? null
16775
- })) };
16787
+ }));
16776
16788
  const response = await appClient.put("agent-configs", {
16777
16789
  json: payload,
16778
16790
  throwHttpErrors: false
16779
16791
  });
16780
16792
  if (!response.ok) {
16781
16793
  const errorJson = await response.json();
16782
- const errorMessage = errorJson.detail || errorJson.message || "Unknown error";
16783
- throw new Error(`Error occurred while syncing agents: ${errorMessage}`);
16794
+ throw new Error(`Error occurred while syncing agents: ${formatApiError(errorJson)}`);
16784
16795
  }
16785
16796
  return SyncAgentsResponseSchema.parse(await response.json());
16786
16797
  }
@@ -16788,8 +16799,7 @@ async function fetchAgents() {
16788
16799
  const response = await getAppClient().get("agent-configs", { throwHttpErrors: false });
16789
16800
  if (!response.ok) {
16790
16801
  const errorJson = await response.json();
16791
- const errorMessage = errorJson.detail || errorJson.message || "Unknown error";
16792
- throw new Error(`Error occurred while fetching agents: ${errorMessage}`);
16802
+ throw new Error(`Error occurred while fetching agents: ${formatApiError(errorJson)}`);
16793
16803
  }
16794
16804
  return ListAgentsResponseSchema.parse(await response.json());
16795
16805
  }
@@ -30894,13 +30904,13 @@ var ansi_styles_default = ansiStyles;
30894
30904
 
30895
30905
  //#endregion
30896
30906
  //#region node_modules/chalk/source/vendor/supports-color/index.js
30897
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process$1.argv) {
30907
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : y.argv) {
30898
30908
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
30899
30909
  const position = argv.indexOf(prefix + flag);
30900
30910
  const terminatorPosition = argv.indexOf("--");
30901
30911
  return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
30902
30912
  }
30903
- const { env } = process$1;
30913
+ const { env } = y;
30904
30914
  let flagForceColor;
30905
30915
  if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) flagForceColor = 0;
30906
30916
  else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) flagForceColor = 1;
@@ -30933,7 +30943,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
30933
30943
  if (haveStream && !streamIsTTY && forceColor === void 0) return 0;
30934
30944
  const min = forceColor || 0;
30935
30945
  if (env.TERM === "dumb") return min;
30936
- if (process$1.platform === "win32") {
30946
+ if (y.platform === "win32") {
30937
30947
  const osRelease = os.release().split(".");
30938
30948
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) return Number(osRelease[2]) >= 14931 ? 3 : 2;
30939
30949
  return 1;
@@ -31508,8 +31518,7 @@ const agentsPullCommand = new Command("pull").description("Pull agents from Base
31508
31518
  //#region src/cli/commands/agents/push.ts
31509
31519
  async function pushAgentsAction() {
31510
31520
  const { agents } = await readProjectConfig();
31511
- if (agents.length === 0) return { outroMessage: "No agents found in project" };
31512
- M.info(`Found ${agents.length} agents to push`);
31521
+ M.info(agents.length === 0 ? "No local agents found - this will delete all remote agents" : `Found ${agents.length} agents to push`);
31513
31522
  const result = await runTask("Pushing agents to Base44", async () => {
31514
31523
  return await pushAgents(agents);
31515
31524
  }, {
@@ -31719,9 +31728,9 @@ const getSubprocessResult = ({ stdout: stdout$1 }) => {
31719
31728
  //#region node_modules/execa/lib/utils/standard-stream.js
31720
31729
  const isStandardStream = (stream) => STANDARD_STREAMS.includes(stream);
31721
31730
  const STANDARD_STREAMS = [
31722
- process$1.stdin,
31723
- process$1.stdout,
31724
- process$1.stderr
31731
+ y.stdin,
31732
+ y.stdout,
31733
+ y.stderr
31725
31734
  ];
31726
31735
  const STANDARD_STREAMS_ALIASES = [
31727
31736
  "stdin",
@@ -31846,9 +31855,9 @@ const NO_ESCAPE_REGEXP = /^[\w./-]+$/;
31846
31855
  //#endregion
31847
31856
  //#region node_modules/is-unicode-supported/index.js
31848
31857
  function isUnicodeSupported() {
31849
- const { env: env$1 } = process$1;
31858
+ const { env: env$1 } = y;
31850
31859
  const { TERM, TERM_PROGRAM } = env$1;
31851
- if (process$1.platform !== "win32") return TERM !== "linux";
31860
+ if (y.platform !== "win32") return TERM !== "linux";
31852
31861
  return Boolean(env$1.WT_SESSION) || Boolean(env$1.TERMINUS_SUBLIME) || env$1.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env$1.TERMINAL_EMULATOR === "JetBrains-JediTerm";
31853
31862
  }
31854
31863
 
@@ -32775,7 +32784,7 @@ const TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
32775
32784
 
32776
32785
  //#endregion
32777
32786
  //#region node_modules/npm-run-path/index.js
32778
- const npmRunPath = ({ cwd = process$1.cwd(), path: pathOption = process$1.env[pathKey()], preferLocal = true, execPath: execPath$1 = process$1.execPath, addExecPath = true } = {}) => {
32787
+ const npmRunPath = ({ cwd = y.cwd(), path: pathOption = y.env[pathKey()], preferLocal = true, execPath: execPath$1 = y.execPath, addExecPath = true } = {}) => {
32779
32788
  const cwdPath = path.resolve(toPath(cwd));
32780
32789
  const result = [];
32781
32790
  const pathParts = pathOption.split(path.delimiter);
@@ -32793,7 +32802,7 @@ const applyExecPath = (result, pathParts, execPath$1, cwdPath) => {
32793
32802
  const pathPart = path.resolve(cwdPath, toPath(execPath$1), "..");
32794
32803
  if (!pathParts.includes(pathPart)) result.push(pathPart);
32795
32804
  };
32796
- const npmRunPathEnv = ({ env: env$1 = process$1.env, ...options } = {}) => {
32805
+ const npmRunPathEnv = ({ env: env$1 = y.env, ...options } = {}) => {
32797
32806
  env$1 = { ...env$1 };
32798
32807
  const pathName = pathKey({ env: env$1 });
32799
32808
  options.path = env$1[pathName];
@@ -33928,7 +33937,7 @@ const normalizeCwd = (cwd = getDefaultCwd()) => {
33928
33937
  };
33929
33938
  const getDefaultCwd = () => {
33930
33939
  try {
33931
- return process$1.cwd();
33940
+ return y.cwd();
33932
33941
  } catch (error) {
33933
33942
  error.message = `The current directory does not exist.\n${error.message}`;
33934
33943
  throw error;
@@ -33963,7 +33972,7 @@ const normalizeOptions = (filePath, rawArguments, rawOptions) => {
33963
33972
  options.killSignal = normalizeKillSignal(options.killSignal);
33964
33973
  options.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);
33965
33974
  options.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);
33966
- if (process$1.platform === "win32" && path.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
33975
+ if (y.platform === "win32" && path.basename(file, ".exe") === "cmd") commandArguments.unshift("/q");
33967
33976
  return {
33968
33977
  file,
33969
33978
  commandArguments,
@@ -33990,7 +33999,7 @@ const addDefaultOptions = ({ extendEnv = true, preferLocal = false, cwd, localDi
33990
33999
  });
33991
34000
  const getEnv = ({ env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath }) => {
33992
34001
  const env$1 = extendEnv ? {
33993
- ...process$1.env,
34002
+ ...y.env,
33994
34003
  ...envOption
33995
34004
  } : envOption;
33996
34005
  if (preferLocal || node) return npmRunPathEnv({
@@ -34990,12 +34999,12 @@ const guessStreamDirection = {
34990
34999
  }
34991
35000
  };
34992
35001
  const getStandardStreamDirection = (value) => {
34993
- if ([0, process$1.stdin].includes(value)) return "input";
35002
+ if ([0, y.stdin].includes(value)) return "input";
34994
35003
  if ([
34995
35004
  1,
34996
35005
  2,
34997
- process$1.stdout,
34998
- process$1.stderr
35006
+ y.stdout,
35007
+ y.stderr
34999
35008
  ].includes(value)) return "output";
35000
35009
  };
35001
35010
  const DEFAULT_DIRECTION = "output";
@@ -36059,9 +36068,9 @@ const addIpcMethods = (subprocess, { ipc }) => {
36059
36068
  Object.assign(subprocess, getIpcMethods(subprocess, false, ipc));
36060
36069
  };
36061
36070
  const getIpcExport = () => {
36062
- const anyProcess = process$1;
36071
+ const anyProcess = y;
36063
36072
  const isSubprocess = true;
36064
- const ipc = process$1.channel !== void 0;
36073
+ const ipc = y.channel !== void 0;
36065
36074
  return {
36066
36075
  ...getIpcMethods(anyProcess, isSubprocess, ipc),
36067
36076
  getCancelSignal: getCancelSignal$1.bind(void 0, {
@@ -36303,7 +36312,7 @@ if (process.platform === "linux") signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SI
36303
36312
 
36304
36313
  //#endregion
36305
36314
  //#region node_modules/signal-exit/dist/mjs/index.js
36306
- const processOk = (process$5) => !!process$5 && typeof process$5 === "object" && typeof process$5.removeListener === "function" && typeof process$5.emit === "function" && typeof process$5.reallyExit === "function" && typeof process$5.listeners === "function" && typeof process$5.kill === "function" && typeof process$5.pid === "number" && typeof process$5.on === "function";
36315
+ const processOk = (process$4) => !!process$4 && typeof process$4 === "object" && typeof process$4.removeListener === "function" && typeof process$4.emit === "function" && typeof process$4.reallyExit === "function" && typeof process$4.listeners === "function" && typeof process$4.kill === "function" && typeof process$4.pid === "number" && typeof process$4.on === "function";
36307
36316
  const kExitEmitter = Symbol.for("signal-exit emitter");
36308
36317
  const global$1 = globalThis;
36309
36318
  const ObjectDefineProperty = Object.defineProperty.bind(Object);
@@ -36371,7 +36380,7 @@ var SignalExitFallback = class extends SignalExitBase {
36371
36380
  };
36372
36381
  var SignalExit = class extends SignalExitBase {
36373
36382
  /* c8 ignore start */
36374
- #hupSig = process$2.platform === "win32" ? "SIGINT" : "SIGHUP";
36383
+ #hupSig = process$1.platform === "win32" ? "SIGINT" : "SIGHUP";
36375
36384
  /* c8 ignore stop */
36376
36385
  #emitter = new Emitter();
36377
36386
  #process;
@@ -36379,15 +36388,15 @@ var SignalExit = class extends SignalExitBase {
36379
36388
  #originalProcessReallyExit;
36380
36389
  #sigListeners = {};
36381
36390
  #loaded = false;
36382
- constructor(process$5) {
36391
+ constructor(process$4) {
36383
36392
  super();
36384
- this.#process = process$5;
36393
+ this.#process = process$4;
36385
36394
  this.#sigListeners = {};
36386
36395
  for (const sig of signals) this.#sigListeners[sig] = () => {
36387
36396
  const listeners = this.#process.listeners(sig);
36388
36397
  let { count: count$1 } = this.#emitter;
36389
36398
  /* c8 ignore start */
36390
- const p$1 = process$5;
36399
+ const p$1 = process$4;
36391
36400
  if (typeof p$1.__signal_exit_emitter__ === "object" && typeof p$1.__signal_exit_emitter__.count === "number") count$1 += p$1.__signal_exit_emitter__.count;
36392
36401
  /* c8 ignore stop */
36393
36402
  if (listeners.length === count$1) {
@@ -36395,11 +36404,11 @@ var SignalExit = class extends SignalExitBase {
36395
36404
  const ret = this.#emitter.emit("exit", null, sig);
36396
36405
  /* c8 ignore start */
36397
36406
  const s = sig === "SIGHUP" ? this.#hupSig : sig;
36398
- if (!ret) process$5.kill(process$5.pid, s);
36407
+ if (!ret) process$4.kill(process$4.pid, s);
36399
36408
  }
36400
36409
  };
36401
- this.#originalProcessReallyExit = process$5.reallyExit;
36402
- this.#originalProcessEmit = process$5.emit;
36410
+ this.#originalProcessReallyExit = process$4.reallyExit;
36411
+ this.#originalProcessEmit = process$4.emit;
36403
36412
  }
36404
36413
  onExit(cb, opts) {
36405
36414
  /* c8 ignore start */
@@ -36466,8 +36475,8 @@ var SignalExit = class extends SignalExitBase {
36466
36475
  } else return og.call(this.#process, ev, ...args);
36467
36476
  }
36468
36477
  };
36469
- const process$2 = globalThis.process;
36470
- const { onExit, load, unload } = signalExitWrap(processOk(process$2) ? new SignalExit(process$2) : new SignalExitFallback());
36478
+ const process$1 = globalThis.process;
36479
+ const { onExit, load, unload } = signalExitWrap(processOk(process$1) ? new SignalExit(process$1) : new SignalExitFallback());
36471
36480
 
36472
36481
  //#endregion
36473
36482
  //#region node_modules/execa/lib/terminate/cleanup.js
@@ -38228,9 +38237,8 @@ async function getTemplateById(templateId) {
38228
38237
  return template;
38229
38238
  }
38230
38239
  function validateNonInteractiveFlags$1(command) {
38231
- const { name: name$1, path: path$16 } = command.opts();
38232
- const providedCount = [name$1, path$16].filter(Boolean).length;
38233
- if (providedCount > 0 && providedCount < 2) command.error("Non-interactive mode requires all flags: --name, --path");
38240
+ const { path: path$16 } = command.opts();
38241
+ if (path$16 && !command.args.length) command.error("Non-interactive mode requires all flags: --name, --path");
38234
38242
  }
38235
38243
  async function chooseCreate(options) {
38236
38244
  if (!!(options.name && options.path)) await runCommand(() => createNonInteractive(options), {
@@ -38254,19 +38262,18 @@ async function createInteractive(options) {
38254
38262
  message: "Pick a template",
38255
38263
  options: templateOptions
38256
38264
  }),
38257
- name: () => he({
38258
- message: "What is the name of your project?",
38259
- placeholder: "my-app",
38260
- validate: (value) => {
38261
- if (!value || value.trim().length === 0) return "Every project deserves a name";
38262
- }
38263
- }),
38264
- description: () => he({
38265
- message: "Description (optional)",
38266
- placeholder: "A brief description of your project"
38267
- }),
38265
+ name: () => {
38266
+ return options.name ? Promise.resolve(options.name) : he({
38267
+ message: "What is the name of your project?",
38268
+ placeholder: basename(process.cwd()),
38269
+ initialValue: basename(process.cwd()),
38270
+ validate: (value) => {
38271
+ if (!value || value.trim().length === 0) return "Every project deserves a name";
38272
+ }
38273
+ });
38274
+ },
38268
38275
  projectPath: async ({ results }) => {
38269
- const suggestedPath = `./${(0, import_lodash.default)(results.name)}`;
38276
+ const suggestedPath = await isDirEmpty() ? `./` : `./${(0, import_lodash.default)(results.name)}`;
38270
38277
  return he({
38271
38278
  message: "Where should we create your project?",
38272
38279
  placeholder: suggestedPath,
@@ -38277,7 +38284,6 @@ async function createInteractive(options) {
38277
38284
  return await executeCreate({
38278
38285
  template: result.template,
38279
38286
  name: result.name,
38280
- description: result.description || void 0,
38281
38287
  projectPath: result.projectPath,
38282
38288
  deploy: options.deploy,
38283
38289
  skills: options.skills,
@@ -38288,7 +38294,6 @@ async function createNonInteractive(options) {
38288
38294
  return await executeCreate({
38289
38295
  template: await getTemplateById(options.template ?? DEFAULT_TEMPLATE_ID),
38290
38296
  name: options.name,
38291
- description: options.description,
38292
38297
  projectPath: options.path,
38293
38298
  deploy: options.deploy,
38294
38299
  skills: options.skills,
@@ -38355,32 +38360,32 @@ async function executeCreate({ template, name: rawName, description, projectPath
38355
38360
  finalAppUrl = appUrl;
38356
38361
  }
38357
38362
  }
38358
- let shouldAddSkills = false;
38359
- if (isInteractive) {
38360
- const result = await ye({ message: "Add AI agent skills?" });
38361
- shouldAddSkills = !pD(result) && result;
38362
- } else shouldAddSkills = !!skills;
38363
- if (shouldAddSkills) await runTask("Installing AI agent skills...", async () => {
38364
- await execa("npx", [
38365
- "-y",
38366
- "add-skill",
38367
- "base44/skills",
38368
- "-y"
38369
- ], {
38370
- cwd: resolvedPath,
38371
- shell: true
38363
+ if (skills ?? true) try {
38364
+ await runTask("Installing AI agent skills...", async () => {
38365
+ await execa("npx", [
38366
+ "-y",
38367
+ "add-skill",
38368
+ "base44/skills",
38369
+ "-y"
38370
+ ], {
38371
+ cwd: resolvedPath,
38372
+ shell: true
38373
+ });
38374
+ }, {
38375
+ successMessage: theme.colors.base44Orange("AI agent skills added successfully"),
38376
+ errorMessage: "Failed to add AI agent skills - you can add them later with: npx add-skill base44/skills"
38372
38377
  });
38373
- }, {
38374
- successMessage: theme.colors.base44Orange("AI agent skills added successfully"),
38375
- errorMessage: "Failed to add AI agent skills - you can add them later with: npx add-skill base44/skills"
38376
- });
38378
+ } catch {}
38377
38379
  M.message(`${theme.styles.header("Project")}: ${theme.colors.base44Orange(name$1)}`);
38378
38380
  M.message(`${theme.styles.header("Dashboard")}: ${theme.colors.links(getDashboardUrl(projectId))}`);
38379
38381
  if (finalAppUrl) M.message(`${theme.styles.header("Site")}: ${theme.colors.links(finalAppUrl)}`);
38380
38382
  return { outroMessage: "Your project is set up and ready to use" };
38381
38383
  }
38382
- const createCommand = new Command("create").description("Create a new Base44 project").option("-n, --name <name>", "Project name").option("-d, --description <description>", "Project description").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 (options) => {
38383
- await chooseCreate(options);
38384
+ 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) => {
38385
+ await chooseCreate({
38386
+ name: name$1,
38387
+ ...options
38388
+ });
38384
38389
  });
38385
38390
 
38386
38391
  //#endregion
@@ -38425,7 +38430,7 @@ function isInsideContainer() {
38425
38430
  //#endregion
38426
38431
  //#region node_modules/is-wsl/index.js
38427
38432
  const isWsl = () => {
38428
- if (process$1.platform !== "linux") return false;
38433
+ if (y.platform !== "linux") return false;
38429
38434
  if (os.release().toLowerCase().includes("microsoft")) {
38430
38435
  if (isInsideContainer()) return false;
38431
38436
  return true;
@@ -38436,12 +38441,12 @@ const isWsl = () => {
38436
38441
  return false;
38437
38442
  }
38438
38443
  };
38439
- var is_wsl_default = process$1.env.__IS_WSL_TEST__ ? isWsl : isWsl();
38444
+ var is_wsl_default = y.env.__IS_WSL_TEST__ ? isWsl : isWsl();
38440
38445
 
38441
38446
  //#endregion
38442
38447
  //#region node_modules/powershell-utils/index.js
38443
38448
  const execFile$2 = promisify(childProcess.execFile);
38444
- const powerShellPath$1 = () => `${process$1.env.SYSTEMROOT || process$1.env.windir || String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;
38449
+ const powerShellPath$1 = () => `${y.env.SYSTEMROOT || y.env.windir || String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;
38445
38450
  const executePowerShell = async (command, options = {}) => {
38446
38451
  const { powerShellPath: psPath, ...execFileOptions } = options;
38447
38452
  const encodedCommand = executePowerShell.encodeCommand(command);
@@ -38552,7 +38557,7 @@ function defineLazyProperty(object$1, propertyName, valueGetter) {
38552
38557
  //#region node_modules/default-browser-id/index.js
38553
38558
  const execFileAsync$3 = promisify(execFile);
38554
38559
  async function defaultBrowserId() {
38555
- if (process$1.platform !== "darwin") throw new Error("macOS only");
38560
+ if (y.platform !== "darwin") throw new Error("macOS only");
38556
38561
  const { stdout: stdout$1 } = await execFileAsync$3("defaults", [
38557
38562
  "read",
38558
38563
  "com.apple.LaunchServices/com.apple.launchservices.secure",
@@ -38567,7 +38572,7 @@ async function defaultBrowserId() {
38567
38572
  //#region node_modules/run-applescript/index.js
38568
38573
  const execFileAsync$2 = promisify(execFile);
38569
38574
  async function runAppleScript(script, { humanReadableOutput = true, signal } = {}) {
38570
- if (process$1.platform !== "darwin") throw new Error("macOS only");
38575
+ if (y.platform !== "darwin") throw new Error("macOS only");
38571
38576
  const outputArguments = humanReadableOutput ? [] : ["-ss"];
38572
38577
  const execOptions = {};
38573
38578
  if (signal) execOptions.signal = signal;
@@ -38676,14 +38681,14 @@ async function defaultBrowser$1(_execFileAsync = execFileAsync$1) {
38676
38681
  const execFileAsync = promisify(execFile);
38677
38682
  const titleize = (string$2) => string$2.toLowerCase().replaceAll(/(?:^|\s|-)\S/g, (x$2) => x$2.toUpperCase());
38678
38683
  async function defaultBrowser() {
38679
- if (process$1.platform === "darwin") {
38684
+ if (y.platform === "darwin") {
38680
38685
  const id = await defaultBrowserId();
38681
38686
  return {
38682
38687
  name: await bundleName(id),
38683
38688
  id
38684
38689
  };
38685
38690
  }
38686
- if (process$1.platform === "linux") {
38691
+ if (y.platform === "linux") {
38687
38692
  const { stdout: stdout$1 } = await execFileAsync("xdg-mime", [
38688
38693
  "query",
38689
38694
  "default",
@@ -38695,13 +38700,13 @@ async function defaultBrowser() {
38695
38700
  id
38696
38701
  };
38697
38702
  }
38698
- if (process$1.platform === "win32") return defaultBrowser$1();
38703
+ if (y.platform === "win32") return defaultBrowser$1();
38699
38704
  throw new Error("Only macOS, Linux, and Windows are supported");
38700
38705
  }
38701
38706
 
38702
38707
  //#endregion
38703
38708
  //#region node_modules/is-in-ssh/index.js
38704
- const isInSsh = Boolean(process$1.env.SSH_CONNECTION || process$1.env.SSH_CLIENT || process$1.env.SSH_TTY);
38709
+ const isInSsh = Boolean(y.env.SSH_CONNECTION || y.env.SSH_CLIENT || y.env.SSH_TTY);
38705
38710
  var is_in_ssh_default = isInSsh;
38706
38711
 
38707
38712
  //#endregion
@@ -38709,7 +38714,7 @@ var is_in_ssh_default = isInSsh;
38709
38714
  const fallbackAttemptSymbol = Symbol("fallbackAttempt");
38710
38715
  const __dirname = import.meta.url ? path.dirname(fileURLToPath(import.meta.url)) : "";
38711
38716
  const localXdgOpenPath = path.join(__dirname, "xdg-open");
38712
- const { platform: platform$1, arch } = process$1;
38717
+ const { platform: platform$1, arch } = y;
38713
38718
  const tryEachApp = async (apps$1, opener) => {
38714
38719
  if (apps$1.length === 0) return;
38715
38720
  const errors = [];
@@ -38822,7 +38827,7 @@ const baseOpen = async (options) => {
38822
38827
  await fs$1.access(localXdgOpenPath, constants$1.X_OK);
38823
38828
  exeLocalXdgOpen = true;
38824
38829
  } catch {}
38825
- command = process$1.versions.electron ?? (platform$1 === "android" || isBundled || !exeLocalXdgOpen) ? "xdg-open" : localXdgOpenPath;
38830
+ command = y.versions.electron ?? (platform$1 === "android" || isBundled || !exeLocalXdgOpen) ? "xdg-open" : localXdgOpenPath;
38826
38831
  }
38827
38832
  if (appArguments.length > 0) cliArguments.push(...appArguments);
38828
38833
  if (!options.wait) {
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "templates": [
3
- {
4
- "id": "backend-only",
5
- "name": "Create a basic project",
6
- "description": "Minimal Base44 backend for defining your data models and logic",
7
- "path": "backend-only"
8
- },
9
3
  {
10
4
  "id": "backend-and-client",
11
5
  "name": "Start from a template",
12
6
  "description": "Full-stack example with a Base44 backend and a Vite + React client application",
13
7
  "path": "backend-and-client"
8
+ },
9
+ {
10
+ "id": "backend-only",
11
+ "name": "Create a basic project",
12
+ "description": "Minimal Base44 backend for defining your data models and logic",
13
+ "path": "backend-only"
14
14
  }
15
15
  ]
16
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base44-preview/cli",
3
- "version": "0.0.19-pr.112.3ef73f2",
3
+ "version": "0.0.19-pr.112.6a4374a",
4
4
  "description": "Base44 CLI - Unified interface for managing Base44 applications",
5
5
  "type": "module",
6
6
  "bin": {