import { type SkillsLockBundle } from '../integrations/config/skillsLock'; import { loadEffectiveSkillsLock } from '../integrations/config/skillsEffectiveLock'; const buildSkillsLockCompilationHint = (): string => [ 'No active skills bundles found.', 'Run the installed Pumuki skills lock tool, for example:', 'npx --yes tsx@4.21.0 ./node_modules/pumuki/scripts/compile-skills-lock.ts', ].join(' '); export const formatActiveSkillsBundles = ( bundles: ReadonlyArray> ): string => { if (bundles.length === 0) { return buildSkillsLockCompilationHint(); } const lines = [...bundles] .sort((left, right) => { const byName = left.name.localeCompare(right.name); if (byName !== 0) { return byName; } return left.version.localeCompare(right.version); }) .map((bundle) => `- ${bundle.name}@${bundle.version} hash=${bundle.hash}`); return ['Active skills bundles:', ...lines].join('\n'); }; export const loadAndFormatActiveSkillsBundles = (repoRoot: string): string => { const lock = loadEffectiveSkillsLock(repoRoot); return formatActiveSkillsBundles(lock?.bundles ?? []); };