Files
clawdbot/src/agents/skills.ts
2026-01-16 12:10:29 +00:00

46 lines
1.3 KiB
TypeScript

import type { ClawdbotConfig } from "../config/config.js";
export {
hasBinary,
isBundledSkillAllowed,
isConfigPathTruthy,
resolveBundledAllowlist,
resolveConfigPath,
resolveRuntimePlatform,
resolveSkillConfig,
} from "./skills/config.js";
export {
applySkillEnvOverrides,
applySkillEnvOverridesFromSnapshot,
} from "./skills/env-overrides.js";
export type {
ClawdbotSkillMetadata,
SkillEligibilityContext,
SkillCommandSpec,
SkillEntry,
SkillInstallSpec,
SkillSnapshot,
SkillsInstallPreferences,
} from "./skills/types.js";
export {
buildWorkspaceSkillSnapshot,
buildWorkspaceSkillsPrompt,
buildWorkspaceSkillCommandSpecs,
filterWorkspaceSkillEntries,
loadWorkspaceSkillEntries,
resolveSkillsPromptForRun,
syncSkillsToWorkspace,
} from "./skills/workspace.js";
export function resolveSkillsInstallPreferences(config?: ClawdbotConfig) {
const raw = config?.skills?.install;
const preferBrew = raw?.preferBrew ?? true;
const managerRaw = typeof raw?.nodeManager === "string" ? raw.nodeManager.trim() : "";
const manager = managerRaw.toLowerCase();
const nodeManager =
manager === "pnpm" || manager === "yarn" || manager === "bun" || manager === "npm"
? (manager as "npm" | "pnpm" | "yarn" | "bun")
: "npm";
return { preferBrew, nodeManager };
}