installZip

suspend fun installZip(zip: InputStream, libraryDir: File, maxBytes: Long = 20L shl 20): Skill(source)

Unpack a skill .zip (either name/SKILL.md… or SKILL.md… at its root) into libraryDir, replacing a skill of the same name. Entries escaping the target (zip slip) or larger than maxBytes in total are rejected.

Return

the installed skill.