Versions in this module Expand all Collapse all v0 v0.3.0 Aug 16, 2026 v0.2.0 Aug 7, 2026 Changes in this version + const ArchiveDigestHeader + const ExtractMaxBytes + const MaxArchiveBytes + const MaxMembers + const MaxTotalBytes + const SentinelName + const SentinelVersion + var ErrDigestMismatch = errors.New("skill archive does not match its recorded sha256") + func BlobKey(skillID, version string) string + func Digest(data []byte) string + func IsZip(data []byte) bool + func ParseSentinel(data []byte) ([]markerEntry, bool) + func ReadArchive(r io.Reader, wantSHA256 string) ([]byte, error) + func Sentinel(rs []Resolved) []byte + func SentinelMatches(ctx context.Context, read func(context.Context, string) ([]byte, error), ...) bool + func TargetDir(name, skillID string) string + type Bundle struct + Description string + Directory string + Name string + SHA256 string + Zip []byte + func FromFiles(files []File) (*Bundle, error) + func FromZip(data []byte) (*Bundle, error) + type File struct + Data []byte + Path string + func Extract(data []byte) ([]File, error) + type Resolved struct + Dir string + ID string + SHA256 string + Version string