claudeskill-cli 1.0.1 → 1.0.2
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 +15 -35
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7625,12 +7625,12 @@ var init_dist2 = __esm(() => {
|
|
|
7625
7625
|
|
|
7626
7626
|
// src/types/kit.ts
|
|
7627
7627
|
function isValidKitType(value) {
|
|
7628
|
-
return value === "engineer"
|
|
7628
|
+
return value === "engineer";
|
|
7629
7629
|
}
|
|
7630
7630
|
var KitType, KitConfigSchema, AVAILABLE_KITS, NEVER_COPY_PATTERNS, USER_CONFIG_PATTERNS, PROTECTED_PATTERNS;
|
|
7631
7631
|
var init_kit = __esm(() => {
|
|
7632
7632
|
init_zod();
|
|
7633
|
-
KitType = exports_external.enum(["engineer"
|
|
7633
|
+
KitType = exports_external.enum(["engineer"]);
|
|
7634
7634
|
KitConfigSchema = exports_external.object({
|
|
7635
7635
|
name: exports_external.string(),
|
|
7636
7636
|
repo: exports_external.string(),
|
|
@@ -7643,12 +7643,6 @@ var init_kit = __esm(() => {
|
|
|
7643
7643
|
repo: "claudeskill-engineer",
|
|
7644
7644
|
owner: "luan-thnh",
|
|
7645
7645
|
description: "Engineering toolkit for building with Claude"
|
|
7646
|
-
},
|
|
7647
|
-
marketing: {
|
|
7648
|
-
name: "ClaudeSkill Marketing",
|
|
7649
|
-
repo: "claudeskill-marketing",
|
|
7650
|
-
owner: "luan-thnh",
|
|
7651
|
-
description: "Marketing automation toolkit for Claude"
|
|
7652
7646
|
}
|
|
7653
7647
|
};
|
|
7654
7648
|
NEVER_COPY_PATTERNS = [
|
|
@@ -23172,15 +23166,7 @@ async function detectMetadataFormat(claudeDir) {
|
|
|
23172
23166
|
};
|
|
23173
23167
|
}
|
|
23174
23168
|
if (parsed.name || parsed.version || parsed.files) {
|
|
23175
|
-
|
|
23176
|
-
const nameToCheck = parsed.name || "";
|
|
23177
|
-
if (/\bengineer\b/i.test(nameToCheck)) {
|
|
23178
|
-
detectedKit = "engineer";
|
|
23179
|
-
} else if (/\bmarketing\b/i.test(nameToCheck)) {
|
|
23180
|
-
detectedKit = "marketing";
|
|
23181
|
-
} else {
|
|
23182
|
-
detectedKit = "engineer";
|
|
23183
|
-
}
|
|
23169
|
+
const detectedKit = "engineer";
|
|
23184
23170
|
return { format: "legacy", metadata: parsed, detectedKit };
|
|
23185
23171
|
}
|
|
23186
23172
|
logger.warning("Metadata file exists but has unrecognized format (missing kits, name, version, or files)");
|
|
@@ -23292,9 +23278,6 @@ function getInstalledKits(metadata) {
|
|
|
23292
23278
|
if (/\bengineer\b/i.test(nameToCheck)) {
|
|
23293
23279
|
kits.push("engineer");
|
|
23294
23280
|
}
|
|
23295
|
-
if (/\bmarketing\b/i.test(nameToCheck)) {
|
|
23296
|
-
kits.push("marketing");
|
|
23297
|
-
}
|
|
23298
23281
|
if (kits.length > 0) {
|
|
23299
23282
|
return kits;
|
|
23300
23283
|
}
|
|
@@ -27583,14 +27566,20 @@ class FileDownloader {
|
|
|
27583
27566
|
await mkdir9(destDir, { recursive: true });
|
|
27584
27567
|
output.info(`Downloading ${name}${size ? ` (${formatBytes(size)})` : ""}...`);
|
|
27585
27568
|
const headers = {};
|
|
27569
|
+
const isGitHubTarballUrl = url.includes("api.github.com") && (url.includes("/tarball/") || url.includes("/zipball/"));
|
|
27586
27570
|
if (token && url.includes("api.github.com")) {
|
|
27587
27571
|
headers.Authorization = `Bearer ${token}`;
|
|
27588
|
-
headers.Accept = "application/octet-stream";
|
|
27589
27572
|
headers["X-GitHub-Api-Version"] = "2022-11-28";
|
|
27573
|
+
if (!isGitHubTarballUrl) {
|
|
27574
|
+
headers.Accept = "application/octet-stream";
|
|
27575
|
+
}
|
|
27590
27576
|
} else {
|
|
27591
27577
|
headers.Accept = "application/octet-stream";
|
|
27592
27578
|
}
|
|
27593
|
-
const response = await fetch(url, {
|
|
27579
|
+
const response = await fetch(url, {
|
|
27580
|
+
headers,
|
|
27581
|
+
redirect: "follow"
|
|
27582
|
+
});
|
|
27594
27583
|
if (!response.ok) {
|
|
27595
27584
|
throw new DownloadError(`Failed to download: ${response.statusText}`);
|
|
27596
27585
|
}
|
|
@@ -38289,7 +38278,7 @@ var import_fs_extra13 = __toESM(require_lib(), 1);
|
|
|
38289
38278
|
var import_proper_lockfile2 = __toESM(require_proper_lockfile(), 1);
|
|
38290
38279
|
async function writeManifest(claudeDir, kitName, version, scope, kitType, trackedFiles, userConfigFiles) {
|
|
38291
38280
|
const metadataPath = join46(claudeDir, "metadata.json");
|
|
38292
|
-
const kit = kitType ||
|
|
38281
|
+
const kit = kitType || "engineer";
|
|
38293
38282
|
await import_fs_extra13.ensureFile(metadataPath);
|
|
38294
38283
|
let release = null;
|
|
38295
38284
|
try {
|
|
@@ -41692,7 +41681,8 @@ async function handleSelection(ctx) {
|
|
|
41692
41681
|
const existingKitTypes = Object.keys(existingMetadata.kits);
|
|
41693
41682
|
const otherKits = existingKitTypes.filter((k2) => k2 !== kitType);
|
|
41694
41683
|
if (otherKits.length > 0) {
|
|
41695
|
-
const
|
|
41684
|
+
const kitsRecord = existingMetadata.kits;
|
|
41685
|
+
const existingKitsDisplay = otherKits.map((k2) => `${k2}@${kitsRecord[k2]?.version || "unknown"}`).join(", ");
|
|
41696
41686
|
if (!ctx.options.yes && !ctx.isNonInteractive) {
|
|
41697
41687
|
try {
|
|
41698
41688
|
const confirmAdd = await ctx.prompts.confirm(`${existingKitsDisplay} already installed. Add ${kit.name} alongside?`);
|
|
@@ -41837,18 +41827,8 @@ Run 'cs init' to update.`, "Legacy Installation");
|
|
|
41837
41827
|
let kitType = ctx.options.kit;
|
|
41838
41828
|
if (!kitType) {
|
|
41839
41829
|
const engineerMeta = await readKitManifest(claudeDir, "engineer");
|
|
41840
|
-
|
|
41841
|
-
if (engineerMeta && marketingMeta) {
|
|
41842
|
-
if (!ctx.isNonInteractive) {
|
|
41843
|
-
kitType = await ctx.prompts.selectKit();
|
|
41844
|
-
} else {
|
|
41845
|
-
logger.error("Multiple kits installed. Please specify --kit engineer or --kit marketing");
|
|
41846
|
-
return { ...ctx, cancelled: true };
|
|
41847
|
-
}
|
|
41848
|
-
} else if (engineerMeta) {
|
|
41830
|
+
if (engineerMeta) {
|
|
41849
41831
|
kitType = "engineer";
|
|
41850
|
-
} else if (marketingMeta) {
|
|
41851
|
-
kitType = "marketing";
|
|
41852
41832
|
} else {
|
|
41853
41833
|
logger.error("Cannot sync: no kit installation found in metadata");
|
|
41854
41834
|
return { ...ctx, cancelled: true };
|