// // LocalModel.swift // Zyquo Local // // Author: Simon-Pierre Boucher // Mail: contact@spboucher.ai // import Foundation /// A model installed on disk under the Models folder. /// The one and only term for this concept is `LocalModel`. struct LocalModel: Identifiable, Codable, Hashable, Sendable { /// Full repo ID, e.g. "mlx-community/Qwen3-8B-4bit". Also the identity. var repoID: String /// Absolute directory containing config.json + weights + tokenizer. var directory: URL /// Total size on disk in bytes. var sizeBytes: Int64 /// `model_type` from config.json (architecture). var architecture: String? /// Quantization label parsed from the repo name ("4bit", "8bit", "bf16"…). var quantization: String? /// Context window (max_position_embeddings) from config.json. var contextWindow: Int? var lastUsed: Date? /// Per-model default generation parameters (overrides app defaults). var defaultParams: GenerationParams? var id: String { repoID } var organization: String { repoID.split(separator: "/").first.map(String.init) ?? "" } var name: String { repoID.split(separator: "/").last.map(String.init) ?? repoID } }