(children: PackageFileTree[])
| 86 | * Count files in skill subdirectories (scripts, references, assets). |
| 87 | */ |
| 88 | export function countSkillFiles(children: PackageFileTree[]): SkillFileCounts | undefined { |
| 89 | const counts: SkillFileCounts = {} |
| 90 | |
| 91 | for (const child of children) { |
| 92 | if (child.type !== 'directory') continue |
| 93 | const name = child.name.toLowerCase() |
| 94 | const count = countFilesRecursive(child.children || []) |
| 95 | if (count === 0) continue |
| 96 | if (name === 'scripts') counts.scripts = count |
| 97 | else if (name === 'references' || name === 'refs') |
| 98 | counts.references = (counts.references || 0) + count |
| 99 | else if (name === 'assets') counts.assets = count |
| 100 | } |
| 101 | return Object.keys(counts).length ? counts : undefined |
| 102 | } |
| 103 | |
| 104 | /** |
| 105 | * Fetch file content from jsDelivr CDN with size limit. |
no test coverage detected