@@ -16,33 +16,14 @@ import type { DoctorPrompter } from "./doctor-prompter.js";
|
16 | 16 | import { |
17 | 17 | collectUnavailableAgentSkills, |
18 | 18 | disableUnavailableSkillsInConfig, |
| 19 | +formatMissingSkillSummary, |
19 | 20 | } from "./doctor-skills-core.js"; |
20 | 21 | |
21 | 22 | export { |
22 | 23 | collectUnavailableAgentSkills, |
23 | 24 | disableUnavailableSkillsInConfig, |
24 | 25 | } from "./doctor-skills-core.js"; |
25 | 26 | |
26 | | -function formatMissingSummary(skill: SkillStatusEntry): string { |
27 | | -const missing: string[] = []; |
28 | | -if (skill.missing.bins.length > 0) { |
29 | | -missing.push(`bins: ${skill.missing.bins.join(", ")}`); |
30 | | -} |
31 | | -if (skill.missing.anyBins.length > 0) { |
32 | | -missing.push(`any bins: ${skill.missing.anyBins.join(", ")}`); |
33 | | -} |
34 | | -if (skill.missing.env.length > 0) { |
35 | | -missing.push(`env: ${skill.missing.env.join(", ")}`); |
36 | | -} |
37 | | -if (skill.missing.config.length > 0) { |
38 | | -missing.push(`config: ${skill.missing.config.join(", ")}`); |
39 | | -} |
40 | | -if (skill.missing.os.length > 0) { |
41 | | -missing.push(`os: ${skill.missing.os.join(", ")}`); |
42 | | -} |
43 | | -return missing.join("; ") || "unknown requirement"; |
44 | | -} |
45 | | - |
46 | 27 | function formatInstallHints(skill: SkillStatusEntry): string[] { |
47 | 28 | if (skill.install.length === 0) { |
48 | 29 | return []; |
@@ -93,7 +74,7 @@ export function formatUnavailableSkillDoctorLines(skills: SkillStatusEntry[]): s
|
93 | 74 | "Some skills are allowed for this agent but are not usable in the current runtime environment.", |
94 | 75 | ]; |
95 | 76 | for (const skill of skills) { |
96 | | -lines.push(`- ${skill.name}: ${formatMissingSummary(skill)}`); |
| 77 | +lines.push(`- ${skill.name}: ${formatMissingSkillSummary(skill)}`); |
97 | 78 | lines.push(...formatInstallHints(skill)); |
98 | 79 | } |
99 | 80 | lines.push(`Disable unused skills: ${formatCliCommand("openclaw doctor --fix")}`); |
|