maxsimcli 3.1.2 → 3.1.3
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/.tsbuildinfo +1 -1
- package/dist/assets/CHANGELOG.md +7 -0
- package/dist/assets/dashboard/server.js +361 -21
- package/dist/cli.cjs +58 -9
- package/dist/cli.cjs.map +1 -1
- package/dist/core/commands.d.ts.map +1 -1
- package/dist/core/commands.js +2 -4
- package/dist/core/commands.js.map +1 -1
- package/dist/core/core.d.ts.map +1 -1
- package/dist/core/core.js +2 -1
- package/dist/core/core.js.map +1 -1
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +5 -7
- package/dist/core/state.js.map +1 -1
- package/dist/install.cjs +212 -37
- package/dist/install.cjs.map +1 -1
- package/dist/install.js +22 -37
- package/dist/install.js.map +1 -1
- package/package.json +5 -1
package/dist/install.cjs
CHANGED
|
@@ -7516,8 +7516,180 @@ var dist_default = createPrompt((config, done) => {
|
|
|
7516
7516
|
].filter(Boolean).join("\n").trimEnd()}${cursorHide}`;
|
|
7517
7517
|
});
|
|
7518
7518
|
|
|
7519
|
+
//#endregion
|
|
7520
|
+
//#region ../../node_modules/minimist/index.js
|
|
7521
|
+
var require_minimist = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
7522
|
+
function hasKey(obj, keys) {
|
|
7523
|
+
var o = obj;
|
|
7524
|
+
keys.slice(0, -1).forEach(function(key) {
|
|
7525
|
+
o = o[key] || {};
|
|
7526
|
+
});
|
|
7527
|
+
return keys[keys.length - 1] in o;
|
|
7528
|
+
}
|
|
7529
|
+
function isNumber(x) {
|
|
7530
|
+
if (typeof x === "number") return true;
|
|
7531
|
+
if (/^0x[0-9a-f]+$/i.test(x)) return true;
|
|
7532
|
+
return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
|
|
7533
|
+
}
|
|
7534
|
+
function isConstructorOrProto(obj, key) {
|
|
7535
|
+
return key === "constructor" && typeof obj[key] === "function" || key === "__proto__";
|
|
7536
|
+
}
|
|
7537
|
+
module.exports = function(args, opts) {
|
|
7538
|
+
if (!opts) opts = {};
|
|
7539
|
+
var flags = {
|
|
7540
|
+
bools: {},
|
|
7541
|
+
strings: {},
|
|
7542
|
+
unknownFn: null
|
|
7543
|
+
};
|
|
7544
|
+
if (typeof opts.unknown === "function") flags.unknownFn = opts.unknown;
|
|
7545
|
+
if (typeof opts.boolean === "boolean" && opts.boolean) flags.allBools = true;
|
|
7546
|
+
else [].concat(opts.boolean).filter(Boolean).forEach(function(key) {
|
|
7547
|
+
flags.bools[key] = true;
|
|
7548
|
+
});
|
|
7549
|
+
var aliases = {};
|
|
7550
|
+
function aliasIsBoolean(key) {
|
|
7551
|
+
return aliases[key].some(function(x) {
|
|
7552
|
+
return flags.bools[x];
|
|
7553
|
+
});
|
|
7554
|
+
}
|
|
7555
|
+
Object.keys(opts.alias || {}).forEach(function(key) {
|
|
7556
|
+
aliases[key] = [].concat(opts.alias[key]);
|
|
7557
|
+
aliases[key].forEach(function(x) {
|
|
7558
|
+
aliases[x] = [key].concat(aliases[key].filter(function(y) {
|
|
7559
|
+
return x !== y;
|
|
7560
|
+
}));
|
|
7561
|
+
});
|
|
7562
|
+
});
|
|
7563
|
+
[].concat(opts.string).filter(Boolean).forEach(function(key) {
|
|
7564
|
+
flags.strings[key] = true;
|
|
7565
|
+
if (aliases[key]) [].concat(aliases[key]).forEach(function(k) {
|
|
7566
|
+
flags.strings[k] = true;
|
|
7567
|
+
});
|
|
7568
|
+
});
|
|
7569
|
+
var defaults = opts.default || {};
|
|
7570
|
+
var argv = { _: [] };
|
|
7571
|
+
function argDefined(key, arg) {
|
|
7572
|
+
return flags.allBools && /^--[^=]+$/.test(arg) || flags.strings[key] || flags.bools[key] || aliases[key];
|
|
7573
|
+
}
|
|
7574
|
+
function setKey(obj, keys, value) {
|
|
7575
|
+
var o = obj;
|
|
7576
|
+
for (var i = 0; i < keys.length - 1; i++) {
|
|
7577
|
+
var key = keys[i];
|
|
7578
|
+
if (isConstructorOrProto(o, key)) return;
|
|
7579
|
+
if (o[key] === void 0) o[key] = {};
|
|
7580
|
+
if (o[key] === Object.prototype || o[key] === Number.prototype || o[key] === String.prototype) o[key] = {};
|
|
7581
|
+
if (o[key] === Array.prototype) o[key] = [];
|
|
7582
|
+
o = o[key];
|
|
7583
|
+
}
|
|
7584
|
+
var lastKey = keys[keys.length - 1];
|
|
7585
|
+
if (isConstructorOrProto(o, lastKey)) return;
|
|
7586
|
+
if (o === Object.prototype || o === Number.prototype || o === String.prototype) o = {};
|
|
7587
|
+
if (o === Array.prototype) o = [];
|
|
7588
|
+
if (o[lastKey] === void 0 || flags.bools[lastKey] || typeof o[lastKey] === "boolean") o[lastKey] = value;
|
|
7589
|
+
else if (Array.isArray(o[lastKey])) o[lastKey].push(value);
|
|
7590
|
+
else o[lastKey] = [o[lastKey], value];
|
|
7591
|
+
}
|
|
7592
|
+
function setArg(key, val, arg) {
|
|
7593
|
+
if (arg && flags.unknownFn && !argDefined(key, arg)) {
|
|
7594
|
+
if (flags.unknownFn(arg) === false) return;
|
|
7595
|
+
}
|
|
7596
|
+
var value = !flags.strings[key] && isNumber(val) ? Number(val) : val;
|
|
7597
|
+
setKey(argv, key.split("."), value);
|
|
7598
|
+
(aliases[key] || []).forEach(function(x) {
|
|
7599
|
+
setKey(argv, x.split("."), value);
|
|
7600
|
+
});
|
|
7601
|
+
}
|
|
7602
|
+
Object.keys(flags.bools).forEach(function(key) {
|
|
7603
|
+
setArg(key, defaults[key] === void 0 ? false : defaults[key]);
|
|
7604
|
+
});
|
|
7605
|
+
var notFlags = [];
|
|
7606
|
+
if (args.indexOf("--") !== -1) {
|
|
7607
|
+
notFlags = args.slice(args.indexOf("--") + 1);
|
|
7608
|
+
args = args.slice(0, args.indexOf("--"));
|
|
7609
|
+
}
|
|
7610
|
+
for (var i = 0; i < args.length; i++) {
|
|
7611
|
+
var arg = args[i];
|
|
7612
|
+
var key;
|
|
7613
|
+
var next;
|
|
7614
|
+
if (/^--.+=/.test(arg)) {
|
|
7615
|
+
var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
|
|
7616
|
+
key = m[1];
|
|
7617
|
+
var value = m[2];
|
|
7618
|
+
if (flags.bools[key]) value = value !== "false";
|
|
7619
|
+
setArg(key, value, arg);
|
|
7620
|
+
} else if (/^--no-.+/.test(arg)) {
|
|
7621
|
+
key = arg.match(/^--no-(.+)/)[1];
|
|
7622
|
+
setArg(key, false, arg);
|
|
7623
|
+
} else if (/^--.+/.test(arg)) {
|
|
7624
|
+
key = arg.match(/^--(.+)/)[1];
|
|
7625
|
+
next = args[i + 1];
|
|
7626
|
+
if (next !== void 0 && !/^(-|--)[^-]/.test(next) && !flags.bools[key] && !flags.allBools && (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
|
7627
|
+
setArg(key, next, arg);
|
|
7628
|
+
i += 1;
|
|
7629
|
+
} else if (/^(true|false)$/.test(next)) {
|
|
7630
|
+
setArg(key, next === "true", arg);
|
|
7631
|
+
i += 1;
|
|
7632
|
+
} else setArg(key, flags.strings[key] ? "" : true, arg);
|
|
7633
|
+
} else if (/^-[^-]+/.test(arg)) {
|
|
7634
|
+
var letters = arg.slice(1, -1).split("");
|
|
7635
|
+
var broken = false;
|
|
7636
|
+
for (var j = 0; j < letters.length; j++) {
|
|
7637
|
+
next = arg.slice(j + 2);
|
|
7638
|
+
if (next === "-") {
|
|
7639
|
+
setArg(letters[j], next, arg);
|
|
7640
|
+
continue;
|
|
7641
|
+
}
|
|
7642
|
+
if (/[A-Za-z]/.test(letters[j]) && next[0] === "=") {
|
|
7643
|
+
setArg(letters[j], next.slice(1), arg);
|
|
7644
|
+
broken = true;
|
|
7645
|
+
break;
|
|
7646
|
+
}
|
|
7647
|
+
if (/[A-Za-z]/.test(letters[j]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
|
|
7648
|
+
setArg(letters[j], next, arg);
|
|
7649
|
+
broken = true;
|
|
7650
|
+
break;
|
|
7651
|
+
}
|
|
7652
|
+
if (letters[j + 1] && letters[j + 1].match(/\W/)) {
|
|
7653
|
+
setArg(letters[j], arg.slice(j + 2), arg);
|
|
7654
|
+
broken = true;
|
|
7655
|
+
break;
|
|
7656
|
+
} else setArg(letters[j], flags.strings[letters[j]] ? "" : true, arg);
|
|
7657
|
+
}
|
|
7658
|
+
key = arg.slice(-1)[0];
|
|
7659
|
+
if (!broken && key !== "-") if (args[i + 1] && !/^(-|--)[^-]/.test(args[i + 1]) && !flags.bools[key] && (aliases[key] ? !aliasIsBoolean(key) : true)) {
|
|
7660
|
+
setArg(key, args[i + 1], arg);
|
|
7661
|
+
i += 1;
|
|
7662
|
+
} else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) {
|
|
7663
|
+
setArg(key, args[i + 1] === "true", arg);
|
|
7664
|
+
i += 1;
|
|
7665
|
+
} else setArg(key, flags.strings[key] ? "" : true, arg);
|
|
7666
|
+
} else {
|
|
7667
|
+
if (!flags.unknownFn || flags.unknownFn(arg) !== false) argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
|
|
7668
|
+
if (opts.stopEarly) {
|
|
7669
|
+
argv._.push.apply(argv._, args.slice(i + 1));
|
|
7670
|
+
break;
|
|
7671
|
+
}
|
|
7672
|
+
}
|
|
7673
|
+
}
|
|
7674
|
+
Object.keys(defaults).forEach(function(k) {
|
|
7675
|
+
if (!hasKey(argv, k.split("."))) {
|
|
7676
|
+
setKey(argv, k.split("."), defaults[k]);
|
|
7677
|
+
(aliases[k] || []).forEach(function(x) {
|
|
7678
|
+
setKey(argv, x.split("."), defaults[k]);
|
|
7679
|
+
});
|
|
7680
|
+
}
|
|
7681
|
+
});
|
|
7682
|
+
if (opts["--"]) argv["--"] = notFlags.slice();
|
|
7683
|
+
else notFlags.forEach(function(k) {
|
|
7684
|
+
argv._.push(k);
|
|
7685
|
+
});
|
|
7686
|
+
return argv;
|
|
7687
|
+
};
|
|
7688
|
+
}));
|
|
7689
|
+
|
|
7519
7690
|
//#endregion
|
|
7520
7691
|
//#region src/adapters/base.ts
|
|
7692
|
+
var import_minimist = /* @__PURE__ */ __toESM(require_minimist());
|
|
7521
7693
|
/**
|
|
7522
7694
|
* @maxsim/adapters — Shared base utilities extracted from bin/install.js
|
|
7523
7695
|
*/
|
|
@@ -8115,16 +8287,40 @@ const codexAdapter = {
|
|
|
8115
8287
|
//#region src/install.ts
|
|
8116
8288
|
const pkg = JSON.parse(node_fs.readFileSync(node_path.resolve(__dirname, "..", "package.json"), "utf-8"));
|
|
8117
8289
|
const templatesRoot = node_path.resolve(__dirname, "assets", "templates");
|
|
8118
|
-
const
|
|
8119
|
-
|
|
8120
|
-
|
|
8121
|
-
|
|
8122
|
-
|
|
8123
|
-
|
|
8124
|
-
|
|
8125
|
-
|
|
8126
|
-
|
|
8127
|
-
|
|
8290
|
+
const argv = (0, import_minimist.default)(process.argv.slice(2), {
|
|
8291
|
+
boolean: [
|
|
8292
|
+
"global",
|
|
8293
|
+
"local",
|
|
8294
|
+
"opencode",
|
|
8295
|
+
"claude",
|
|
8296
|
+
"gemini",
|
|
8297
|
+
"codex",
|
|
8298
|
+
"both",
|
|
8299
|
+
"all",
|
|
8300
|
+
"uninstall",
|
|
8301
|
+
"help",
|
|
8302
|
+
"version",
|
|
8303
|
+
"force-statusline",
|
|
8304
|
+
"network"
|
|
8305
|
+
],
|
|
8306
|
+
string: ["config-dir"],
|
|
8307
|
+
alias: {
|
|
8308
|
+
g: "global",
|
|
8309
|
+
l: "local",
|
|
8310
|
+
u: "uninstall",
|
|
8311
|
+
h: "help",
|
|
8312
|
+
c: "config-dir"
|
|
8313
|
+
}
|
|
8314
|
+
});
|
|
8315
|
+
const hasGlobal = !!argv["global"];
|
|
8316
|
+
const hasLocal = !!argv["local"];
|
|
8317
|
+
const hasOpencode = !!argv["opencode"];
|
|
8318
|
+
const hasClaude = !!argv["claude"];
|
|
8319
|
+
const hasGemini = !!argv["gemini"];
|
|
8320
|
+
const hasCodex = !!argv["codex"];
|
|
8321
|
+
const hasBoth = !!argv["both"];
|
|
8322
|
+
const hasAll = !!argv["all"];
|
|
8323
|
+
const hasUninstall = !!argv["uninstall"];
|
|
8128
8324
|
let selectedRuntimes = [];
|
|
8129
8325
|
if (hasAll) selectedRuntimes = [
|
|
8130
8326
|
"claude",
|
|
@@ -8239,31 +8435,10 @@ function getOpencodeGlobalDir() {
|
|
|
8239
8435
|
return opencodeAdapter.getGlobalDir();
|
|
8240
8436
|
}
|
|
8241
8437
|
const banner = "\n" + chalk.cyan(figlet.default.textSync("MAXSIM", { font: "ANSI Shadow" }).split("\n").map((line) => " " + line).join("\n")) + "\n\n MAXSIM " + chalk.dim("v" + pkg.version) + "\n A meta-prompting, context engineering and spec-driven\n development system for Claude Code, OpenCode, Gemini, and Codex.\n";
|
|
8242
|
-
|
|
8243
|
-
|
|
8244
|
-
|
|
8245
|
-
|
|
8246
|
-
if (!nextArg || nextArg.startsWith("-")) {
|
|
8247
|
-
console.error(` ${chalk.yellow("--config-dir requires a path argument")}`);
|
|
8248
|
-
process.exit(1);
|
|
8249
|
-
}
|
|
8250
|
-
return nextArg;
|
|
8251
|
-
}
|
|
8252
|
-
const configDirArg = args.find((arg) => arg.startsWith("--config-dir=") || arg.startsWith("-c="));
|
|
8253
|
-
if (configDirArg) {
|
|
8254
|
-
const value = configDirArg.split("=")[1];
|
|
8255
|
-
if (!value) {
|
|
8256
|
-
console.error(` ${chalk.yellow("--config-dir requires a non-empty path")}`);
|
|
8257
|
-
process.exit(1);
|
|
8258
|
-
}
|
|
8259
|
-
return value;
|
|
8260
|
-
}
|
|
8261
|
-
return null;
|
|
8262
|
-
}
|
|
8263
|
-
const explicitConfigDir = parseConfigDirArg();
|
|
8264
|
-
const hasHelp = args.includes("--help") || args.includes("-h");
|
|
8265
|
-
const hasVersion = args.includes("--version");
|
|
8266
|
-
const forceStatusline = args.includes("--force-statusline");
|
|
8438
|
+
const explicitConfigDir = argv["config-dir"] || null;
|
|
8439
|
+
const hasHelp = !!argv["help"];
|
|
8440
|
+
const hasVersion = !!argv["version"];
|
|
8441
|
+
const forceStatusline = !!argv["force-statusline"];
|
|
8267
8442
|
if (hasVersion) {
|
|
8268
8443
|
console.log(pkg.version);
|
|
8269
8444
|
process.exit(0);
|
|
@@ -9240,7 +9415,7 @@ async function installAllRuntimes(runtimes, isGlobal, isInteractive) {
|
|
|
9240
9415
|
finishInstall(result.settingsPath, result.settings, result.statuslineCommand, useStatusline, result.runtime, isGlobal);
|
|
9241
9416
|
}
|
|
9242
9417
|
}
|
|
9243
|
-
const subcommand =
|
|
9418
|
+
const subcommand = argv._[0];
|
|
9244
9419
|
(async () => {
|
|
9245
9420
|
if (subcommand === "dashboard") {
|
|
9246
9421
|
const { spawn: spawnDash, execSync: execSyncDash } = await import("node:child_process");
|
|
@@ -9269,7 +9444,7 @@ const subcommand = args.find((a) => !a.startsWith("-"));
|
|
|
9269
9444
|
console.log(" Install MAXSIM first: " + chalk.cyan("npx maxsimcli@latest") + "\n");
|
|
9270
9445
|
process.exit(0);
|
|
9271
9446
|
}
|
|
9272
|
-
const forceNetwork =
|
|
9447
|
+
const forceNetwork = !!argv["network"];
|
|
9273
9448
|
const dashboardDir = node_path.dirname(serverPath);
|
|
9274
9449
|
const dashboardConfigPath = node_path.join(node_path.dirname(dashboardDir), "dashboard.json");
|
|
9275
9450
|
let projectCwd = process.cwd();
|