claudekit-cli 4.5.0 → 4.5.1

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/cli-manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "4.5.0",
3
- "generatedAt": "2026-06-18T06:40:54.759Z",
2
+ "version": "4.5.1",
3
+ "generatedAt": "2026-07-03T00:16:46.278Z",
4
4
  "commands": {
5
5
  "agents": {
6
6
  "name": "agents",
package/dist/index.js CHANGED
@@ -64236,7 +64236,7 @@ var package_default;
64236
64236
  var init_package = __esm(() => {
64237
64237
  package_default = {
64238
64238
  name: "claudekit-cli",
64239
- version: "4.5.0",
64239
+ version: "4.5.1",
64240
64240
  description: "CLI tool for bootstrapping and updating ClaudeKit projects",
64241
64241
  type: "module",
64242
64242
  repository: {
@@ -68303,20 +68303,23 @@ async function countMissingCkHookRegistrations(claudeDir3, kit) {
68303
68303
  }
68304
68304
  return missing;
68305
68305
  }
68306
+ function buildInitArgs(options2) {
68307
+ const args = ["init"];
68308
+ if (options2.isGlobal)
68309
+ args.push("-g");
68310
+ if (options2.kit)
68311
+ args.push("--kit", options2.kit);
68312
+ if (options2.yes)
68313
+ args.push("--yes");
68314
+ if (options2.restoreCkHooks)
68315
+ args.push("--restore-ck-hooks");
68316
+ args.push("--install-skills");
68317
+ if (options2.beta)
68318
+ args.push("--beta");
68319
+ return args;
68320
+ }
68306
68321
  function buildInitCommand(isGlobal, kit, beta, yes, restoreCkHooks) {
68307
- const parts = ["ck init"];
68308
- if (isGlobal)
68309
- parts.push("-g");
68310
- if (kit)
68311
- parts.push(`--kit ${kit}`);
68312
- if (yes)
68313
- parts.push("--yes");
68314
- if (restoreCkHooks)
68315
- parts.push("--restore-ck-hooks");
68316
- parts.push("--install-skills");
68317
- if (beta)
68318
- parts.push("--beta");
68319
- return parts.join(" ");
68322
+ return `ck ${buildInitArgs({ isGlobal, kit, beta, yes, restoreCkHooks }).join(" ")}`;
68320
68323
  }
68321
68324
  function resolveCkExecutable(platformName = process.platform) {
68322
68325
  return platformName === "win32" ? "ck.cmd" : "ck";
@@ -68336,6 +68339,17 @@ function resolveCkInitSpawnCommand(initArgs, options2 = {}) {
68336
68339
  args: initArgs
68337
68340
  };
68338
68341
  }
68342
+ function createDefaultSpawnInitFn() {
68343
+ return (spawnArgs) => new Promise((resolve35) => {
68344
+ const initCommand = resolveCkInitSpawnCommand(spawnArgs);
68345
+ const child = spawn2(initCommand.command, initCommand.args, { stdio: "inherit" });
68346
+ child.on("close", (code) => resolve35(code ?? 1));
68347
+ child.on("error", (err) => {
68348
+ logger.verbose(`Failed to spawn ck init: ${err.message}`);
68349
+ resolve35(1);
68350
+ });
68351
+ });
68352
+ }
68339
68353
  async function fetchLatestReleaseTag(kit, beta) {
68340
68354
  try {
68341
68355
  const { GitHubClient: GitHubClient2 } = await Promise.resolve().then(() => (init_github_client(), exports_github_client));
@@ -68376,11 +68390,11 @@ async function findMissingHookDependencies(claudeDir3) {
68376
68390
  }
68377
68391
  async function promptKitUpdate(beta, yes, deps) {
68378
68392
  try {
68379
- const execFn = deps?.execAsyncFn ?? execAsync2;
68380
68393
  const loadFullConfigFn = deps?.loadFullConfigFn ?? CkConfigManager.loadFull;
68381
68394
  const confirmFn = deps?.confirmFn ?? se;
68382
68395
  const isCancelFn = deps?.isCancelFn ?? lD;
68383
68396
  const getSetupFn = deps?.getSetupFn ?? getClaudeKitSetup;
68397
+ const spawnFn = deps?.spawnInitFn ?? createDefaultSpawnInitFn();
68384
68398
  const findMissingHookDepsFn = deps?.findMissingHookDependenciesFn ?? findMissingHookDependencies;
68385
68399
  const setup = await getSetupFn();
68386
68400
  const hasLocal = !!setup.project.metadata;
@@ -68519,12 +68533,23 @@ async function promptKitUpdate(beta, yes, deps) {
68519
68533
  }
68520
68534
  const useBeta = beta || isBetaInstalled;
68521
68535
  if (yes) {
68522
- const initCmd = buildInitCommand(selection.isGlobal, selection.kit, useBeta, true, forceKitReinstall);
68523
- logger.info(`Running: ${initCmd}`);
68536
+ const args = buildInitArgs({
68537
+ isGlobal: selection.isGlobal,
68538
+ kit: selection.kit,
68539
+ beta: useBeta,
68540
+ yes: true,
68541
+ restoreCkHooks: forceKitReinstall
68542
+ });
68543
+ logger.info(`Running: ck ${args.join(" ")}`);
68524
68544
  const s = (deps?.spinnerFn ?? de)();
68525
- s.start("Updating ClaudeKit content...");
68545
+ s.start("Preparing ClaudeKit content update...");
68546
+ s.stop("Running ClaudeKit content update");
68526
68547
  try {
68527
- await execFn(initCmd, { timeout: 300000 });
68548
+ const exitCode = await spawnFn(args);
68549
+ if (exitCode !== 0) {
68550
+ logger.warning("Kit content update may have encountered issues");
68551
+ return;
68552
+ }
68528
68553
  let newKitVersion;
68529
68554
  try {
68530
68555
  const claudeDir3 = selection.isGlobal ? setup.global.path : setup.project.path;
@@ -68532,42 +68557,25 @@ async function promptKitUpdate(beta, yes, deps) {
68532
68557
  newKitVersion = selection.kit ? updatedMetadata?.kits?.[selection.kit]?.version : undefined;
68533
68558
  } catch {}
68534
68559
  if (selection.kit && kitVersion && newKitVersion && kitVersion !== newKitVersion) {
68535
- s.stop(`Kit updated: ${selection.kit}@${kitVersion} -> ${newKitVersion}`);
68560
+ logger.success(`Kit updated: ${selection.kit}@${kitVersion} -> ${newKitVersion}`);
68536
68561
  } else if (selection.kit && newKitVersion) {
68537
- s.stop(`Kit content updated (${selection.kit}@${newKitVersion})`);
68562
+ logger.success(`Kit content updated (${selection.kit}@${newKitVersion})`);
68538
68563
  } else {
68539
- s.stop("Kit content updated");
68564
+ logger.success("Kit content updated");
68540
68565
  }
68541
68566
  } catch (error) {
68542
- s.stop("Kit update finished");
68543
68567
  const errorMsg = error instanceof Error ? error.message : "unknown";
68544
- if (errorMsg.includes("exit code") && !errorMsg.includes("exit code 0")) {
68545
- logger.warning("Kit content update may have encountered issues");
68546
- logger.verbose(`Error: ${errorMsg}`);
68547
- } else {
68548
- logger.verbose(`Init command completed: ${errorMsg}`);
68549
- }
68568
+ logger.warning("Kit content update may have encountered issues");
68569
+ logger.verbose(`Error: ${errorMsg}`);
68550
68570
  }
68551
68571
  } else {
68552
- const args = ["init"];
68553
- if (selection.isGlobal)
68554
- args.push("-g");
68555
- if (forceKitReinstall)
68556
- args.push("--restore-ck-hooks");
68557
- args.push("--install-skills");
68558
- if (useBeta)
68559
- args.push("--beta");
68572
+ const args = buildInitArgs({
68573
+ isGlobal: selection.isGlobal,
68574
+ beta: useBeta,
68575
+ restoreCkHooks: forceKitReinstall
68576
+ });
68560
68577
  const displayCmd = `ck ${args.join(" ")}`;
68561
68578
  logger.info(`Running: ${displayCmd}`);
68562
- const spawnFn = deps?.spawnInitFn ?? ((spawnArgs) => new Promise((resolve35) => {
68563
- const initCommand = resolveCkInitSpawnCommand(spawnArgs);
68564
- const child = spawn2(initCommand.command, initCommand.args, { stdio: "inherit" });
68565
- child.on("close", (code) => resolve35(code ?? 1));
68566
- child.on("error", (err) => {
68567
- logger.verbose(`Failed to spawn ck init: ${err.message}`);
68568
- resolve35(1);
68569
- });
68570
- }));
68571
68579
  const exitCode = await spawnFn(args);
68572
68580
  if (exitCode !== 0) {
68573
68581
  logger.warning("Kit content update may have encountered issues");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudekit-cli",
3
- "version": "4.5.0",
3
+ "version": "4.5.1",
4
4
  "description": "CLI tool for bootstrapping and updating ClaudeKit projects",
5
5
  "type": "module",
6
6
  "repository": {