

























@@ -237,18 +237,23 @@ function normalizeInstallOptions(
237237return [toOption(preferred.spec, preferred.index)];
238238}
239239240+type BuildSkillStatusContext = {
241+config?: OpenClawConfig;
242+prefs: SkillsInstallPreferences;
243+eligibility?: SkillEligibilityContext;
244+allowBundled: string[] | undefined;
245+agentSkillFilter?: string[];
246+workspaceDir: string;
247+clawhubLockRead: ClawHubSkillsLockfileStatusRead;
248+};
249+240250function buildSkillStatus(
241251indexed: SkillIndexEntry,
242-config?: OpenClawConfig,
243-prefs?: SkillsInstallPreferences,
244-eligibility?: SkillEligibilityContext,
245-allowBundled?: string[],
246-agentSkillFilter?: string[],
247-workspaceDir?: string,
248-clawhubLockRead?: ClawHubSkillsLockfileStatusRead,
252+context: BuildSkillStatusContext,
249253): SkillStatusEntry {
250254const entry = indexed.entry;
251255const skillKey = indexed.skillKey;
256+const { config, prefs, eligibility, allowBundled, agentSkillFilter, workspaceDir } = context;
252257const skillConfig = resolveSkillConfig(config, skillKey);
253258const disabled = skillConfig?.enabled === false;
254259const blockedByAllowlist = !isBundledSkillAllowed(entry, allowBundled);
@@ -283,7 +288,7 @@ function buildSkillStatus(
283288 workspaceDir,
284289skillDir: entry.skill.baseDir,
285290 skillKey,
286-lockRead: clawhubLockRead,
291+lockRead: context.clawhubLockRead,
287292})
288293 : undefined;
289294const skillCard = resolveLocalSkillCardStatusSync(entry.skill.baseDir);
@@ -310,7 +315,7 @@ function buildSkillStatus(
310315requirements: required,
311316 missing,
312317 configChecks,
313-install: normalizeInstallOptions(entry, prefs ?? resolveSkillsInstallPreferences(config)),
318+install: normalizeInstallOptions(entry, prefs),
314319 ...(clawhub ? { clawhub } : {}),
315320 ...(skillCard ? { skillCard } : {}),
316321};
@@ -351,16 +356,15 @@ export function buildWorkspaceSkillStatus(
351356agentId: opts?.agentId,
352357 agentSkillFilter,
353358skills: skillIndexEntries.map((entry) =>
354-buildSkillStatus(
355-entry,
356-opts?.config,
359+buildSkillStatus(entry, {
360+config: opts?.config,
357361 prefs,
358-opts?.eligibility,
362+eligibility: opts?.eligibility,
359363 allowBundled,
360364 agentSkillFilter,
361365 workspaceDir,
362366 clawhubLockRead,
363-),
367+}),
364368),
365369};
366370}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。