feat: add skills search and website
This commit is contained in:
@@ -51,8 +51,8 @@ function buildNodeInstallCommand(
|
||||
switch (prefs.nodeManager) {
|
||||
case "pnpm":
|
||||
return ["pnpm", "add", "-g", packageName];
|
||||
case "bun":
|
||||
return ["bun", "add", "-g", packageName];
|
||||
case "yarn":
|
||||
return ["yarn", "global", "add", packageName];
|
||||
default:
|
||||
return ["npm", "install", "-g", packageName];
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ export type SkillStatusEntry = {
|
||||
skillKey: string;
|
||||
primaryEnv?: string;
|
||||
emoji?: string;
|
||||
homepage?: string;
|
||||
always: boolean;
|
||||
disabled: boolean;
|
||||
eligible: boolean;
|
||||
@@ -135,6 +136,12 @@ function buildSkillStatus(
|
||||
const disabled = skillConfig?.enabled === false;
|
||||
const always = entry.clawdis?.always === true;
|
||||
const emoji = entry.clawdis?.emoji ?? entry.frontmatter.emoji;
|
||||
const homepageRaw =
|
||||
entry.clawdis?.homepage ??
|
||||
entry.frontmatter.homepage ??
|
||||
entry.frontmatter.website ??
|
||||
entry.frontmatter.url;
|
||||
const homepage = homepageRaw?.trim() ? homepageRaw.trim() : undefined;
|
||||
|
||||
const requiredBins = entry.clawdis?.requires?.bins ?? [];
|
||||
const requiredEnv = entry.clawdis?.requires?.env ?? [];
|
||||
@@ -182,6 +189,7 @@ function buildSkillStatus(
|
||||
skillKey,
|
||||
primaryEnv: entry.clawdis?.primaryEnv,
|
||||
emoji,
|
||||
homepage,
|
||||
always,
|
||||
disabled,
|
||||
eligible,
|
||||
|
||||
@@ -29,6 +29,7 @@ export type ClawdisSkillMetadata = {
|
||||
skillKey?: string;
|
||||
primaryEnv?: string;
|
||||
emoji?: string;
|
||||
homepage?: string;
|
||||
requires?: {
|
||||
bins?: string[];
|
||||
env?: string[];
|
||||
@@ -39,7 +40,7 @@ export type ClawdisSkillMetadata = {
|
||||
|
||||
export type SkillsInstallPreferences = {
|
||||
preferBrew: boolean;
|
||||
nodeManager: "npm" | "pnpm" | "bun";
|
||||
nodeManager: "npm" | "pnpm" | "yarn";
|
||||
};
|
||||
|
||||
type ParsedSkillFrontmatter = Record<string, string>;
|
||||
@@ -189,7 +190,7 @@ export function resolveSkillsInstallPreferences(
|
||||
typeof raw?.nodeManager === "string" ? raw.nodeManager.trim() : "";
|
||||
const manager = managerRaw.toLowerCase();
|
||||
const nodeManager =
|
||||
manager === "pnpm" || manager === "bun" || manager === "npm"
|
||||
manager === "pnpm" || manager === "yarn" || manager === "npm"
|
||||
? (manager as SkillsInstallPreferences["nodeManager"])
|
||||
: "npm";
|
||||
return { preferBrew, nodeManager };
|
||||
@@ -271,6 +272,10 @@ function resolveClawdisMetadata(
|
||||
typeof clawdisObj.always === "boolean" ? clawdisObj.always : undefined,
|
||||
emoji:
|
||||
typeof clawdisObj.emoji === "string" ? clawdisObj.emoji : undefined,
|
||||
homepage:
|
||||
typeof clawdisObj.homepage === "string"
|
||||
? clawdisObj.homepage
|
||||
: undefined,
|
||||
skillKey:
|
||||
typeof clawdisObj.skillKey === "string"
|
||||
? clawdisObj.skillKey
|
||||
|
||||
Reference in New Issue
Block a user