claudekit-cli 3.42.2-dev.5 → 3.42.2-dev.6

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": "3.42.2-dev.5",
3
- "generatedAt": "2026-04-30T19:53:41.311Z",
2
+ "version": "3.42.2-dev.6",
3
+ "generatedAt": "2026-05-04T15:17:33.645Z",
4
4
  "commands": {
5
5
  "agents": {
6
6
  "name": "agents",
package/dist/index.js CHANGED
@@ -43804,6 +43804,26 @@ function repairClaudeNodeCommandPath(cmd, root) {
43804
43804
  const command = formatCanonicalClaudeCommand(nodePrefix, root, relativePath, suffix);
43805
43805
  return { command, changed: command !== cmd, issue: "invalid-format" };
43806
43806
  }
43807
+ const absoluteMatch = cmd.match(/^(node\s+)"((?:[A-Za-z]:[/\\]|\/)[^"]*?[/\\]\.claude[/\\][^"]+)"(.*)$/) ?? cmd.match(/^(node\s+)((?:[A-Za-z]:[\\/]|\/)[^\s"]*?[\\/]\.claude[\\/][^\s"]+)(.*)$/);
43808
+ if (absoluteMatch) {
43809
+ const [, nodePrefix, absolutePath, suffix] = absoluteMatch;
43810
+ const normalizedAbsPath = absolutePath.replace(/\\/g, "/");
43811
+ const dotClaudeIdx = normalizedAbsPath.indexOf("/.claude/");
43812
+ if (dotClaudeIdx === -1) {
43813
+ return { command: cmd, changed: false, issue: null };
43814
+ }
43815
+ const isWin2 = process.platform === "win32";
43816
+ const cmp = (s) => isWin2 ? s.toLowerCase() : s;
43817
+ const globalRoots = [
43818
+ `${homedir11().replace(/\\/g, "/").replace(/\/+$/, "")}/.claude/`,
43819
+ `${PathResolver.getGlobalKitDir().replace(/\\/g, "/").replace(/\/+$/, "")}/`
43820
+ ];
43821
+ const isUnderGlobal = globalRoots.some((g2) => cmp(normalizedAbsPath).startsWith(cmp(g2)));
43822
+ const resolvedRoot = isUnderGlobal ? "$HOME" : root;
43823
+ const relativePath = normalizedAbsPath.slice(dotClaudeIdx + 1);
43824
+ const command = formatCanonicalClaudeCommand(nodePrefix, resolvedRoot, relativePath, suffix);
43825
+ return { command, changed: command !== cmd, issue: "invalid-format" };
43826
+ }
43807
43827
  return { command: cmd, changed: false, issue: null };
43808
43828
  }
43809
43829
  function normalizeCommand(cmd) {
@@ -62369,7 +62389,7 @@ var package_default;
62369
62389
  var init_package = __esm(() => {
62370
62390
  package_default = {
62371
62391
  name: "claudekit-cli",
62372
- version: "3.42.2-dev.5",
62392
+ version: "3.42.2-dev.6",
62373
62393
  description: "CLI tool for bootstrapping and updating ClaudeKit projects",
62374
62394
  type: "module",
62375
62395
  repository: {
@@ -104868,24 +104888,63 @@ import { mkdir as mkdir34 } from "node:fs/promises";
104868
104888
  import { join as join135, resolve as resolve38 } from "node:path";
104869
104889
 
104870
104890
  // src/domains/github/kit-access-checker.ts
104891
+ init_error2();
104871
104892
  init_logger();
104872
104893
  init_safe_spinner();
104873
104894
  init_types3();
104895
+ init_types3();
104874
104896
  init_github_client();
104897
+ function toGitHubError(error) {
104898
+ if (error instanceof GitHubError) {
104899
+ return error;
104900
+ }
104901
+ const classified = classifyGitHubError(error, "check repository access");
104902
+ const actions = suggestActions(classified.category);
104903
+ const formattedActions = formatActions(actions);
104904
+ const messageParts = [classified.message];
104905
+ if (classified.details) {
104906
+ messageParts.push(`
104907
+ ${classified.details}`);
104908
+ }
104909
+ if (formattedActions) {
104910
+ messageParts.push(`
104911
+ Solutions:${formattedActions}`);
104912
+ }
104913
+ messageParts.push(`
104914
+ Need help? Run with: ck new --verbose`);
104915
+ return new GitHubError(messageParts.join(`
104916
+ `), classified.httpStatus);
104917
+ }
104875
104918
  async function detectAccessibleKits() {
104876
104919
  const spinner = createSpinner("Checking kit access...").start();
104877
104920
  const github = new GitHubClient;
104878
- const results = await Promise.all(Object.entries(AVAILABLE_KITS).map(async ([type, config]) => {
104879
- try {
104880
- await github.checkAccess(config);
104881
- logger.debug(`Access confirmed: ${type}`);
104882
- return type;
104883
- } catch {
104884
- logger.debug(`No access to ${type}`);
104885
- return null;
104886
- }
104921
+ const settled = await Promise.allSettled(Object.entries(AVAILABLE_KITS).map(async ([type, config]) => {
104922
+ await github.checkAccess(config);
104923
+ logger.debug(`Access confirmed: ${type}`);
104924
+ return type;
104887
104925
  }));
104888
- const accessible = results.filter((kit) => kit !== null);
104926
+ const accessible = [];
104927
+ const fatalErrors = [];
104928
+ for (const result of settled) {
104929
+ if (result.status === "fulfilled") {
104930
+ accessible.push(result.value);
104931
+ } else {
104932
+ const err = result.reason;
104933
+ const status = err?.statusCode ?? err?.status;
104934
+ if (status === 404) {
104935
+ logger.debug("No access to kit (404)");
104936
+ } else {
104937
+ fatalErrors.push(toGitHubError(err));
104938
+ }
104939
+ }
104940
+ }
104941
+ if (fatalErrors.length > 0) {
104942
+ spinner.fail("Kit access check failed");
104943
+ for (const extra of fatalErrors.slice(1)) {
104944
+ logger.debug(`Additional kit access error (suppressed): ${extra.message}`);
104945
+ }
104946
+ throw fatalErrors[0];
104947
+ }
104889
104948
  if (accessible.length === 0) {
104890
104949
  spinner.fail("No kit access found");
104891
104950
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudekit-cli",
3
- "version": "3.42.2-dev.5",
3
+ "version": "3.42.2-dev.6",
4
4
  "description": "CLI tool for bootstrapping and updating ClaudeKit projects",
5
5
  "type": "module",
6
6
  "repository": {