openkitt 0.2.3 → 0.2.5
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/cli.js +42 -149
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -255592,7 +255592,7 @@ var {
|
|
|
255592
255592
|
} = import__.default;
|
|
255593
255593
|
|
|
255594
255594
|
// src/cli.ts
|
|
255595
|
-
var
|
|
255595
|
+
var import_picocolors12 = __toESM(require_picocolors(), 1);
|
|
255596
255596
|
import { createInterface, emitKeypressEvents } from "node:readline";
|
|
255597
255597
|
import { stdin as input, stdout as output } from "node:process";
|
|
255598
255598
|
import { existsSync as existsSync18, mkdirSync as mkdirSync11, readFileSync as readFileSync13, writeFileSync as writeFileSync15, realpathSync } from "node:fs";
|
|
@@ -256026,8 +256026,7 @@ var WORKSPACE_REQUIRED = new Set([
|
|
|
256026
256026
|
"domain",
|
|
256027
256027
|
"logs",
|
|
256028
256028
|
"status",
|
|
256029
|
-
"versions"
|
|
256030
|
-
"publish"
|
|
256029
|
+
"versions"
|
|
256031
256030
|
]);
|
|
256032
256031
|
var COMMAND_AUTH = {
|
|
256033
256032
|
login: "none",
|
|
@@ -265454,140 +265453,31 @@ function renderPackages(pkgs) {
|
|
|
265454
265453
|
}
|
|
265455
265454
|
}
|
|
265456
265455
|
|
|
265457
|
-
// src/commands/publish.ts
|
|
265458
|
-
var import_picocolors11 = __toESM(require_picocolors(), 1);
|
|
265459
|
-
import { execFileSync as execFileSync2, spawnSync } from "node:child_process";
|
|
265460
|
-
function currentVersion() {
|
|
265461
|
-
try {
|
|
265462
|
-
return execFileSync2("bun", ["-e", 'console.log(require("./package.json").version)'], {
|
|
265463
|
-
encoding: "utf-8",
|
|
265464
|
-
cwd: process.cwd()
|
|
265465
|
-
}).trim();
|
|
265466
|
-
} catch {
|
|
265467
|
-
return "unknown";
|
|
265468
|
-
}
|
|
265469
|
-
}
|
|
265470
|
-
function printUsage2() {
|
|
265471
|
-
console.log("");
|
|
265472
|
-
console.log(` ${import_picocolors11.default.bold(import_picocolors11.default.white("/publish"))} ${import_picocolors11.default.dim("— publish openkitt to npm via bun publish")}`);
|
|
265473
|
-
console.log("");
|
|
265474
|
-
console.log(` ${import_picocolors11.default.cyan("/publish patch")} ${import_picocolors11.default.dim("bug fix 0.1.0 → 0.1.1")}`);
|
|
265475
|
-
console.log(` ${import_picocolors11.default.cyan("/publish minor")} ${import_picocolors11.default.dim("new feature 0.1.0 → 0.2.0")}`);
|
|
265476
|
-
console.log(` ${import_picocolors11.default.cyan("/publish major")} ${import_picocolors11.default.dim("breaking 0.1.0 → 1.0.0")}`);
|
|
265477
|
-
console.log("");
|
|
265478
|
-
console.log(` ${import_picocolors11.default.dim("Flags:")}`);
|
|
265479
|
-
console.log(` ${import_picocolors11.default.dim("--dry-run")} ${import_picocolors11.default.dim("simulate without publishing")}`);
|
|
265480
|
-
console.log(` ${import_picocolors11.default.dim("--otp <n>")} ${import_picocolors11.default.dim("2FA one-time password")}`);
|
|
265481
|
-
console.log(` ${import_picocolors11.default.dim("--tag <t>")} ${import_picocolors11.default.dim("dist-tag (default: latest)")}`);
|
|
265482
|
-
console.log("");
|
|
265483
|
-
}
|
|
265484
|
-
function bumpVersion(bump, dryRun) {
|
|
265485
|
-
if (dryRun)
|
|
265486
|
-
return null;
|
|
265487
|
-
const result = spawnSync("npm", ["version", bump, "--no-git-tag-version"], {
|
|
265488
|
-
encoding: "utf-8",
|
|
265489
|
-
cwd: process.cwd()
|
|
265490
|
-
});
|
|
265491
|
-
if (result.status !== 0) {
|
|
265492
|
-
return null;
|
|
265493
|
-
}
|
|
265494
|
-
return result.stdout.trim().replace(/^v/, "");
|
|
265495
|
-
}
|
|
265496
|
-
async function publishCommand(context, args) {
|
|
265497
|
-
const bump = args[0]?.toLowerCase() ?? "";
|
|
265498
|
-
const isDryRun = context.dryRun || args.includes("--dry-run");
|
|
265499
|
-
const otpIndex = args.indexOf("--otp");
|
|
265500
|
-
const otp = otpIndex !== -1 ? args[otpIndex + 1] ?? "" : "";
|
|
265501
|
-
const tagIndex = args.indexOf("--tag");
|
|
265502
|
-
const tag = tagIndex !== -1 ? args[tagIndex + 1] ?? "" : "";
|
|
265503
|
-
if (!bump || !["patch", "minor", "major"].includes(bump)) {
|
|
265504
|
-
printUsage2();
|
|
265505
|
-
return;
|
|
265506
|
-
}
|
|
265507
|
-
const version = currentVersion();
|
|
265508
|
-
console.log("");
|
|
265509
|
-
console.log(` ${import_picocolors11.default.bold(import_picocolors11.default.white("Publish"))} ${import_picocolors11.default.dim(`openkitt v${version}`)} → ${import_picocolors11.default.cyan(bump)}`);
|
|
265510
|
-
if (isDryRun) {
|
|
265511
|
-
console.log(` ${import_picocolors11.default.yellow("DRY RUN — nothing will be published")}`);
|
|
265512
|
-
}
|
|
265513
|
-
console.log("");
|
|
265514
|
-
if (!context.yes) {
|
|
265515
|
-
const confirmed = await ye({
|
|
265516
|
-
message: isDryRun ? `Run bun publish --dry-run (${bump})?` : `Publish openkitt@${bump} to npm?`,
|
|
265517
|
-
initialValue: false
|
|
265518
|
-
});
|
|
265519
|
-
if (pD(confirmed) || !confirmed) {
|
|
265520
|
-
console.log(import_picocolors11.default.dim(" Publish cancelled."));
|
|
265521
|
-
return;
|
|
265522
|
-
}
|
|
265523
|
-
}
|
|
265524
|
-
if (!isDryRun) {
|
|
265525
|
-
const newVersion = bumpVersion(bump, false);
|
|
265526
|
-
if (!newVersion) {
|
|
265527
|
-
console.log(import_picocolors11.default.red(" ✗ npm version failed. Is the working tree clean?"));
|
|
265528
|
-
return;
|
|
265529
|
-
}
|
|
265530
|
-
console.log(` ${import_picocolors11.default.green("✓")} Version bumped → ${import_picocolors11.default.bold(newVersion)}`);
|
|
265531
|
-
} else {
|
|
265532
|
-
console.log(` ${import_picocolors11.default.dim(" (dry-run: skipping npm version bump)")}`);
|
|
265533
|
-
}
|
|
265534
|
-
const publishArgs = ["publish", "--access", "public"];
|
|
265535
|
-
if (isDryRun)
|
|
265536
|
-
publishArgs.push("--dry-run");
|
|
265537
|
-
if (otp)
|
|
265538
|
-
publishArgs.push("--otp", otp);
|
|
265539
|
-
if (tag)
|
|
265540
|
-
publishArgs.push("--tag", tag);
|
|
265541
|
-
console.log("");
|
|
265542
|
-
console.log(` ${import_picocolors11.default.dim("Running:")} ${import_picocolors11.default.cyan("bun " + publishArgs.join(" "))}`);
|
|
265543
|
-
console.log("");
|
|
265544
|
-
const result = spawnSync("bun", publishArgs, {
|
|
265545
|
-
stdio: "inherit",
|
|
265546
|
-
cwd: process.cwd()
|
|
265547
|
-
});
|
|
265548
|
-
if (result.status !== 0) {
|
|
265549
|
-
console.log("");
|
|
265550
|
-
console.log(import_picocolors11.default.red(" ✗ Publish failed. See output above."));
|
|
265551
|
-
return;
|
|
265552
|
-
}
|
|
265553
|
-
if (!isDryRun) {
|
|
265554
|
-
const tagAfterBump = spawnSync("git", ["tag", `v${currentVersion()}`], { cwd: process.cwd() });
|
|
265555
|
-
if (tagAfterBump.status === 0) {
|
|
265556
|
-
spawnSync("git", ["push", "--follow-tags"], { stdio: "inherit", cwd: process.cwd() });
|
|
265557
|
-
console.log(` ${import_picocolors11.default.green("✓")} Tag pushed to remote.`);
|
|
265558
|
-
}
|
|
265559
|
-
}
|
|
265560
|
-
console.log("");
|
|
265561
|
-
console.log(` ${import_picocolors11.default.green(import_picocolors11.default.bold("✓ Published openkitt to npm"))}`);
|
|
265562
|
-
console.log(` ${import_picocolors11.default.dim("npm view openkitt to verify")}`);
|
|
265563
|
-
console.log("");
|
|
265564
|
-
}
|
|
265565
|
-
|
|
265566
265456
|
// src/commands/help.ts
|
|
265567
|
-
var
|
|
265457
|
+
var import_picocolors11 = __toESM(require_picocolors(), 1);
|
|
265568
265458
|
var W3 = 56;
|
|
265569
265459
|
function box(lines) {
|
|
265570
|
-
console.log(` ${
|
|
265460
|
+
console.log(` ${import_picocolors11.default.dim("╭" + "─".repeat(W3) + "╮")}`);
|
|
265571
265461
|
for (const line of lines) {
|
|
265572
|
-
console.log(` ${
|
|
265462
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${line}`);
|
|
265573
265463
|
}
|
|
265574
|
-
console.log(` ${
|
|
265464
|
+
console.log(` ${import_picocolors11.default.dim("╰" + "─".repeat(W3) + "╯")}`);
|
|
265575
265465
|
}
|
|
265576
265466
|
function divider(label) {
|
|
265577
265467
|
const pad = W3 - 2 - label.length;
|
|
265578
|
-
console.log(` ${
|
|
265468
|
+
console.log(` ${import_picocolors11.default.dim("┌─")} ${import_picocolors11.default.bold(import_picocolors11.default.white(label))} ${import_picocolors11.default.dim("─".repeat(Math.max(0, pad)) + "┐")}`);
|
|
265579
265469
|
}
|
|
265580
265470
|
function cmd(command, argHint, desc) {
|
|
265581
265471
|
const raw = `${command} ${argHint}`;
|
|
265582
265472
|
const p2 = Math.max(0, 28 - raw.length);
|
|
265583
|
-
const argPart = argHint ? ` ${
|
|
265584
|
-
console.log(` ${
|
|
265473
|
+
const argPart = argHint ? ` ${import_picocolors11.default.dim(import_picocolors11.default.italic(argHint))}` : "";
|
|
265474
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.cyan(command)}${argPart}${" ".repeat(p2)} ${import_picocolors11.default.dim(desc)}`);
|
|
265585
265475
|
}
|
|
265586
265476
|
function row(label, value) {
|
|
265587
|
-
console.log(` ${
|
|
265477
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim(label.padEnd(14))} ${import_picocolors11.default.white(value)}`);
|
|
265588
265478
|
}
|
|
265589
265479
|
function sectionEnd() {
|
|
265590
|
-
console.log(` ${
|
|
265480
|
+
console.log(` ${import_picocolors11.default.dim("└" + "─".repeat(W3))}`);
|
|
265591
265481
|
console.log("");
|
|
265592
265482
|
}
|
|
265593
265483
|
function pad(text, width) {
|
|
@@ -265598,8 +265488,8 @@ function pad(text, width) {
|
|
|
265598
265488
|
function renderHelp() {
|
|
265599
265489
|
console.log("");
|
|
265600
265490
|
box([
|
|
265601
|
-
pad(`${
|
|
265602
|
-
pad(`${
|
|
265491
|
+
pad(`${import_picocolors11.default.bold(import_picocolors11.default.white("KITT"))} ${import_picocolors11.default.dim("— AI-powered monorepo CLI")}`, W3 - 1),
|
|
265492
|
+
pad(`${import_picocolors11.default.dim("scaffold · deploy · manage · iterate")}`, W3 - 1)
|
|
265603
265493
|
]);
|
|
265604
265494
|
console.log("");
|
|
265605
265495
|
divider("Setup");
|
|
@@ -265634,7 +265524,6 @@ function renderHelp() {
|
|
|
265634
265524
|
cmd("/versions set", "<integration> <version>", "Pin a specific version");
|
|
265635
265525
|
sectionEnd();
|
|
265636
265526
|
divider("Other");
|
|
265637
|
-
cmd("/publish", "<patch|minor|major>", "Publish openkitt to npm");
|
|
265638
265527
|
cmd("/help", "", "Show this help message");
|
|
265639
265528
|
cmd("/exit", "", "Exit KITT");
|
|
265640
265529
|
sectionEnd();
|
|
@@ -265643,16 +265532,16 @@ function renderHelp() {
|
|
|
265643
265532
|
row("backend", "hono expressjs");
|
|
265644
265533
|
sectionEnd();
|
|
265645
265534
|
divider("Integrations");
|
|
265646
|
-
console.log(` ${
|
|
265647
|
-
console.log(` ${
|
|
265648
|
-
console.log(` ${
|
|
265649
|
-
console.log(` ${
|
|
265650
|
-
console.log(` ${
|
|
265651
|
-
console.log(` ${
|
|
265652
|
-
console.log(` ${
|
|
265653
|
-
console.log(` ${
|
|
265654
|
-
console.log(` ${
|
|
265655
|
-
console.log(` ${
|
|
265535
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("databases")} ${[import_picocolors11.default.blue("[postgresql]"), import_picocolors11.default.blue("[mysql]"), import_picocolors11.default.blue("[sqlite]")].join(" ")}`);
|
|
265536
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("orm")} ${[import_picocolors11.default.cyan("[drizzle]"), import_picocolors11.default.cyan("[prisma]")].join(" ")}`);
|
|
265537
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("auth")} ${import_picocolors11.default.yellow("[better-auth]")}`);
|
|
265538
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("payments")} ${[import_picocolors11.default.green("[stripe]"), import_picocolors11.default.green("[polar]")].join(" ")}`);
|
|
265539
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("email")} ${import_picocolors11.default.magenta("[resend]")}`);
|
|
265540
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("queues")} ${[import_picocolors11.default.red("[bullmq]"), import_picocolors11.default.red("[trigger-dev]")].join(" ")}`);
|
|
265541
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("cache")} ${import_picocolors11.default.red("[redis]")}`);
|
|
265542
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("ui")} ${[import_picocolors11.default.cyan("[tailwindcss]"), import_picocolors11.default.white("[shadcn]")].join(" ")}`);
|
|
265543
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("analytics")} ${[import_picocolors11.default.green("[posthog]"), import_picocolors11.default.red("[sentry]")].join(" ")}`);
|
|
265544
|
+
console.log(` ${import_picocolors11.default.dim("│")} ${import_picocolors11.default.dim("testing")} ${[import_picocolors11.default.yellow("[vitest]"), import_picocolors11.default.cyan("[playwright]"), import_picocolors11.default.magenta("[storybook]")].join(" ")}`);
|
|
265656
265545
|
sectionEnd();
|
|
265657
265546
|
divider("CLI Flags");
|
|
265658
265547
|
row("--verbose", "Enable verbose logging");
|
|
@@ -265673,7 +265562,7 @@ async function helpCommand(_context, _args) {
|
|
|
265673
265562
|
// package.json
|
|
265674
265563
|
var package_default = {
|
|
265675
265564
|
name: "openkitt",
|
|
265676
|
-
version: "0.2.
|
|
265565
|
+
version: "0.2.5",
|
|
265677
265566
|
description: "AI-powered monorepo scaffolding CLI",
|
|
265678
265567
|
keywords: [
|
|
265679
265568
|
"cli",
|
|
@@ -265765,19 +265654,18 @@ var commandRegistry = {
|
|
|
265765
265654
|
versions: { handler: versionsCommand },
|
|
265766
265655
|
list: { handler: listCommand },
|
|
265767
265656
|
run: { handler: runCommand },
|
|
265768
|
-
publish: { handler: publishCommand },
|
|
265769
265657
|
help: { handler: helpCommand }
|
|
265770
265658
|
};
|
|
265771
265659
|
function displayBanner() {
|
|
265772
|
-
console.log(
|
|
265773
|
-
console.log(
|
|
265774
|
-
console.log(
|
|
265775
|
-
console.log(
|
|
265776
|
-
console.log(
|
|
265660
|
+
console.log(import_picocolors12.default.cyan(" ______ _______________________"));
|
|
265661
|
+
console.log(import_picocolors12.default.cyan(" ___ //_/___ /__ __/__ __/"));
|
|
265662
|
+
console.log(import_picocolors12.default.cyan(" __ ,< __ / __ / __ / "));
|
|
265663
|
+
console.log(import_picocolors12.default.cyan(" _ /| | __/ / _ / _ / "));
|
|
265664
|
+
console.log(import_picocolors12.default.cyan(" /_/ |_| /___/ /_/ /_/ "));
|
|
265777
265665
|
console.log("");
|
|
265778
|
-
console.log(` ${
|
|
265779
|
-
console.log(` ${
|
|
265780
|
-
console.log(` ${
|
|
265666
|
+
console.log(` ${import_picocolors12.default.bold(import_picocolors12.default.white("KITT"))} ${import_picocolors12.default.dim("v" + APP_VERSION)} ${import_picocolors12.default.dim("— AI-Powered App Scaffolding CLI")}`);
|
|
265667
|
+
console.log(` ${import_picocolors12.default.dim("/login → /init → /create → /deploy → /publish")}`);
|
|
265668
|
+
console.log(` ${import_picocolors12.default.dim("Type /help for all commands")}`);
|
|
265781
265669
|
console.log("");
|
|
265782
265670
|
}
|
|
265783
265671
|
function tokenizeCommand(inputValue) {
|
|
@@ -265915,7 +265803,7 @@ async function dispatchCommand(commandLine, context) {
|
|
|
265915
265803
|
}
|
|
265916
265804
|
const authCheck = await checkAuthGuard(parsed.key);
|
|
265917
265805
|
if (!authCheck.allowed) {
|
|
265918
|
-
console.log(
|
|
265806
|
+
console.log(import_picocolors12.default.red(`✗ ${authCheck.message}`));
|
|
265919
265807
|
return "continue";
|
|
265920
265808
|
}
|
|
265921
265809
|
await resolveAndRunHandler(route, context, parsed.args, parsed.key);
|
|
@@ -265924,7 +265812,7 @@ async function dispatchCommand(commandLine, context) {
|
|
|
265924
265812
|
async function runSingleCommand(commandLine, context) {
|
|
265925
265813
|
const parsed = parseCommand(commandLine);
|
|
265926
265814
|
if (parsed && STATE_CHANGING_COMMANDS.has(parsed.key) && !context.yes) {
|
|
265927
|
-
console.log(
|
|
265815
|
+
console.log(import_picocolors12.default.red(`✗ Non-interactive mode requires --yes for state-changing commands.
|
|
265928
265816
|
Usage: npx openkitt --run "${parsed.key}" --yes`));
|
|
265929
265817
|
return 1;
|
|
265930
265818
|
}
|
|
@@ -265988,7 +265876,7 @@ function resolvePrompt() {
|
|
|
265988
265876
|
const name = manifest?.workspace.name;
|
|
265989
265877
|
if (!name)
|
|
265990
265878
|
return `${BASE_PROMPT} > `;
|
|
265991
|
-
return `${BASE_PROMPT} ${
|
|
265879
|
+
return `${BASE_PROMPT} ${import_picocolors12.default.cyan(`[${name}]`)} > `;
|
|
265992
265880
|
}
|
|
265993
265881
|
async function startRepl(context) {
|
|
265994
265882
|
const rl = createInterface({ input, output, prompt: resolvePrompt(), completer: makeCompleter(commandRegistry) });
|
|
@@ -266048,8 +265936,12 @@ async function startRepl(context) {
|
|
|
266048
265936
|
console.log("Use /exit to quit.");
|
|
266049
265937
|
rl.prompt();
|
|
266050
265938
|
});
|
|
265939
|
+
let intentionalClose = false;
|
|
266051
265940
|
rl.on("close", () => {
|
|
266052
|
-
|
|
265941
|
+
if (intentionalClose)
|
|
265942
|
+
process.exit(0);
|
|
265943
|
+
else
|
|
265944
|
+
rl.prompt();
|
|
266053
265945
|
});
|
|
266054
265946
|
rl.prompt();
|
|
266055
265947
|
rl.on("line", async (line) => {
|
|
@@ -266057,6 +265949,7 @@ async function startRepl(context) {
|
|
|
266057
265949
|
try {
|
|
266058
265950
|
const result = await dispatchCommand(line, context);
|
|
266059
265951
|
if (result === "exit") {
|
|
265952
|
+
intentionalClose = true;
|
|
266060
265953
|
rl.close();
|
|
266061
265954
|
return;
|
|
266062
265955
|
}
|
|
@@ -266064,7 +265957,7 @@ async function startRepl(context) {
|
|
|
266064
265957
|
rl.prompt();
|
|
266065
265958
|
} catch (error4) {
|
|
266066
265959
|
const message = error4 instanceof Error ? error4.message : "Unexpected error.";
|
|
266067
|
-
console.error(
|
|
265960
|
+
console.error(import_picocolors12.default.red(message));
|
|
266068
265961
|
rl.setPrompt(resolvePrompt());
|
|
266069
265962
|
rl.prompt();
|
|
266070
265963
|
}
|