claudekit-cli 3.18.0 → 3.19.0
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 +104 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -23905,6 +23905,7 @@ init_logger();
|
|
|
23905
23905
|
|
|
23906
23906
|
// src/domains/ui/prompts/kit-prompts.ts
|
|
23907
23907
|
init_types2();
|
|
23908
|
+
var MIN_KITS_FOR_MULTISELECT = 2;
|
|
23908
23909
|
async function selectKit(defaultKit, accessibleKits) {
|
|
23909
23910
|
const kits = accessibleKits ?? Object.keys(AVAILABLE_KITS);
|
|
23910
23911
|
const kit = await ie({
|
|
@@ -23921,6 +23922,24 @@ async function selectKit(defaultKit, accessibleKits) {
|
|
|
23921
23922
|
}
|
|
23922
23923
|
return kit;
|
|
23923
23924
|
}
|
|
23925
|
+
async function selectKits(accessibleKits) {
|
|
23926
|
+
if (accessibleKits.length < MIN_KITS_FOR_MULTISELECT) {
|
|
23927
|
+
throw new Error(`selectKits requires at least ${MIN_KITS_FOR_MULTISELECT} accessible kits`);
|
|
23928
|
+
}
|
|
23929
|
+
const selected = await ae({
|
|
23930
|
+
message: "Select ClaudeKit(s) to install:",
|
|
23931
|
+
options: accessibleKits.map((key) => ({
|
|
23932
|
+
value: key,
|
|
23933
|
+
label: AVAILABLE_KITS[key].name,
|
|
23934
|
+
hint: AVAILABLE_KITS[key].description
|
|
23935
|
+
})),
|
|
23936
|
+
required: true
|
|
23937
|
+
});
|
|
23938
|
+
if (lD(selected)) {
|
|
23939
|
+
throw new Error("Kit selection cancelled");
|
|
23940
|
+
}
|
|
23941
|
+
return selected;
|
|
23942
|
+
}
|
|
23924
23943
|
async function getDirectory(defaultDir = ".") {
|
|
23925
23944
|
const dir = await te({
|
|
23926
23945
|
message: "Enter target directory:",
|
|
@@ -24447,6 +24466,9 @@ class PromptsManager {
|
|
|
24447
24466
|
async selectKit(defaultKit, accessibleKits) {
|
|
24448
24467
|
return selectKit(defaultKit, accessibleKits);
|
|
24449
24468
|
}
|
|
24469
|
+
async selectKits(accessibleKits) {
|
|
24470
|
+
return selectKits(accessibleKits);
|
|
24471
|
+
}
|
|
24450
24472
|
async selectVersion(versions, defaultVersion) {
|
|
24451
24473
|
return selectVersion(versions, defaultVersion);
|
|
24452
24474
|
}
|
|
@@ -24550,6 +24572,7 @@ class PromptsManager {
|
|
|
24550
24572
|
|
|
24551
24573
|
// src/commands/init/init-command.ts
|
|
24552
24574
|
init_logger();
|
|
24575
|
+
init_types2();
|
|
24553
24576
|
|
|
24554
24577
|
// src/commands/init/phases/conflict-handler.ts
|
|
24555
24578
|
init_logger();
|
|
@@ -39622,6 +39645,7 @@ async function handleSelection(ctx) {
|
|
|
39622
39645
|
logger.info("Purchase at https://claudekit.cc");
|
|
39623
39646
|
return { ...ctx, cancelled: true };
|
|
39624
39647
|
}
|
|
39648
|
+
let pendingKits;
|
|
39625
39649
|
if (!kitType) {
|
|
39626
39650
|
if (ctx.isNonInteractive) {
|
|
39627
39651
|
if (!accessibleKits || accessibleKits.length === 0) {
|
|
@@ -39632,6 +39656,16 @@ async function handleSelection(ctx) {
|
|
|
39632
39656
|
} else if (accessibleKits?.length === 1) {
|
|
39633
39657
|
kitType = accessibleKits[0];
|
|
39634
39658
|
logger.info(`Using ${AVAILABLE_KITS[kitType].name} (only accessible kit)`);
|
|
39659
|
+
} else if (accessibleKits && accessibleKits.length > 1) {
|
|
39660
|
+
const selectedKits = await ctx.prompts.selectKits(accessibleKits);
|
|
39661
|
+
if (selectedKits.length === 0) {
|
|
39662
|
+
throw new Error("At least one kit must be selected");
|
|
39663
|
+
}
|
|
39664
|
+
kitType = selectedKits[0];
|
|
39665
|
+
if (selectedKits.length > 1) {
|
|
39666
|
+
pendingKits = selectedKits.slice(1);
|
|
39667
|
+
logger.success(`Selected ${selectedKits.length} kits: ${selectedKits.map((k2) => AVAILABLE_KITS[k2].name).join(", ")}`);
|
|
39668
|
+
}
|
|
39635
39669
|
} else {
|
|
39636
39670
|
kitType = await ctx.prompts.selectKit(undefined, accessibleKits);
|
|
39637
39671
|
}
|
|
@@ -39781,7 +39815,9 @@ async function handleSelection(ctx) {
|
|
|
39781
39815
|
kitType,
|
|
39782
39816
|
resolvedDir,
|
|
39783
39817
|
release,
|
|
39784
|
-
selectedVersion
|
|
39818
|
+
selectedVersion,
|
|
39819
|
+
pendingKits,
|
|
39820
|
+
accessibleKits
|
|
39785
39821
|
};
|
|
39786
39822
|
}
|
|
39787
39823
|
// src/commands/init/phases/sync-handler.ts
|
|
@@ -40605,6 +40641,50 @@ async function handleTransforms(ctx) {
|
|
|
40605
40641
|
};
|
|
40606
40642
|
}
|
|
40607
40643
|
// src/commands/init/init-command.ts
|
|
40644
|
+
async function installAdditionalKit(baseCtx, kitType) {
|
|
40645
|
+
const kit = AVAILABLE_KITS[kitType];
|
|
40646
|
+
const github = new GitHubClient;
|
|
40647
|
+
logger.info(`
|
|
40648
|
+
Installing additional kit: ${kit.name}`);
|
|
40649
|
+
let release;
|
|
40650
|
+
if (baseCtx.selectedVersion && !baseCtx.selectedVersion.includes("latest")) {
|
|
40651
|
+
try {
|
|
40652
|
+
release = await github.getReleaseByTag(kit, baseCtx.selectedVersion);
|
|
40653
|
+
logger.success(`Found matching version: ${release.tag_name}`);
|
|
40654
|
+
} catch {
|
|
40655
|
+
logger.warning(`Version ${baseCtx.selectedVersion} not available for ${kit.name}, using latest`);
|
|
40656
|
+
release = await github.getLatestRelease(kit, baseCtx.options.beta);
|
|
40657
|
+
logger.success(`Found: ${release.tag_name}`);
|
|
40658
|
+
}
|
|
40659
|
+
} else {
|
|
40660
|
+
release = await github.getLatestRelease(kit, baseCtx.options.beta);
|
|
40661
|
+
logger.success(`Found: ${release.tag_name}`);
|
|
40662
|
+
}
|
|
40663
|
+
let ctx = {
|
|
40664
|
+
...baseCtx,
|
|
40665
|
+
kit,
|
|
40666
|
+
kitType,
|
|
40667
|
+
release,
|
|
40668
|
+
selectedVersion: release.tag_name,
|
|
40669
|
+
tempDir: undefined,
|
|
40670
|
+
archivePath: undefined,
|
|
40671
|
+
extractDir: undefined
|
|
40672
|
+
};
|
|
40673
|
+
ctx = await handleDownload(ctx);
|
|
40674
|
+
if (ctx.cancelled)
|
|
40675
|
+
return ctx;
|
|
40676
|
+
ctx = await handleTransforms(ctx);
|
|
40677
|
+
if (ctx.cancelled)
|
|
40678
|
+
return ctx;
|
|
40679
|
+
ctx = await handleMigration(ctx);
|
|
40680
|
+
if (ctx.cancelled)
|
|
40681
|
+
return ctx;
|
|
40682
|
+
ctx = await handleMerge(ctx);
|
|
40683
|
+
if (ctx.cancelled)
|
|
40684
|
+
return ctx;
|
|
40685
|
+
ctx = await handlePostInstall(ctx);
|
|
40686
|
+
return ctx;
|
|
40687
|
+
}
|
|
40608
40688
|
function createInitContext(rawOptions, prompts) {
|
|
40609
40689
|
const placeholderOptions = {
|
|
40610
40690
|
dir: ".",
|
|
@@ -40685,6 +40765,28 @@ async function initCommand(options) {
|
|
|
40685
40765
|
if (ctx.cancelled)
|
|
40686
40766
|
return;
|
|
40687
40767
|
}
|
|
40768
|
+
if (!isSyncMode && ctx.pendingKits && ctx.pendingKits.length > 0 && ctx.kitType) {
|
|
40769
|
+
const installedKits = [ctx.kitType];
|
|
40770
|
+
const kitsToInstall = [...ctx.pendingKits];
|
|
40771
|
+
for (const pendingKit of kitsToInstall) {
|
|
40772
|
+
try {
|
|
40773
|
+
ctx = await installAdditionalKit(ctx, pendingKit);
|
|
40774
|
+
if (ctx.cancelled) {
|
|
40775
|
+
logger.warning(`Installation of ${AVAILABLE_KITS[pendingKit].name} was cancelled`);
|
|
40776
|
+
break;
|
|
40777
|
+
}
|
|
40778
|
+
installedKits.push(pendingKit);
|
|
40779
|
+
} catch (error) {
|
|
40780
|
+
logger.error(`Failed to install ${AVAILABLE_KITS[pendingKit].name}: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
40781
|
+
if (installedKits.length > 1) {
|
|
40782
|
+
logger.info(`Successfully installed: ${installedKits.map((k2) => AVAILABLE_KITS[k2].name).join(", ")}`);
|
|
40783
|
+
}
|
|
40784
|
+
throw error;
|
|
40785
|
+
}
|
|
40786
|
+
}
|
|
40787
|
+
logger.success(`
|
|
40788
|
+
Installed ${installedKits.length} kits: ${installedKits.map((k2) => AVAILABLE_KITS[k2].name).join(", ")}`);
|
|
40789
|
+
}
|
|
40688
40790
|
prompts.outro(`Project initialized successfully at ${ctx.resolvedDir}`);
|
|
40689
40791
|
const protectedNote = ctx.customClaudeFiles.length > 0 ? `Your project has been initialized with the latest version.
|
|
40690
40792
|
Protected files (.env, .claude custom files, etc.) were not modified.` : `Your project has been initialized with the latest version.
|
|
@@ -41766,7 +41868,7 @@ var import_picocolors24 = __toESM(require_picocolors(), 1);
|
|
|
41766
41868
|
// package.json
|
|
41767
41869
|
var package_default = {
|
|
41768
41870
|
name: "claudekit-cli",
|
|
41769
|
-
version: "3.
|
|
41871
|
+
version: "3.19.0",
|
|
41770
41872
|
description: "CLI tool for bootstrapping and updating ClaudeKit projects",
|
|
41771
41873
|
type: "module",
|
|
41772
41874
|
repository: {
|