claudekit-cli 3.41.0 → 3.41.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/dist/index.js +32 -25
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -57632,7 +57632,7 @@ var package_default;
|
|
|
57632
57632
|
var init_package = __esm(() => {
|
|
57633
57633
|
package_default = {
|
|
57634
57634
|
name: "claudekit-cli",
|
|
57635
|
-
version: "3.41.
|
|
57635
|
+
version: "3.41.1",
|
|
57636
57636
|
description: "CLI tool for bootstrapping and updating ClaudeKit projects",
|
|
57637
57637
|
type: "module",
|
|
57638
57638
|
repository: {
|
|
@@ -93449,7 +93449,10 @@ class SettingsProcessor {
|
|
|
93449
93449
|
}
|
|
93450
93450
|
let transformed = content;
|
|
93451
93451
|
const rawPrefix = prefix.replace(/"/g, "");
|
|
93452
|
-
transformed = transformed.replace(/(node\s+)(?:\.\/)?(\.claude\/[^\s"\\]+)/g,
|
|
93452
|
+
transformed = transformed.replace(/(node\s+)(?:\.\/)?(\.claude\/[^\s"\\]+)([^"\\]*)/g, (_match, nodePrefix, relativePath, suffix) => {
|
|
93453
|
+
const normalizedRelativePath = relativePath.replace(/\\/g, "/");
|
|
93454
|
+
return rawPrefix === "$CLAUDE_PROJECT_DIR" ? `${nodePrefix}\\"${rawPrefix}\\"/${normalizedRelativePath}${suffix}` : `${nodePrefix}\\"${rawPrefix}/${normalizedRelativePath}\\"${suffix}`;
|
|
93455
|
+
});
|
|
93453
93456
|
if (rawPrefix.includes("HOME") || rawPrefix.includes("USERPROFILE")) {
|
|
93454
93457
|
transformed = transformed.replace(/\$CLAUDE_PROJECT_DIR/g, rawPrefix);
|
|
93455
93458
|
transformed = transformed.replace(/%CLAUDE_PROJECT_DIR%/g, rawPrefix);
|
|
@@ -93495,33 +93498,38 @@ class SettingsProcessor {
|
|
|
93495
93498
|
fixSingleCommandPath(cmd) {
|
|
93496
93499
|
if (!cmd.includes(".claude/") && !cmd.includes(".claude\\"))
|
|
93497
93500
|
return cmd;
|
|
93498
|
-
const
|
|
93499
|
-
if (
|
|
93500
|
-
const
|
|
93501
|
-
return
|
|
93502
|
-
}
|
|
93503
|
-
const
|
|
93504
|
-
|
|
93505
|
-
|
|
93506
|
-
|
|
93507
|
-
|
|
93508
|
-
|
|
93509
|
-
|
|
93510
|
-
|
|
93511
|
-
|
|
93501
|
+
const bareRelativeMatch = cmd.match(/^(node\s+)(?:\.\/)?(\.claude[/\\][^\s"]+)(.*)$/);
|
|
93502
|
+
if (bareRelativeMatch) {
|
|
93503
|
+
const [, nodePrefix, relativePath, suffix] = bareRelativeMatch;
|
|
93504
|
+
return this.formatCommandPath(nodePrefix, this.isGlobal ? "$HOME" : "$CLAUDE_PROJECT_DIR", relativePath, suffix);
|
|
93505
|
+
}
|
|
93506
|
+
const embeddedQuotedMatch = cmd.match(/^(node\s+)"(\$HOME|\$CLAUDE_PROJECT_DIR|%USERPROFILE%|%CLAUDE_PROJECT_DIR%)[/\\](\.claude[/\\][^"]+)"(.*)$/);
|
|
93507
|
+
if (embeddedQuotedMatch) {
|
|
93508
|
+
const [, nodePrefix, capturedVar, relativePath, suffix] = embeddedQuotedMatch;
|
|
93509
|
+
return this.formatCommandPath(nodePrefix, capturedVar, relativePath, suffix);
|
|
93510
|
+
}
|
|
93511
|
+
const varOnlyQuotedMatch = cmd.match(/^(node\s+)"(\$HOME|\$CLAUDE_PROJECT_DIR|%USERPROFILE%|%CLAUDE_PROJECT_DIR%)"[/\\](\.claude[/\\][^\s"]+)(.*)$/);
|
|
93512
|
+
if (varOnlyQuotedMatch) {
|
|
93513
|
+
const [, nodePrefix, capturedVar, relativePath, suffix] = varOnlyQuotedMatch;
|
|
93514
|
+
return this.formatCommandPath(nodePrefix, capturedVar, relativePath, suffix);
|
|
93515
|
+
}
|
|
93516
|
+
const tildeMatch = cmd.match(/^(node\s+)~[/\\](\.claude[/\\][^\s"]+)(.*)$/);
|
|
93512
93517
|
if (tildeMatch) {
|
|
93513
|
-
const [, nodePrefix,
|
|
93514
|
-
return
|
|
93518
|
+
const [, nodePrefix, relativePath, suffix] = tildeMatch;
|
|
93519
|
+
return this.formatCommandPath(nodePrefix, "$HOME", relativePath, suffix);
|
|
93515
93520
|
}
|
|
93516
|
-
const
|
|
93517
|
-
const unquotedMatch = cmd.match(unquotedRe);
|
|
93521
|
+
const unquotedMatch = cmd.match(/^(node\s+)(\$HOME|\$CLAUDE_PROJECT_DIR|%USERPROFILE%|%CLAUDE_PROJECT_DIR%)[/\\](\.claude[/\\][^\s"]+)(.*)$/);
|
|
93518
93522
|
if (unquotedMatch) {
|
|
93519
|
-
const [, nodePrefix, capturedVar,
|
|
93520
|
-
|
|
93521
|
-
return `${nodePrefix}"${canonicalVar}/${restPath.replace(/\\/g, "/")}"`;
|
|
93523
|
+
const [, nodePrefix, capturedVar, relativePath, suffix] = unquotedMatch;
|
|
93524
|
+
return this.formatCommandPath(nodePrefix, capturedVar, relativePath, suffix);
|
|
93522
93525
|
}
|
|
93523
93526
|
return cmd;
|
|
93524
93527
|
}
|
|
93528
|
+
formatCommandPath(nodePrefix, capturedVar, relativePath, suffix = "") {
|
|
93529
|
+
const canonicalVar = this.canonicalizePathVar(capturedVar);
|
|
93530
|
+
const normalizedRelativePath = relativePath.replace(/\\/g, "/").replace(/^\/+/, "");
|
|
93531
|
+
return canonicalVar === "$CLAUDE_PROJECT_DIR" ? `${nodePrefix}"${canonicalVar}"/${normalizedRelativePath}${suffix}` : `${nodePrefix}"${canonicalVar}/${normalizedRelativePath}"${suffix}`;
|
|
93532
|
+
}
|
|
93525
93533
|
canonicalizePathVar(capturedVar) {
|
|
93526
93534
|
switch (capturedVar) {
|
|
93527
93535
|
case "%USERPROFILE%":
|
|
@@ -93570,7 +93578,6 @@ class SettingsProcessor {
|
|
|
93570
93578
|
logger.warning("Failed to read settings file for team hooks injection");
|
|
93571
93579
|
return;
|
|
93572
93580
|
}
|
|
93573
|
-
const prefix = this.isGlobal ? "$HOME" : "$CLAUDE_PROJECT_DIR";
|
|
93574
93581
|
if (!settings.hooks) {
|
|
93575
93582
|
settings.hooks = {};
|
|
93576
93583
|
}
|
|
@@ -93581,7 +93588,7 @@ class SettingsProcessor {
|
|
|
93581
93588
|
{ event: "TeammateIdle", handler: "teammate-idle-handler.cjs" }
|
|
93582
93589
|
];
|
|
93583
93590
|
for (const { event, handler } of teamHooks) {
|
|
93584
|
-
const hookCommand =
|
|
93591
|
+
const hookCommand = this.formatCommandPath("node ", this.isGlobal ? "$HOME" : "$CLAUDE_PROJECT_DIR", `.claude/hooks/${handler}`);
|
|
93585
93592
|
const eventHooks = settings.hooks[event];
|
|
93586
93593
|
if (eventHooks && eventHooks.length > 0)
|
|
93587
93594
|
continue;
|