- Store source files as named CustomInstrumentFile rows per def - Render sidebar with disclosure groups - Drive editor via Monaco project models with activePath - Validate Add/Rename/Delete dialogs and submit on Enter - Fork installed hook packs into editable custom instruments - Reload instances on def change; clear stale compat reasons live - Focus editor on selection (native + Monaco)
38 lines
848 B
Swift
38 lines
848 B
Swift
import Foundation
|
|
|
|
public struct HookPackBundle: Sendable {
|
|
public struct File: Sendable {
|
|
public let path: String
|
|
public let content: Data
|
|
|
|
public init(path: String, content: Data) {
|
|
self.path = path
|
|
self.content = content
|
|
}
|
|
}
|
|
|
|
public struct IconAttachment: Sendable {
|
|
public let filename: String
|
|
public let data: Data
|
|
|
|
public init(filename: String, data: Data) {
|
|
self.filename = filename
|
|
self.data = data
|
|
}
|
|
}
|
|
|
|
public let manifestData: Data
|
|
public let files: [File]
|
|
public let icon: IconAttachment?
|
|
|
|
public init(
|
|
manifestData: Data,
|
|
files: [File],
|
|
icon: IconAttachment?
|
|
) {
|
|
self.manifestData = manifestData
|
|
self.files = files
|
|
self.icon = icon
|
|
}
|
|
}
|